From 1ccc74adcadc558c65f19146daab3c0162507136 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 4 Jan 2022 17:53:35 -0600 Subject: [PATCH] jobs: add ability to order jobs in /jobs listing. --- app/models/background_job.rb | 15 ++++++++++++++- app/views/jobs/index.html.erb | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/models/background_job.rb b/app/models/background_job.rb index 4b3bb9927..b138f1623 100644 --- a/app/models/background_job.rb +++ b/app/models/background_job.rb @@ -42,7 +42,20 @@ class BackgroundJob < GoodJob::ActiveJobJob q = q.status_matches(params[:status]) end - q.apply_default_order(params) + case params[:order] + when "created_at" + q = q.order(created_at: :desc) + when "updated_at" + q = q.order(updated_at: :desc) + when "scheduled_at" + q = q.order(scheduled_at: :desc) + when "performed_at" + q = q.order(performed_at: :desc) + when "finished_at" + q = q.order(finished_at: :desc) + else + q = q.apply_default_order(params) + end end end end diff --git a/app/views/jobs/index.html.erb b/app/views/jobs/index.html.erb index ef45b0942..ba6bfafc8 100644 --- a/app/views/jobs/index.html.erb +++ b/app/views/jobs/index.html.erb @@ -5,6 +5,7 @@ <%= search_form_for(jobs_path) do |f| %> <%= f.input :name, collection: ApplicationJob.job_classes.map { |klass| klass.name.titleize.delete_suffix(" Job") }, include_blank: true, selected: params[:search][:name] %> <%= f.input :status, collection: %w[Running Queued Finished Discarded], include_blank: true, selected: params[:search][:status] %> + <%= f.input :order, collection: [%w[Created created_at], %w[Updated updated_at], %w[Scheduled scheduled_at], %w[Performed performed_at], %w[Finished finished_at]], include_blank: true, selected: params[:search][:order] %> <%= f.submit "Search" %> <% end %>