Skip to content

feat: bulk Run All Now for scheduled jobs + priority filter on jobs list#48

Merged
eclectic-coding merged 6 commits into
mainfrom
feat/bulk-run-now-priority-filter
May 21, 2026
Merged

feat: bulk Run All Now for scheduled jobs + priority filter on jobs list#48
eclectic-coding merged 6 commits into
mainfrom
feat/bulk-run-now-priority-filter

Conversation

@eclectic-coding
Copy link
Copy Markdown
Owner

Summary

  • Bulk Run All Now — "Run All Now" button on the Scheduled tab header back-dates all scheduled executions in a single update_all call so SolidQueue's dispatcher picks them up immediately; respects the active period filter; pluralises the success notice correctly
  • Priority filter?priority=N param on the jobs index; a select dropdown appears in the search bar when multiple distinct priorities exist; preserved across status tabs, period changes, and search; Discard All also respects the active priority filter
  • Refactor: removed the redundant OFFSETS constant from ScheduledJobsControllerPERIOD_DURATIONS inherited from ApplicationController covers the same values

Test plan

  • 7 new examples for POST /scheduled_jobs/run_all_now (redirect, update, count notice, pluralise, period filter, error rescue)
  • 5 new examples for ?priority= filter (show all, filter, dropdown, tab preservation, discard all scoping)
  • 266 examples, 0 failures, 100% line coverage
  • bundle exec rake passes (RuboCop + RSpec)

🤖 Generated with Claude Code

eclectic-coding and others added 6 commits May 21, 2026 10:14
Removes Bulk scheduled job actions and Priority filter (shipping in 1.0).
Drops the Observability section (now empty after Performance analytics
shipped). Retains admin audit log, failed job retry with modified args,
multiple webhook targets, and queue depth alert as post-1.0 items.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bulk Run All Now: POST /scheduled_jobs/run_all_now back-dates all
scheduled executions in one update_all call; respects the current period
filter; button appears on the Scheduled tab header alongside Discard All.
Also removes the redundant OFFSETS constant — PERIOD_DURATIONS from
ApplicationController covers the same values.

Priority filter: ?priority=N param on the jobs index narrows the scope to
a specific integer priority; a select dropdown appears when multiple
distinct priorities exist; priority is preserved across status tab
switches, period changes, search, and Discard All.

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

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

Moves the period-filtered execution scope into a private scheduled_scope
method (shared between create and update) and the offset→time resolution
into resolve_new_time, making both actions read as a clear sequence of
steps rather than inline conditionals.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both methods are pure model-layer concerns — derive_status computes a
job's effective status from its associations and execution_model_for!
is a guarded lookup on the model's own constants. Neither has any
controller-specific context, so the controller simply delegates to
Job.derive_status and Job.execution_model_for!.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The before_action had a stale :discard_selected reference (action no
longer exists) and created an asymmetry where index set its own params
inline but destroy relied on a callback. destroy now reads @status,
@period, and @priority directly at the top of the action, matching the
index pattern and removing the indirection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eclectic-coding eclectic-coding merged commit df11e95 into main May 21, 2026
7 checks passed
@eclectic-coding eclectic-coding deleted the feat/bulk-run-now-priority-filter branch May 21, 2026 14:39
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