diff --git a/.rubocop.yml b/.rubocop.yml index 01ac431..dd24941 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -22,6 +22,8 @@ Style/Documentation: Metrics/ClassLength: Max: 500 + Exclude: + - 'app/services/solid_queue_monitor/stylesheet_generator.rb' Metrics/ModuleLength: Max: 200 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/Gemfile.lock b/Gemfile.lock index 9baf274..4387a36 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - solid_queue_monitor (0.3.2) + solid_queue_monitor (0.4.0) rails (>= 7.0) solid_queue (>= 0.1.0) 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..a6b5218 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} +