diff --git a/app/controllers/concerns/mission_control/jobs/job_filters.rb b/app/controllers/concerns/mission_control/jobs/job_filters.rb index 01a171d4..7e3b772d 100644 --- a/app/controllers/concerns/mission_control/jobs/job_filters.rb +++ b/app/controllers/concerns/mission_control/jobs/job_filters.rb @@ -9,10 +9,24 @@ module MissionControl::Jobs::JobFilters private def set_filters - @job_filters = { job_class_name: params.dig(:filter, :job_class_name).presence, queue_name: params.dig(:filter, :queue_name).presence }.compact + @job_filters = { job_class_name: params.dig(:filter, :job_class_name).presence, queue_name: params.dig(:filter, :queue_name).presence, + finished_at: finished_at_range_params }.compact end def active_filters? @job_filters.any? end + + def finished_at_range_params + range_start, range_end = params.dig(:filter, :finished_at_start), params.dig(:filter, :finished_at_end) + if range_start || range_end + (parse_with_time_zone(range_start)..parse_with_time_zone(range_end)) + end + end + + def date_with_time_zone(date) + if date.present? + DateTime.parse(date).in_time_zone + end + end end diff --git a/app/views/mission_control/jobs/jobs/_filters.html.erb b/app/views/mission_control/jobs/jobs/_filters.html.erb index ef0d7928..89d9b211 100644 --- a/app/views/mission_control/jobs/jobs/_filters.html.erb +++ b/app/views/mission_control/jobs/jobs/_filters.html.erb @@ -12,6 +12,16 @@ <%= form.text_field :queue_name, value: @job_filters[:queue_name], class: "input", list: "queue-names", placeholder: "Filter by queue name..." %> + <% if jobs_status == "finished" %> +
+ <%= form.datetime_field :finished_at_start, value: @job_filters[:finished_at]&.begin, class: "input", placeholder: "Finished from" %> +
+ +
+ <%= form.datetime_field :finished_at_end, value: @job_filters[:finished_at]&.end, class: "input", placeholder: "Finished to" %> +
+ <% end %> + <%= hidden_field_tag :server_id, MissionControl::Jobs::Current.server.id %>