Compare commits

...

6 Commits

4 changed files with 165 additions and 215 deletions

View File

@ -1 +1 @@
v20260101-14-run-checks-select-all-indeterminate-stuck-dash-fix v20260101-15-changelog-0-1-15

View File

@ -8,11 +8,116 @@ def changelog_page():
changelog = { changelog = {
"completed_summary": [ "completed_summary": [
{
"version": "0.1.15",
"overview": [
"This release focused on improving operational clarity and usability by strengthening dashboard guidance, introducing a solid reporting foundation, and significantly refining the Run Checks review workflow for daily accountability.",
],
"categories": [
{
"category": "Dashboard & User Guidance",
"items": [
{
"title": None,
"details": [
"Added a comprehensive explanatory section to the Dashboard describing how Backupchecks collects, normalizes, and evaluates backup results.",
"Clarified dashboard counters, job statuses, overrides, and operational workflows.",
"Introduced clear guidance emphasizing the goal of keeping the Run Checks page empty or near-empty as proof of daily review and accountability.",
"Positioned Backupchecks explicitly as a monitoring and validation layer that complements existing backup software.",
],
}
],
},
{
"category": "Navigation & Usability",
"items": [
{
"title": None,
"details": [
"Implemented automatic redirection to the Dashboard on a users first visit of each day, improving daily visibility of system status.",
"Refactored the Settings area into clearly separated sections (General, Imports, Users, etc.) for better usability and structure.",
],
}
],
},
{
"category": "Dashboard News",
"items": [
{
"title": None,
"details": [
"Added a per-user Dashboard News section with read/unread tracking.",
"Enabled full admin management of news items (create, edit, delete, pin, severity, publish window).",
"Provided admin insight into read statistics and the ability to reset read status.",
],
}
],
},
{
"category": "Reporting Foundation",
"items": [
{
"title": None,
"details": [
"Introduced the initial reporting framework focused on raw, immutable data for auditability.",
"Added object-based reporting across multiple jobs with aggregated success, warning, failed, missed, and override metrics.",
"Prepared the data model for CSV export, future PDF generation, scheduling, and email delivery.",
"Enabled reporting access for admin, operator, and reporter roles in phase 1.",
],
}
],
},
{
"category": "Reports UI & Generation",
"items": [
{
"title": None,
"details": [
"Added an initial Reports UI to define, generate, and manage reports.",
"Enabled raw data preview directly in the UI with pagination support.",
"Implemented backend endpoints to generate and retrieve report data on demand.",
"Replaced the “New report” modal with a dedicated Create Report page.",
"Added month-based date selection, quick-select options, and multi-customer reporting support.",
"Enabled actual report generation while keeping scheduling as a non-functional placeholder.",
],
}
],
},
{
"category": "Run Checks Multi-Select Improvements",
"items": [
{
"title": None,
"details": [
"Added Shift-click multi-selection for efficient bulk review.",
"Iteratively fixed edge cases including:",
"Off-by-one range selection issues",
"Checkbox and row highlight desynchronization",
"Last-row selection bugs",
"Browser text selection interference",
"Improved “Select all” checkbox behavior:",
"Clearing selection when indeterminate",
"Correctly resetting from the indeterminate state",
"Ensuring consistent mouse and keyboard interaction",
],
}
],
},
{
"category": "Overall Result",
"items": [
{
"title": None,
"details": [
"Improved clarity, accountability, and daily workflow guidance across the application.",
"Established a solid, extensible reporting foundation.",
"Significantly enhanced usability and reliability of the Run Checks review process.",
],
}
],
},
],
},
{ {
"version": "0.1.14", "version": "0.1.14",
"overview": [ "overview": [

View File

@ -1,214 +1,59 @@
## v20251231-01-dashboard-description
- Added a comprehensive explanatory section to the Dashboard, positioned directly below the legend.
- Introduced detailed documentation describing how Backupchecks collects, normalizes, and evaluates backup results across multiple backup solutions.
- Clarified the purpose and behavior of dashboard counters, job statuses, and override indicators.
- Expanded the explanation of the Daily Jobs and Run Checks workflows, including the review, follow-up, resolution, and override processes.
- Documented the operational goal of maintaining an empty or near-empty Run Checks page to ensure full review and accountability.
- Clearly positioned Backupchecks as a monitoring, validation, and control platform that enhances, but does not replace, existing backup software.
---
## v20251231-02-daily-first-open-dashboard
- Added logic to automatically redirect users to the Dashboard on their first website visit of each day.
- The redirect is applied per browser session after authentication, ensuring normal navigation afterwards.
- Excluded API endpoints and static asset requests from the redirect to prevent unintended side effects.
- Ensured the behavior is transparent to users while improving daily visibility of overall system status.
---
## v20251231-03-dashboard-news-settings-sections
- Added a Dashboard News section displaying active announcements per user.
- Implemented per-user read tracking, allowing users to mark news items as read so they disappear only for that user.
- Added admin management for News items in Settings (create, edit, delete, pin, severity, active state, publish window).
- Added admin visibility into read status per news item, including read counts and user timestamps.
- Implemented admin action to reset read status for a news item.
- Refactored the Settings page into separate sections to improve usability and prevent overly long pages.
---
## v20251231-04-settings-tabs-restructure
### Settings
- Removed the collapse-based layout from **Settings → General** and converted it to a fixed section view for improved clarity.
- Moved **Import configuration** from **Settings → General** to the dedicated **Imports** section.
- Moved **User Management** from **Settings → Maintenance** to the dedicated **Users** section.
- Moved **Manual mail import** from **Settings → Maintenance** to the **Imports** section.
- Simplified and clarified the overall Settings structure by grouping related functionality into dedicated sections.
---
## v20251231-05-reporting-raw-data-foundation
### Reporting Foundation
- Introduced the initial reporting foundation focused on raw data collection.
- Added support for object-based reporting across multiple jobs.
- Implemented immutable report snapshot data to ensure auditability.
- Added aggregated summary data to calculate success, warning, failed, missed, and override metrics per object.
- Prepared reporting structures to support CSV output and future PDF generation.
- Enabled both one-time and scheduled report concepts at the data and API level.
- Ensured report data is reusable for downloads and email delivery.
- Aligned reporting permissions so admin, operator, and reporter roles have equal access in phase 1.
- Designed the reporting model to be extensible for future RBAC, UI, and visualization enhancements.
---
## v20251231-06-reports-ui-placeholders
- Added an initial Reports UI to create, view, and manage report definitions for testing purposes.
- Implemented UI components to generate and download raw report data as CSV.
- Added scheduling placeholders (non-functional) to preview future report scheduling options.
- Prepared the Reports page layout for future extensions such as automated delivery and scheduling.
---
## v20251231-07-reports-raw-data-ui
- Added raw data preview functionality to the Reports page, allowing users to view report data directly in the UI without downloading a CSV.
- Introduced a modal-based raw data viewer with pagination support for large datasets.
- Implemented backend support to generate report data on demand for UI preview usage.
- Added API endpoints to retrieve report raw data with configurable limits and offsets.
- Prepared the reporting flow to support future export options (CSV/PDF) using the same data foundation.
---
## v20251231-08-reports-generation-enabled
- Enabled actual report generation from the Reports page.
- Connected the “Generate report” action to the backend generation logic.
- Ensured raw data can be used to build a report without requiring a schedule.
- Kept scheduling functionality as a placeholder only, as intended.
- Improved UI state handling after report generation (status and available actions).
---
## v20260101-01-reports-new-report-button-fix
- Fixed the “New report” button on the Reports page so it correctly opens the report creation modal.
- Ensured report-related JavaScript is initialized after DOMContentLoaded to avoid issues with unloaded dependencies.
- Restored the ability to start creating a new report from the UI.
---
## v20260101-02-reports-new-report-page-multicustomer
- Replaced the “New report” modal with a dedicated page for creating reports.
- Added a full Create Report page with support for future expansion of report options.
- Implemented month-based date selection with clickable days and separate time inputs.
- Added quick-select options for:
- First day of the current month
- First day of the last month
- Added the ability to select a customer for which the report is generated.
- Extended reporting to support generating reports for multiple customers in a single report.
- Updated report generation logic to handle single-customer, multi-customer, and all-customer scopes.
- Prepared reporting output for use cases such as account management and operations-wide overviews.
---
## v20260101-03-run-checks-page-guide-text
- Added a workflow guide to the Run Checks page explaining its purpose in daily operational triage.
- Emphasized that the main objective is to keep the Run Checks page as empty as possible.
- Clarified that every run must be marked as reviewed to demonstrate that backups are actively checked.
- Explicitly stated that after adding a ticket number or remark, the run must still be marked as reviewed.
- Explained the role of the resolved status within the Run Checks workflow.
- Placed the guide directly on the Run Checks page (no popup), aligned with the dashboard explanation style.
---
## v20260101-04-run-checks-guide-layout-fix
- Moved the Run Checks workflow guide into the main page content so it aligns with the left edge of the table.
- Reduced vertical spacing below the guide to remove excessive empty space before the Run Checks table.
- Ensured the guide follows the same layout and alignment as the existing Run Checks page elements.
- Applied layout-only changes without modifying any functional behavior.
---
## v20260101-05-run-checks-shift-multiselect
- Added support for selecting multiple rows on the Run Checks page using Shift-click.
- Users can now select a continuous range of checkboxes by holding Shift and clicking another row.
- Improves efficiency when reviewing or updating multiple checks at once.
---
## v20260101-06-run-checks-shift-multiselect-fix
- Fixed Shift-click behavior on the Run Checks page to properly select a range of rows via checkboxes.
- Prevented default browser text selection when using Shift during checkbox selection.
- Implemented tracking of the last selected checkbox to enable continuous range selection.
- Ensured multiselect only applies to checkbox interactions and not table row text.
---
## v20260101-07-run-checks-shift-multiselect-delegation-fix
- Reworked Shift-click multiselect on the Run Checks page using event delegation.
- Ensured checkbox range selection works correctly with dynamically rendered table rows.
- Disabled default browser text selection when using Shift during checkbox interaction.
- Applied Gmail-style range selection logic for consistent multi-row selection behavior.
---
## v20260101-08-run-checks-shift-multiselect-selection-retain
- Fixed Shift-click multi-select on the Run Checks page so the initial checkbox selection is preserved when selecting additional rows with Shift.
- Made Shift range selection use the checkbox pre-click state to prevent unintended double-toggles across browsers.
---
## v20260101-09-run-checks-shift-multiselect-range-highlight-fix
### Changed
- Fixed shift-click multi-select behavior on the Run Checks page to include the clicked row in the selection range.
- Corrected an off-by-one issue where selection previously stopped one row above the clicked item.
- Added visual highlighting for all rows that are selected via checkmarks to clearly indicate active selection.
---
## v20260101-10-run-checks-shift-multiselect-last-row-checkbox-fix
### Fixed
- Fixed an issue on the Run Checks page where the last row in a shift-selected range was visually highlighted but its checkbox was not checked.
- Ensured checkbox state and row highlight state stay fully in sync for all rows in a shift multi-selection.
- Corrected selection logic so every row within the calculated range is consistently selected and marked.
---
## v20260101-11-run-checks-select-all-indeterminate-clear-selection
- Fixed the Run Checks header “select all” checkbox behavior: when the checkbox is in an indeterminate (partial selection) state, clicking it now clears all selected rows instead of selecting all rows.
- Prevented unintended full selection when toggling from an indeterminate state.
- Ensured consistent behavior between mouse click and keyboard (Space) interaction on the header checkbox.
---
## v20260101-12-run-checks-select-all-indeterminate-clear-selection-fix
- Fixed the Run Checks header “select all” checkbox: when it is indeterminate (partial selection), clicking it now clears the current selection instead of selecting all rows.
- Implemented click interception before the browser toggles the checkbox state to prevent unintended full selection from the indeterminate state.
- Added consistent keyboard behavior: pressing Space on the indeterminate header checkbox now also clears the selection.
---
## v20260101-13-run-checks-select-all-indeterminate-state-fix
- Fixed the “Select all” checkbox behavior on the Run Checks page.
- Resolved an issue where the checkbox remained in the indeterminate (`-`) state after clearing the selection.
- Ensured that after clearing all selected rows, the “Select all” checkbox can again be used to select all rows normally.
- Improved synchronization between individual row selection and the global “Select all” checkbox state.
---
## v20260101-14-run-checks-select-all-indeterminate-stuck-dash-fix
- Fixed an issue on the Run Checks page where the “Select all” checkbox could remain visually stuck in the indeterminate (`-`) state after clearing the current selection.
- Ensured the header checkbox state is re-synced after the click/change cycle so it correctly reflects the row selection state.
================================================================================================================================================ ================================================================================================================================================
## v0.1.15
This release focused on improving operational clarity and usability by strengthening dashboard guidance, introducing a solid reporting foundation, and significantly refining the Run Checks review workflow for daily accountability.
### Dashboard & User Guidance
- Added a comprehensive explanatory section to the Dashboard describing how Backupchecks collects, normalizes, and evaluates backup results.
- Clarified dashboard counters, job statuses, overrides, and operational workflows.
- Introduced clear guidance emphasizing the goal of keeping the Run Checks page empty or near-empty as proof of daily review and accountability.
- Positioned Backupchecks explicitly as a monitoring and validation layer that complements existing backup software.
### Navigation & Usability
- Implemented automatic redirection to the Dashboard on a users first visit of each day, improving daily visibility of system status.
- Refactored the Settings area into clearly separated sections (General, Imports, Users, etc.) for better usability and structure.
### Dashboard News
- Added a per-user Dashboard News section with read/unread tracking.
- Enabled full admin management of news items (create, edit, delete, pin, severity, publish window).
- Provided admin insight into read statistics and the ability to reset read status.
### Reporting Foundation
- Introduced the initial reporting framework focused on raw, immutable data for auditability.
- Added object-based reporting across multiple jobs with aggregated success, warning, failed, missed, and override metrics.
- Prepared the data model for CSV export, future PDF generation, scheduling, and email delivery.
- Enabled reporting access for admin, operator, and reporter roles in phase 1.
### Reports UI & Generation
- Added an initial Reports UI to define, generate, and manage reports.
- Enabled raw data preview directly in the UI with pagination support.
- Implemented backend endpoints to generate and retrieve report data on demand.
- Replaced the “New report” modal with a dedicated Create Report page.
- Added month-based date selection, quick-select options, and multi-customer reporting support.
- Enabled actual report generation while keeping scheduling as a non-functional placeholder.
### Run Checks Multi-Select Improvements
- Added Shift-click multi-selection for efficient bulk review.
- Iteratively fixed edge cases including:
- Off-by-one range selection issues
- Checkbox and row highlight desynchronization
- Last-row selection bugs
- Browser text selection interference
- Improved “Select all” checkbox behavior:
- Clearing selection when indeterminate
- Correctly resetting from the indeterminate state
- Ensuring consistent mouse and keyboard interaction
### Overall Result
- Improved clarity, accountability, and daily workflow guidance across the application.
- Established a solid, extensible reporting foundation.
- Significantly enhanced usability and reliability of the Run Checks review process.
---
## v0.1.14 ## v0.1.14
### Daily Jobs ### Daily Jobs

View File

@ -1 +1 @@
v0.1.14 v0.1.15