Основные изменения: - Добавлено AJAX обновление логов с чекбоксом 'Auto-update logs' - Добавлена опция 'All logs' в выпадающий список tail lines - Исправлено отображение длинных названий контейнеров в multi-view режиме - Восстановлена загрузка истории логов при включенном AJAX обновлении Новые функции: - Чекбокс 'Auto-update logs' в секции Options (включен по умолчанию) - Настройка интервала обновления через LOGBOARD_AJAX_UPDATE_INTERVAL - API эндпоинт /api/settings для получения настроек приложения - Поддержка параметра tail=all для загрузки всех логов - Автоматический запуск AJAX обновления при включении чекбокса Исправления UI: - Кнопки LogLevels не уезжают вправо при длинных названиях контейнеров - Добавлено обрезание длинных названий с многоточием - Фиксированная высота заголовков в multi-view режиме - Защита от сжатия кнопок LogLevels Тестирование: - Добавлены тесты для AJAX обновления (test_ajax_update.py) - Тест multi-view AJAX обновления (test_multi_view_ajax.py) - Тест опции 'all logs' (test_all_logs.py) - Тест отображения длинных названий (test_multi_view_layout.py) - Команды make test-ajax, make test-multi-view-ajax, make test-all-logs, make test-multi-view-layout Документация: - Создана подробная документация AJAX обновления (app/docs/ajax-update.md) - Обновлен CHANGELOG.md с версиями 1.3.0, 1.5.0, 1.6.0 - Обновлен README.md с описанием новых функций Автор: Сергей Антропов Сайт: https://devops.org.ru
7.3 KiB
7.3 KiB
Changelog
[1.6.0] - 2024-12-19
Исправлено
- Отображение длинных названий контейнеров в multi-view режиме:
- Исправлена проблема с уезжающими вправо кнопками LogLevels при длинных названиях
- Добавлено обрезание длинных названий с многоточием (text-overflow: ellipsis)
- Установлена фиксированная высота заголовков (min-height: 40px)
- Добавлена защита от сжатия кнопок LogLevels (flex-shrink: 0)
- Новый тест
test-multi-view-layout
для проверки отображения
[1.5.0] - 2024-12-19
Добавлено
- Опция "All logs" в AJAX обновлении:
- Добавлена опция "All logs" в выпадающий список tail lines
- Возможность загружать все доступные логи контейнера через AJAX
- Поддержка параметра
tail=all
в API эндпоинте/api/logs/{container_id}
- Новый тест
test-all-logs
для проверки функциональности
[1.3.0] - 2024-12-19
Добавлено
- Улучшенное AJAX обновление логов:
- Чекбокс "Auto-update logs" в секции Options (включен по умолчанию)
- Настройка интервала обновления через переменную окружения
LOGBOARD_AJAX_UPDATE_INTERVAL
- Автоматический запуск обновления при включении чекбокса
- Новый API эндпоинт
/api/settings
для получения настроек приложения - Упрощенный интерфейс управления (убрана кнопка, добавлен чекбокс)
[1.2.0] - 2024-12-19
Добавлено
-
AJAX обновление логов:
- Новый API эндпоинт
/api/logs/{container_id}
для получения логов через AJAX - Периодическое обновление логов с настраиваемым интервалом (1с, 2с, 5с, 10с, 30с)
- Умное сравнение и добавление только новых логов
- Кнопка "Запустить AJAX" / "Остановить AJAX" в панели Actions
- Автоматическое обновление счетчиков и применение фильтров
- Остановка AJAX обновления при смене контейнера или режима просмотра
- Новый API эндпоинт
-
API эндпоинты:
GET /api/logs/{container_id}
- получение логов с поддержкой параметровtail
иsince
- Возвращает структурированные данные с временными метками и метаданными контейнера
- Поддержка фильтрации по времени для получения только новых логов
-
Тестирование:
- Скрипт
app/scripts/test_ajax_update.py
для тестирования AJAX функциональности - Команда
make test-ajax
для запуска тестов - Тестирование производительности и корректности работы API
- Скрипт
-
Документация:
- Подробная документация в
app/docs/ajax-update.md
- Описание API эндпоинтов с примерами запросов и ответов
- JavaScript API для управления AJAX обновлением
- Подробная документация в
Технические детали
- Реализована функция
performAjaxLogUpdate()
для выполнения AJAX запросов - Функция
appendNewLogs()
для добавления новых логов в DOM - Управление состоянием через глобальные переменные
ajaxUpdateEnabled
,lastLogTimestamp
- Интеграция с существующими функциями фильтрации и подсчета логов
- Обработка ошибок без остановки обновления
Преимущества
- Низкая нагрузка на сервер (только новые логи)
- Надежность HTTP архитектуры без WebSocket сложностей
- Гибкость настройки интервала обновления
- Совместимость с существующими фильтрами и счетчиками
[1.1.0] - 2024-12-19
Добавлено
-
Горячие клавиши для обновления логов:
Ctrl+R
- обновить логи в Single и Multi View режимахCtrl+K
- альтернативная комбинация для обновления логовCtrl+B
- сворачивание/разворачивание sidebar панели
-
Функциональность сворачивания sidebar и header:
- Кнопка сворачивания на границе sidebar и основного контента
- Расположение посередине экрана по высоте
- Плавная анимация сворачивания/разворачивания
- Сохранение состояния в localStorage
- Уменьшение ширины sidebar до 60px в свернутом состоянии
- Логотип LogBoard+ в свернутом sidebar (в самом верху)
- Header сворачивается в тонкую полоску 40px с компактными элементами управления
- Кнопка помощи в свернутом sidebar для открытия модального окна с горячими клавишами
-
Улучшения пользовательского интерфейса:
- Модальное окно с полным списком горячих клавиш
- Компактный header в свернутом состоянии с фильтром и счетчиками
- Кнопка помощи в свернутом sidebar
- Адаптивный дизайн для мобильных устройств
Технические детали
- Добавлены обработчики событий клавиатуры с проверкой фокуса в полях ввода
- Реализована функция
toggleSidebar()
для управления состоянием sidebar - Добавлена функция
showHotkeysNotification()
для показа подсказок - CSS анимации для плавных переходов
- Сохранение пользовательских настроек в localStorage
- Логотип отображается в самом верху свернутого sidebar
Совместимость
- Все существующие функции сохранены
- Обратная совместимость с предыдущими версиями
- Поддержка как Single View, так и Multi View режимов
Автор
Сергей Антропов - https://devops.org.ru