<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 %>

        <% 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.includes_advisory_locks.reverse %>