From 894f575b9dbff29d7fe6c985b4c04b060e41d172 Mon Sep 17 00:00:00 2001 From: Vishal Sadriya Date: Fri, 9 Jan 2026 16:49:56 +0530 Subject: [PATCH 1/2] feat: add auto-refresh feature for real-time dashboard monitoring - Add configurable auto-refresh with toggle (default: 30 seconds) - Integrate compact controls into header with iOS-style toggle switch - Add live countdown timer and pulsing indicator when active - Add icon-based refresh button for immediate page reload - Add informative tooltip on hover explaining the feature - Persist user preference in localStorage across sessions - Support responsive design for mobile devices - Add configuration options: auto_refresh_enabled, auto_refresh_interval --- CHANGELOG.md | 16 ++ README.md | 10 +- .../solid_queue_monitor/html_generator.rb | 115 +++++++++++- .../stylesheet_generator.rb | 177 ++++++++++++++++++ config/initializers/solid_queue_monitor.rb | 2 + .../templates/initializer.rb | 7 + lib/solid_queue_monitor.rb | 5 +- lib/solid_queue_monitor/version.rb | 2 +- 8 files changed, 330 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cc916e..3fe0444 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [0.4.0] - 2026-01-09 + +### Added + +- Auto-refresh feature for real-time dashboard monitoring +- Configurable auto-refresh interval via `config.auto_refresh_interval` (default: 30 seconds) +- Toggle to enable/disable auto-refresh globally via `config.auto_refresh_enabled` +- Compact auto-refresh controls integrated into header with: + - iOS-style toggle switch to enable/disable auto-refresh + - Live countdown timer showing seconds until next refresh + - Pulsing green indicator when auto-refresh is active + - Icon-based refresh button for immediate page reload + - Informative tooltip on hover explaining the feature +- User preference persistence via localStorage (survives page reloads) +- Responsive design for auto-refresh controls on mobile devices + ## [0.3.2] - 2025-06-12 ### Added diff --git a/README.md b/README.md index 200d62f..d9b01d3 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ A lightweight, zero-dependency web interface for monitoring Solid Queue backgrou - **Advanced Job Filtering**: Filter jobs by class name, queue, status, and job arguments - **Quick Actions**: Retry or discard failed jobs, execute or reject scheduled jobs directly from any view - **Performance Optimized**: Designed for high-volume applications with smart pagination +- **Auto-refresh**: Real-time monitoring with configurable auto-refresh interval and toggle - **Optional Authentication**: Secure your dashboard with HTTP Basic Authentication - **Responsive Design**: Works on desktop and mobile devices - **Zero Dependencies**: No additional JavaScript libraries or frameworks required @@ -44,7 +45,7 @@ A lightweight, zero-dependency web interface for monitoring Solid Queue backgrou Add this line to your application's Gemfile: ```ruby -gem 'solid_queue_monitor', '~> 0.3.2' +gem 'solid_queue_monitor', '~> 0.4.0' ``` Then execute: @@ -83,6 +84,13 @@ SolidQueueMonitor.setup do |config| # Number of jobs to display per page config.jobs_per_page = 25 + + # Auto-refresh settings + # Enable or disable auto-refresh globally (users can still toggle it in the UI) + config.auto_refresh_enabled = true + + # Auto-refresh interval in seconds (default: 30) + config.auto_refresh_interval = 30 end ``` diff --git a/app/services/solid_queue_monitor/html_generator.rb b/app/services/solid_queue_monitor/html_generator.rb index 5e8b1d8..ee99805 100644 --- a/app/services/solid_queue_monitor/html_generator.rb +++ b/app/services/solid_queue_monitor/html_generator.rb @@ -50,6 +50,7 @@ def generate_body #{generate_footer} + #{generate_auto_refresh_script} HTML end @@ -88,7 +89,10 @@ def render_message def generate_header <<-HTML
-

Solid Queue Monitor

+
+

Solid Queue Monitor

+ #{generate_auto_refresh_controls} +