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
This commit is contained in:
68
CHANGELOG.md
68
CHANGELOG.md
@@ -1,5 +1,73 @@
|
||||
# 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
|
||||
|
||||
### Добавлено
|
||||
|
||||
Reference in New Issue
Block a user