// 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 || 'Логи загружаются...'; lp.style.display = 'none'; // скрываем нижнюю панель } } else { // На всех видах кроме логов — скрываем нижнюю лог-панель const lp = document.getElementById('log-panel'); if (lp) lp.style.display = 'none'; } }