Skip to content

Add routes, controllers, and views for dashboard, queues, jobs, and failed jobs#1

Merged
eclectic-coding merged 23 commits into
mainfrom
feature/routes-controllers-views
May 18, 2026
Merged

Add routes, controllers, and views for dashboard, queues, jobs, and failed jobs#1
eclectic-coding merged 23 commits into
mainfrom
feature/routes-controllers-views

Conversation

@eclectic-coding

Copy link
Copy Markdown
Owner

Summary

  • Defines engine routes: dashboard root, queues (pause/resume), jobs (status/queue filter), failed jobs (retry/discard/discard-all)
  • Adds ApplicationController with auth hook and Pagy::Backend; ApplicationHelper with Pagy::Frontend
  • Implements DashboardController, QueuesController, JobsController, and FailedJobsController
  • Builds views for all four pages with stat cards, filterable job tables, and action buttons
  • Adds a minimal CSS stylesheet with badges, stat cards, table styles, and pagy pagination styles
  • Adds solid_queue and pagy as runtime dependencies

Correctness notes

  • SolidQueue::Queue is a PORO (not ActiveRecord) — uses pagy_array and .sort_by instead of AR scopes
  • discard_all does not exist on FailedExecution; corrected to discard_all_in_batches
  • Queue count on the dashboard uses SolidQueue::Job.select(:queue_name).distinct.count

Test plan

  • Mount the engine in a host app (mount SolidQueueDashboard::Engine, at: "/jobs") and visit /jobs
  • Verify dashboard stat cards reflect live queue counts
  • Verify jobs page filters by status (ready / scheduled / running / blocked / failed)
  • Click a queue name link to verify per-queue job filtering
  • Pause and resume a queue; confirm badge updates
  • Enqueue a failing job; confirm it appears on Failed Jobs page
  • Retry a failed job; confirm it re-enters the ready queue
  • Discard a single failed job and confirm removal
  • Use "Discard All" and confirm all failed jobs are removed
  • Configure SolidQueueDashboard.authenticate block and verify unauthorized access is blocked

🤖 Generated with Claude Code

eclectic-coding and others added 23 commits May 18, 2026 08:54
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…styles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… action

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eclectic-coding eclectic-coding merged commit d1e19cf into main May 18, 2026
1 check passed
@eclectic-coding eclectic-coding deleted the feature/routes-controllers-views branch May 18, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant