From ee7eb3d1634878730c1f2593acde178cc49621ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D0=BE=D0=B2?= Date: Sun, 17 Aug 2025 06:21:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC?= =?UTF-8?q?=D0=B0=20=D1=81=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=B8=D0=B7=20multi=20v?= =?UTF-8?q?iew=20=D0=B2=20single=20view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлено сохранение выбранного контейнера в localStorage при переключении из multi view в single view - Реализовано полное обновление страницы для корректного отображения логов - Добавлено восстановление состояния выбранного контейнера при загрузке страницы - Исправлена проблема, когда логи не отображались при переключении режимов просмотра Теперь при снятии галочек с контейнеров в multi view до одного контейнера, приложение автоматически переключается в single view с корректным отображением логов. --- templates/index.html | 59 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/templates/index.html b/templates/index.html index e022008..bd72d5d 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1964,6 +1964,37 @@ function updateContainerSelectionUI() { // Обновляем заголовок updateLogTitle(); + + // Если есть сохраненный контейнер, убеждаемся что его чекбокс отмечен + const savedContainerId = getSelectedContainerFromStorage(); + if (savedContainerId && state.selectedContainers.includes(savedContainerId)) { + const checkbox = document.querySelector(`.container-checkbox[data-container-id="${savedContainerId}"]`); + if (checkbox) { + checkbox.checked = true; + const containerItem = checkbox.closest('.container-item'); + if (containerItem) { + containerItem.classList.add('selected'); + } + } + } +} + +// Функция для сохранения выбранного контейнера в localStorage +function saveSelectedContainer(containerId) { + if (containerId) { + localStorage.setItem('lb_selected_container', containerId); + console.log('Saved selected container to localStorage:', containerId); + } else { + localStorage.removeItem('lb_selected_container'); + console.log('Removed selected container from localStorage'); + } +} + +// Функция для восстановления выбранного контейнера из localStorage +function getSelectedContainerFromStorage() { + const containerId = localStorage.getItem('lb_selected_container'); + console.log('Retrieved selected container from localStorage:', containerId); + return containerId; } async function updateMultiViewMode() { @@ -1982,8 +2013,14 @@ async function updateMultiViewMode() { if (selectedService) { console.log('Switching to single view for:', selectedService.name); console.log('updateMultiViewMode: About to call switchToSingle - VERSION 2'); - await switchToSingle(selectedService); - console.log('updateMultiViewMode: switchToSingle call completed - VERSION 2'); + + // Сохраняем выбранный контейнер в localStorage + saveSelectedContainer(selectedService.id); + + // Обновляем страницу для полного сброса состояния + console.log('Refreshing page to switch to single view'); + window.location.reload(); + return; // Прерываем выполнение, так как страница перезагрузится } } else { // Когда снимаем все галочки, переключаемся в single view @@ -3313,6 +3350,24 @@ window.addEventListener('keydown', async (e)=>{ await fetchProjects(); await fetchServices(); + // Проверяем, есть ли сохраненный контейнер в localStorage + const savedContainerId = getSelectedContainerFromStorage(); + if (savedContainerId) { + console.log('Found saved container, switching to it:', savedContainerId); + const savedService = state.services.find(s => s.id === savedContainerId); + if (savedService) { + // Добавляем контейнер в выбранные + state.selectedContainers = [savedContainerId]; + // Переключаемся на сохраненный контейнер + await switchToSingle(savedService); + // Очищаем сохраненный контейнер из localStorage + saveSelectedContainer(null); + } else { + console.log('Saved container not found in services, clearing localStorage'); + saveSelectedContainer(null); + } + } + // Инициализируем видимость счетчиков updateCounterVisibility();