Подробные комментарии ко всем JS-файлам фронтенда

This commit is contained in:
2026-07-31 17:25:44 +04:00
parent 0783319fd1
commit c50aaf59d8
17 changed files with 1155 additions and 196 deletions
+33 -6
View File
@@ -1,30 +1,57 @@
// views.js — переключение видов (sidebar navigation)
// views.js — переключение видов (Консоль / Обзор / История / Сценарии / Логи)
//
// Каждый вид — div.view с id="view-{name}".
// Активный вид — без класса .hidden.
// Все остальные — с классом .hidden (display: none).
//
// Переключение:
// switchView('overview') — Обзор (инфраструктура)
// switchView('console') — Консоль (ручной режим)
// switchView('history-view') — История (автозагрузка при открытии)
// switchView('scenarios-view') — Сценарии (автозагрузка)
// switchView('logs-view') — Логи (специальная обработка)
/**
* Переключиться на вид по его ID.
*
* @param {string} viewId — суффикс после "view-" (напр. "console" → #view-console)
*/
function switchView(viewId) {
// Скрыть ВСЕ виды
document.querySelectorAll('.view').forEach(v => v.classList.add('hidden'));
// Показать целевой вид
const target = document.getElementById('view-' + viewId);
if (target) target.classList.remove('hidden');
// Подсветка активного пункта
// Подсветка активного пункта в sidebar
document.querySelectorAll('.sidebar-item').forEach(el => el.classList.remove('active'));
const btn = document.querySelector('.sidebar-item[data-view="' + viewId + '"]');
if (btn) btn.classList.add('active');
// Автозагрузка при открытии вида
// ── Автозагрузка при открытии вида ──
// История: автозагрузка только если ещё не загружена
if (viewId === 'history-view' && typeof toggleHistory === 'function') {
if (!historyOpen) toggleHistory();
}
// Сценарии: автозагрузка
if (viewId === 'scenarios-view' && typeof toggleScenario === 'function') {
if (!scenarioOpen) toggleScenario();
}
// Логи: специальная обработка — копируем содержимое нижней панели в вид
if (viewId === 'logs-view') {
// Показать лог в виде, скрыть нижнюю панель
const lp = document.getElementById('log-panel');
const lvc = document.getElementById('log-view-content');
if (lp && lvc) {
// Копируем текущее содержимое лог-панели в вид
lvc.innerHTML = lp.innerHTML || '<span style="color:#888;">Логи загружаются...</span>';
lp.style.display = 'none';
lp.style.display = 'none'; // скрываем нижнюю панель
}
} else {
// Скрыть нижнюю панель на всех видах кроме логов
// На всех видах кроме логов — скрываем нижнюю лог-панель
const lp = document.getElementById('log-panel');
if (lp) lp.style.display = 'none';
}