feat: CSV export for jobs, failed jobs, and history views#33
Merged
Conversation
Adds an "Export CSV" button to the jobs, failed jobs, and history pages. Clicking it downloads all records matching the current filters (status, queue, search, period) — not just the current page. Each view has its own columns: - Jobs: id, class_name, queue_name, status, priority, enqueued_at - Failed jobs: id, class_name, queue_name, error_class, error_message, failed_at - History: id, class_name, queue_name, duration_seconds, finished_at Links use data-turbo="false" to bypass Turbo frame interception. The csv gem is added as an explicit dependency (unbundled from Ruby 4.0+). 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
id, class_name, queue_name, status, priority, enqueued_atid, class_name, queue_name, error_class, error_message, failed_atid, class_name, queue_name, duration_seconds, finished_atdata-turbo="false"to bypass Turbo frame interception so the download triggers correctlycsvgem added as an explicit dependency (unbundled from Ruby's stdlib in 4.0+)Test plan
/jobs— "Export CSV" button visible alongside status tabs; click downloadsjobs-ready-<date>.csvwith correct columns and rows matching current filters/jobs/failed_jobs— "Export CSV" appears next to Retry All / Discard All; downloaded file includes error class and message/jobs/history— "Export CSV" appears in page header; downloaded file includes duration and finished_at🤖 Generated with Claude Code