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

% my $related = begin
  % my $worker = shift;
  % my $jobs = $worker->{jobs};
  % if (@$jobs) {
    <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">
        % my $url = url_for('minion_jobs')->query(id => $jobs);
        <a class="dropdown-item" href="<%= $url %>"><i class="fas fa-cubes"></i> Jobs</a>
      </div>
    </div
  % }
% end

<div class="d-flex justify-content-between">
  <div></div>
  <div>
    <p class="text-center">
      % if (@$workers) {
        <%= $offset + 1 %>-<%= $offset + @$workers %> of <%= $total %>
      % }
    </p>
  </div>
  %= include 'minion/_limit'
</div>

<div class="row">
  <div class="col-md-12">
    <table class="table">
      <thead>
        <tr>
          <th>Worker ID</th>
          <th>Host</th>
          <th>Process ID</th>
          <th>Started</th>
          <th></th>
          <th></th>
          <th></th>
        </tr>
      </thead>
      % if (@$workers) {
        % my $i = 0;
        % for my $worker (@$workers) {
          % $i++;
          <tbody>
            <tr>
              <td>
                <a href="<%= url_for->query({id => $worker->{id}}) %>">
                  <%= $worker->{id} %>
                </a>
              </td>
              <td><%= $worker->{host} %></td>
              <td><%= $worker->{pid} %></td>
              <td class="from-now"><%= $worker->{started} %></td>
              <td><%= $related->($worker) %></td>
              <td class="accordion-toggle collapsed" data-toggle="collapse" data-target="#worker<%= $i %>">
                % if (@{$worker->{jobs}}) {
                  <span class="badge badge-primary">busy</span>
                % }
                % else {
                  <span class="badge badge-secondary">idle</span>
                % }
              </td>
              <td class="accordion-toggle collapsed expand" data-toggle="collapse" data-target="#worker<%= $i %>">
                <span class="fas fa-lg expand-icon"></span>
              </td>
            </tr>
            <tr>
              <td colspan="7" class="hiddenRow">
                <div class="collapse" id="worker<%= $i %>">
                  <pre class="border rounded"><%= Minion::_dump(Minion::_datetime($worker)) %></pre>
                </div>
              </td>
            </tr>
          </tbody>
        % }
      % }
      % else {
        <tr><td colspan="4"><p class="text-center"><i class="fas fa-info-circle"></i> No workers found</p></td></tr>
      % }
    </table>
  </div>
</div>

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