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:
2025-08-18 19:35:47 +03:00
parent 2d565d52a6
commit 6e51f00791
14 changed files with 2066 additions and 7 deletions

View File

@@ -121,4 +121,64 @@ test-auth: ## Тестирование новой системы авториз
python3 test_auth.py
@echo "$(GREEN)Тестирование завершено!$(NC)"
test-ajax: ## Тестирование AJAX обновления логов
@echo "$(GREEN)Тестирование AJAX обновления логов...$(NC)"
@if [ ! -f app/scripts/test_ajax_update.py ]; then \
echo "$(RED)Файл test_ajax_update.py не найден!$(NC)"; \
exit 1; \
fi
@echo "$(YELLOW)Убедитесь, что сервис запущен: make up$(NC)"
@echo "$(YELLOW)Ожидание запуска сервиса...$(NC)"
@sleep 5
python3 app/scripts/test_ajax_update.py
@echo "$(GREEN)Тестирование AJAX завершено!$(NC)"
test-multi-view-ajax: ## Тестирование AJAX обновления в multi-view режиме
@echo "$(GREEN)Тестирование AJAX обновления в multi-view режиме...$(NC)"
@if [ ! -f app/scripts/test_multi_view_ajax.py ]; then \
echo "$(RED)Файл test_multi_view_ajax.py не найден!$(NC)"; \
exit 1; \
fi
@echo "$(YELLOW)Убедитесь, что сервис запущен: make up$(NC)"
@echo "$(YELLOW)Ожидание запуска сервиса...$(NC)"
@sleep 5
python3 app/scripts/test_multi_view_ajax.py
@echo "$(GREEN)Тестирование multi-view AJAX завершено!$(NC)"
test-ajax-no-history: ## Тестирование AJAX обновления без загрузки истории
@echo "$(GREEN)Тестирование AJAX обновления без загрузки истории...$(NC)"
@if [ ! -f app/scripts/test_ajax_no_history.py ]; then \
echo "$(RED)Файл test_ajax_no_history.py не найден!$(NC)"; \
exit 1; \
fi
@echo "$(YELLOW)Убедитесь, что сервис запущен: make up$(NC)"
@echo "$(YELLOW)Ожидание запуска сервиса...$(NC)"
@sleep 5
python3 app/scripts/test_ajax_no_history.py
@echo "$(GREEN)Тестирование AJAX без истории завершено!$(NC)"
test-all-logs: ## Тестирование опции "all logs" в AJAX обновлении
@echo "$(GREEN)Тестирование опции 'all logs' в AJAX обновлении...$(NC)"
@if [ ! -f app/scripts/test_all_logs.py ]; then \
echo "$(RED)Файл test_all_logs.py не найден!$(NC)"; \
exit 1; \
fi
@echo "$(YELLOW)Убедитесь, что сервис запущен: make up$(NC)"
@echo "$(YELLOW)Ожидание запуска сервиса...$(NC)"
@sleep 5
python3 app/scripts/test_all_logs.py
@echo "$(GREEN)Тестирование опции 'all logs' завершено!$(NC)"
test-multi-view-layout: ## Тестирование отображения длинных названий в multi-view режиме
@echo "$(GREEN)Тестирование отображения длинных названий в multi-view режиме...$(NC)"
@if [ ! -f app/scripts/test_multi_view_layout.py ]; then \
echo "$(RED)Файл test_multi_view_layout.py не найден!$(NC)"; \
exit 1; \
fi
@echo "$(YELLOW)Убедитесь, что сервис запущен: make up$(NC)"
@echo "$(YELLOW)Ожидание запуска сервиса...$(NC)"
@sleep 5
python3 app/scripts/test_multi_view_layout.py
@echo "$(GREEN)Тестирование multi-view layout завершено!$(NC)"