engine/app/views/good_job/jobs/show.html.erb in good_job-2.14.4 vs engine/app/views/good_job/jobs/show.html.erb in good_job-2.15.0
- old
+ new
@@ -1,3 +1,57 @@
-<h1 class="mb-3">ActiveJob ID: <code><%= @executions.first.id %></code></h1>
+<div class="break-out bg-light border-bottom py-2 mb-3">
+ <div class="container-fluid pt-2">
+ <div class="d-flex align-items-center">
+ <div class="flex-fill">
+ <nav aria-label="breadcrumb">
+ <ol class="breadcrumb small mb-0">
+ <li class="breadcrumb-item"><%= link_to "Jobs", jobs_path %></li>
+ <li class="breadcrumb-item active" aria-current="page">ActiveJob ID: <%= tag.code @job.id %></li>
+ </ol>
+ </nav>
+ <h2 class="mb-1"><%= tag.code @job.job_class %></h2>
+ <div class="text-muted small d-flex gap-2">
+ <div>Queue: <%= tag.strong @job.queue_name %></div>
+ •
+ <div>Priority: <%= tag.strong @job.priority %></div>
+ </div>
+ </div>
+ <div>
+ <% job_reschedulable = @job.status.in? [:scheduled, :retried, :queued] %>
+ <%= button_to reschedule_job_path(@job.id), method: :put,
+ class: "btn btn-sm #{job_reschedulable ? 'btn-outline-primary' : 'btn-outline-secondary'}",
+ form_class: "d-inline-block",
+ disabled: !job_reschedulable,
+ aria: { label: "Reschedule job" },
+ title: "Reschedule job",
+ data: { confirm: "Confirm reschedule" } do %>
+ <%= render_icon "skip_forward" %>
+ Reschedule
+ <% end %>
-<%= render 'good_job/executions/table', executions: @executions %>
+ <% job_discardable = @job.status.in? [:scheduled, :retried, :queued] %>
+ <%= button_to discard_job_path(@job.id), method: :put, class: "btn btn-sm #{job_discardable ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: !job_discardable, aria: { label: "Discard job" }, title: "Discard job", data: { confirm: "Confirm discard" } do %>
+ <%= render_icon "stop" %>
+ Discard
+ <% end %>
+
+ <%= button_to retry_job_path(@job.id), method: :put, class: "btn btn-sm #{@job.status == :discarded ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: @job.status != :discarded, aria: { label: "Retry job" }, title: "Retry job", data: { confirm: "Confirm retry" } do %>
+ <%= render_icon "arrow_clockwise" %>
+ Retry
+ <% end %>
+
+ <% job_destroyable = @job.status.in? [:discarded, :finished] %>
+ <%= button_to job_path(@job.id), method: :delete, class: "btn btn-sm #{job_destroyable ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: !job_destroyable, aria: { label: "Destroy job" }, title: "Destroy job", data: { confirm: "Confirm destroy" } do %>
+ <%= render_icon "trash" %>
+ Destroy
+ <% end %>
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="my-4">
+ <h5>Arguments</h5>
+ <%= tag.pre @job.serialized_params["arguments"].map(&:inspect).join(', ') %>
+</div>
+
+<%= render 'executions', executions: @job.executions.reverse %>