Files
xi-saturationreport/CHANGELOG.txt
2026-02-10 18:51:31 +00:00

91 lines
5.6 KiB
Plaintext

CHANGELOG - Storage Saturation Report Component
===============================================
Version 1.0.3 - January 31, 2026
----------------------------------
- PDF export: switched to client-side jsPDF + html2canvas (no Nagios XI Chromium/command pipeline).
Export PDF now generates the PDF in the browser and triggers download; fallback to window.print()
if jsPDF or html2canvas unavailable. Works regardless of XI command processor or Chromium.
- Progress bar: restored color styles (green/amber/red) in the minimal export document so the
"percent used" bar displays correctly when that HTML is used (e.g. client-side capture, print).
- Vendor: optional jspdf.umd.min.js in scripts/vendor/ for PDF; CDN fallback. See scripts/vendor/README.txt.
Version 1.0.2 - January 31, 2026
----------------------------------
- My Reports (XI core): myreports.php parent-frame innerHTML guarded with null checks to avoid
"Cannot set properties of undefined" when parent lacks #leftnav (e.g. from component report).
- Export Image: load html2canvas from component scripts/vendor/html2canvas.min.js first, then CDN
fallback; avoids tracking prevention blocking when vendor file is present. See scripts/vendor/README.txt.
- Docs: double slash in PDF download URL (nagiosxi//reports/managereports.php) documented as known
XI core URL-building issue; fix belongs in includes/js/reports.js (not in this component).
- Export URL: strip CR/LF from Chromium report URL so stored/passed URL is one contiguous string
(avoids link being split so only first segment is clickable). XI core: fail_download() now outputs
URL in a single <a href="..."> so the full URL is one clickable link.
- PDF/JPG export: build Chromium URL with get_localhost_url() so Chromium fetches report via
localhost; fixes ERR_ACCESS_DENIED when server cannot reach external IP.
- UI: report actions (settings, star, Export PDF, Export Image) aligned right (justify-content:
flex-end) to match Nagios XI report pattern.
- Options drawer: added neptune-drawer-options block (options-drawer-header + reportoptionpicker)
so Report Options gear opens drawer with content; minimal copy "No additional options for this report."
- Report options: added Schedule and Email links (schedulereport.php?name=... and &sendonce=1) so
full report-options row matches XI (settings, star, Schedule, Email, Export PDF, Export Image).
- Report component: full report URL passed to get_add_myreport_html() so Schedule, Email Report,
and Add to My Reports open/schedule the correct report page.
- UI: all report actions (settings, star, Schedule, Email, Export PDF, Export Image) in one
well.report-options.form-inline row; Export PDF/Image moved from header into well; alignment
matches Nagios XI report examples (e.g. Availability Summary).
- UI: removed duplicate report header (title/subtitle/date). Header shown once in page; getreport
fragment for AJAX returns only table; header included only in export (PDF) document.
- UI: numeric columns (DISK SPACE USED, DISK SPACE AVAILABLE, PERCENT USED) right-aligned to match
Nagios XI report examples (e.g. Availability Summary).
- Export/print aligned with Nagios XI built-in report pattern:
* Single entry point (index.php) with mode routing: default, mode=getreport, mode=submitpdf/submitjpg
* mode=getreport: server-side HTML report body only (for AJAX and Chromium PDF/JPG export)
* mode=submitpdf/submitjpg: uses utils-reports-export submit_report() and COMMAND_DOWNLOAD_REPORT
* Report container (#report) loaded via AJAX from index.php?mode=getreport
* PDF export uses reports.js submit_report() for async command polling and download
* reportexportlinks and get_add_myreport_html() for Add to My Reports / Schedule / Email Report
- Removed client-side window.print() and html2canvas-only PDF path in favor of XI report export
- Export Image (PNG) retained as optional client-side fallback via html2canvas
Version 1.0.1 - January 30, 2026
----------------------------------
- Perfdata: support quoted labels with special characters
-- (e.g. 'C:\_Label:__Serial_Number_2cxxxxxx'=91445.6016MB;111560;132477;0;139450)
- Perfdata: when multiple metrics in one service, show the most saturated.
-- (e.g. 'C:\_Label:__Serial_Number_2cxxxxxx'=91445.6016MB;111560;132477;0;139450 'D:\_Label:__Serial_Number_2cxxxxxx'=138500.6016MB;111560;132477;0;139450)
- Caption column uses perfdata volume label when present
- UI: Neptune theme aware with fallbacks for dark/light as per Nagios Developer Standards
- UI: table class follows is_neptune()
- UI: reduced inline styles; spacing moved to CSS classes to conform with Nagios Developer Standards
Version 1.0.0 - January 18, 2026
----------------------------------
- Display services with trackvolume custom variable enabled
- Filter services by trackvolume custom variable
- Parse disk usage from perfdata (check_local_disk and NCPA formats)
- Report-style display with columns:
* DISPLAY NAME (host name)
* CAPTION (service description)
* DISK SPACE USED (formatted)
* DISK SPACE AVAILABLE (formatted with color coding)
* PERCENT USED (with progress bar)
- Sort by available space (ascending - most critical first)
- Color coding for available space:
* Red (< 5 GB): Critical
* Yellow (< 50 GB): Warning
* Green (>= 50 GB): Safe
- Progress bar color coding:
* Red (>= 95%): Critical
* Orange (>= 85%): Warning
* Yellow (>= 70%): Info
* Green (< 70%): Safe
- Export functionality (PDF/JPG) using Python
- Proper Nagios XI component patterns:
* Standard initialization sequence
* Security best practices (grab_request_var, escapeshellarg)
* XML API for custom variables (template inheritance)
* Proper error handling
* CCM theme matching