Основные изменения: - Добавлено 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
110 lines
7.3 KiB
Markdown
110 lines
7.3 KiB
Markdown
# 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
|