% layout 'minion', title => 'Minion - Jobs';

% my $related = begin
  % my $job = shift;

  % my ($parents, $children, $id) = @{$job}{qw(parents children worker)};
  % if (@$parents || @$children || $id) {
    <div class="dropdown">
      <button type="button"
        class="btn btn-sm btn-outline-secondary dropdown-toggle"
        id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true"
        aria-expanded="false">
        Related
      </button>
      <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
        % if (@$parents) {
          % my $url = url_for('minion_jobs')->query(id => $parents);
          <a class="dropdown-item" href="<%= $url %>">Parents</a>
        % }
        % if (@$children) {
          % my $url = url_for('minion_jobs')->query(id => $children);
          <a class="dropdown-item" href="<%= $url %>">Children</a>
        % }
        % if ($id) {
          % my $url = url_for('minion_workers')->query(id => $id);
          <a class="dropdown-item" href="<%= $url %>">Worker</a>
        % }
      </div>
    </div>
  % }
% end

%= include 'minion/_notifications'

%= form_for 'minion_manage_jobs' => begin
  <div class="d-flex justify-content-between">
    <div>
      <div class="btn-group" role="group">
        <button class="btn btn-outline-secondary" name="do" value="retry"
          type="submit">
          <i class="fas fa-redo" aria-hidden="true"></i> Retry
        </button>
        <button class="btn btn-outline-secondary" name="do" value="stop"
          type="submit">
          <i class="fas fa-ban" aria-hidden="true"></i> Stop
        </button>
        <button class="btn btn-outline-secondary" name="do" value="remove"
          type="submit">
          <i class="fas fa-times" aria-hidden="true"></i> Remove
        </button>
      </div>
    </div>
    <p class="align-middle">
      % if (@$jobs) {
        <%= $offset + 1 %>-<%= $offset + @$jobs %> of <%= $total %>
      % }
    </p>
    %= include 'minion/_limit'
  </div>

  <div class="row">
    <div class="col-md-12">
      <table class="table">
        <thead>
          <tr>
            <th><input class="checkall" data-check="id" type="checkbox"></th>
            <th>Job ID</th>
            <th>Task</th>
            <th>Queue</th>
            <th>Created</th>
            <th></th>
            <th></th>
            <th></th>
          </tr>
        </thead>
        % my $i = 0;
        % for my $job (@$jobs) {
          % $i++;
          % my $base = url_with->query([offset => 0]);
          <tbody>
            <tr>
              <td>
                <input type="checkbox" name="id" value="<%= $job->{id} %>">
              </td>
              <td>
                <a href="<%= url_for->query([id => $job->{id}]) %>">
                  <%= $job->{id} %>
                </a>
              </td>
              <td>
                <a href="<%= $base->clone->query([task => $job->{task}]) %>">
                  <%= $job->{task} %>
                </a>
              </td>
              <td>
                <a href="<%= $base->clone->query([queue => $job->{queue}]) %>">
                  <%= $job->{queue} %>
                </a>
              </td>
              <td class="from-now"><%= $job->{created} %></td>
              <td><%= $related->($job) %></td>
              <td class="accordion-toggle collapsed" data-toggle="collapse"
                data-target="#job<%= $i %>">
                % if ($job->{state} eq 'active') {
                  <span class="badge badge-primary">active</span>
                % }
                % elsif ($job->{state} eq 'failed') {
                  <span class="badge badge-danger">failed</span>
                % }
                % elsif ($job->{state} eq 'finished') {
                  <span class="badge badge-success">finished</span>
                % }
                % else {
                  <span class="badge badge-secondary">inactive</span>
                % }
              </td>
              <td class="accordion-toggle collapsed expand"
                data-toggle="collapse" data-target="#job<%= $i %>">
                <span class="fas fa-lg expand-icon"></span>
              </td>
            </tr>
            <tr>
              <td colspan="8" class="hiddenRow">
                <div class="collapse" id="job<%= $i %>">
                  <pre class="border rounded"><%= dumper Minion::_datetime $job %></pre>
                </div>
              </td>
            </tr>
          </tbody>
        % }
      </table>
    </div>
  </div>
% end

<div class="d-flex justify-content-center">
  %= include 'minion/_pagination'
</div>