Подробные комментарии ко всем JS-файлам фронтенда
This commit is contained in:
+33
-6
@@ -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';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user