logboard/CHANGELOG.md
Sergey Antropoff 6e51f00791 feat: Добавлено AJAX обновление логов и улучшения интерфейса
Основные изменения:
- Добавлено 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
2025-08-18 19:35:47 +03:00

7.3 KiB
Raw Blame History

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 эндпоинты:

    • 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