Files
app-autotest/site/static/js/views.js
T

59 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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'; // скрываем нижнюю панель
}
} else {
// На всех видах кроме логов — скрываем нижнюю лог-панель
const lp = document.getElementById('log-panel');
if (lp) lp.style.display = 'none';
}
}