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