- Fix API date parsing for d.m H:i format
- Update labels variable after loading new data for tooltips
- Ensure tooltips work correctly after zoom reload
- Add onZoomComplete callback to charts
- When zoomed to < 100 points, load detailed data from API
- Add loadDetailedMetrics function per chart
- API returns aggregated data (max 500 points) for zoomed range
- Improves performance while preserving detail on zoom
- Fix tooltip data access: use chart data instead of API response
- Exclude uptime from metrics charts (SQL and template filters)
- Fix fetchProcesses() time format handling
- Add try-catch and proper Response handling in getProcesses API
- Fix Slim Response write() chaining issue
- Add last_seen to server query
- Add icon-picker-modal partial with 200+ Font Awesome icons
- Search filter with typeahead functionality
- Grid layout (6 icons per row)
- Click icon to select and close modal
- Icon preview updates in real-time
- Integrated into group create/edit forms
- Removed data-bs-toggle="collapse" to prevent Bootstrap interference
- Handle click manually: toggle class "show" and update icon
- Cookie stores 'expanded'/'collapsed' state per group
- Chevron icon updates correctly on click
- Use hidden.bs.collapse and shown.bs.collapse events instead of click
- Icons now toggle correctly between up/down chevrons
- Cookie state properly saved on toggle
- Accordion state (collapsed/expanded) saved to cookies per group
- Chevron icon toggles correctly (up/down)
- State persists across page reloads for 30 days
- First accordion group opens by default
- Accordion header color matches group color from settings
- CPU/RAM/DISK now use Font Awesome icons (microchip, memory, hdd)
- Icon colors change based on threshold status (red/yellow/green)
- AJAX refresh updates values every 30 seconds without page reload
- Added IDs to metric elements for targeted updates
- Add uptime metric collection in agent.py
- Group servers by groups with accordion
- Compact cards layout (4-6 per row)
- Status dot indicator (green/yellow/red)
- CPU/RAM/Disk mini progress bars
- Uptime display (days/hours/minutes)
- Color-coded left border by status
- Remove server_id auto-resolution from validateAndGetToken()
- Links in edit.twig now use token instead of server_id
- Add agent_token retrieval in ServerController::edit()
BREAKING: install.sh now downloads agent from server instead of embedding it
Changes:
- AgentController: downloadAgent() method for serving agent.py with token auth
- AgentController: rewrite generateInstallScript() to curl agent from server
- agent.py: copy production version from server (with temp, disk, network metrics)
- agent.py: fix get_disk_metrics() to use priority mountpoints (/, /home, etc)
- agent.py: fix disk_total_gb collection to use priority mountpoints
- detail.twig: add fallback blocks for temperatures (alert-info)
- detail.twig: add fallback blocks for disk doughnuts (alert-warning)
- detail.twig: add fallback blocks for network graphs (alert-warning)
- detail.twig: add null check for ramTotalGB in tooltip
- detail.twig: improve thresholds form with human-readable labels and units
- ServerDetailController: query only metrics that exist on server and display on graphs
For server 3 (mirv.top):
- After deploy, download new install.sh and reinstall agent
- This will add disk_used_root, ram_total_gb, temperatures support
- Excluded network_rx and network_tx metrics from main metrics loop
- Removed separate network interface charts
- Verified single combined Temperatures chart (chart-temperatures) exists and is initialized
- Обновлен скрипт установки агента (добавлены lm-sensors, smartmontools)
- Агент теперь собирает температуры: CPU (через psutil), Диски (smartctl), GPU (nvidia-smi)
- Бэкенд автоматически определяет единицу измерения °C для метрик temp_*
- Добавлен общий график Температуры на страницу сервера
- Добавлен API endpoint /api/dashboard/stats
- Реализована замена location.reload() на fetch() каждые 30 секунд
- Добавлены ID к элементам метрик для точечного обновления
- Убрано мерцание страницы при обновлении
- Исправлена проверка diskMetric: теперь проверяется реальное наличие значения, а не только defined
- Блок диска больше не показывается для серверов без метрик (например Work_PC)
- Перемещены закрывающие </div> tab-pane metrics в правильное место
- Сетевые графики и doughnut диски теперь внутри вкладки Метрики
- Вкладки Сервисы и Пороги работают корректно
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Порядок: CPU → RAM → Network → Disk donuts
- Цвета графиков: CPU синий, RAM фиолетовый, Disk оранжевый
- Тултип RAM: Всего/Занято/Свободно ГБ + TOP процессы
- Карточки дисков: Свободно/Занято ГБ над doughnut
- Сетевой график: In (зелёная) / Out (красная) с зумом
- Исключены графики total_gb из line charts
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавлены doughnut графики для disk_used_root/home/boot/mnt_data
- Удалён общий disk_used line chart (заменён doughnut)
- Исключён crosshair плагин (конфликт с Chart.js)
- Установлена timezone Asia/Irkutsk (+8) для корректных запросов
- cmdline в тултипах процессов
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- External handler проверяет флаг _tooltipHidden перед показом
- mouseout/mouseleave устанавливают флаг в true
- mousemove сбрасывает флаг в false
- Предотвращает повторный показ tooltip после скрытия
- Добавлен обработчик mouseout вместе с mouseleave
- Теперь tooltip скрывается при уходе курсора влево/вправо/вверх/вниз
- Убрано不必要的 clearing tooltip._active и draw()