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

110 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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