-<div class="row">
+<h4>Queue</h4>
+<% queue = Job.queue %>
+<% if queue.any? %>
- <% nodes = Node.all %>
-
- <div class="col-sm-4 compute-summary-numbers">
- <div class="panel panel-default">
- <table>
- <colgroup>
- <col width="25%">
- <col width="25%">
- <col width="25%">
- <col width="25%">
- </colgroup>
- <tr>
- <td>0</td>
- <td><%= nodes.select {|n| n.crunch_worker_state.in? ["busy", "idle"] }.size %></td>
- <td><%= nodes.select {|n| n.crunch_worker_state == "busy" }.size %></td>
- <td><%= nodes.select {|n| n.crunch_worker_state == "idle" }.size %></td>
- </tr>
- <tr>
- <th>Queue</th>
- <th>Nodes</th>
- <th>Busy</th>
- <th>Idle</th>
- </tr>
- </table>
+<% queue.each do |j| %>
+ <div class="row">
+ <div class="col-md-3 text-overflow-ellipsis">
+ <%= link_to_if_arvados_object j, friendly_name: true %>
+ </div>
+ <div class="col-md-4">
+ <%= render_localized_date(j[:created_at]) %>
+ </div>
+ <div class="col-md-3">
+ <%= render_runtime(Time.now - j[:created_at], false) %>
+ </div>
+ <div class="col-md-2">
+ <%= j[:priority] %>
</div>
</div>
- <div class="col-sm-8">
- <div class="clearfix" style="margin-top:0.5em; margin-bottom:0.5em">
- <% nodes.sort_by { |n| n.hostname || "" }.each do |n| %>
- <% if n.crunch_worker_state.in? ["busy", "idle"] %>
- <div class="pull-left compute-summary">
- <a data-toggle="collapse" href="#detail_<%= n.hostname %>" class="compute-summary-head label label-<%= if n.crunch_worker_state == 'busy' then 'primary' else 'default' end %>">
- <%= n.hostname %>
- </a>
- <div id="detail_<%= n.hostname %>" class="collapse compute-detail">
- state: <%= n.crunch_worker_state %><br>
- <% [:total_cpu_cores, :total_ram_mb, :total_scratch_mb].each do |i| %>
- <%= i.to_s.gsub '_', ' ' %>: <%= n.info[i] %><br>
- <% end %>
- </div>
- </div>
- <% end %>
- <% end %>
+<% end %>
+ <div class="row">
+ <div class="col-md-3">
+ <b>Job</b>
+ </div>
+ <div class="col-md-4">
+ <b>Submitted</b>
</div>
+ <div class="col-md-3">
+ <b>Queued</b>
+ </div>
+ <div class="col-md-2">
+ <b>Priority</b>
+ </div>
+ </div>
+ <% if Job.queue_size > queue.size %>
+ <i>Note: some items in the queue are not visible to you.</i>
+ <% end %>
+ <div>
</div>
+<% else %>
+ There are currently no jobs in your queue.
+<% end %>
+
+<h4>Node status</h4>
+<div class="compute-summary-nodelist">
+ <% nodes.sort_by { |n| n.hostname || "" }.each do |n| %>
+ <% if n.crunch_worker_state.in? ["busy", "idle"] and (Time.now - n[:last_ping_at]) < 3600 %>
+ <div class="compute-summary">
+ <a data-toggle="collapse" href="#detail_<%= n.hostname %>" class="compute-summary-head label label-<%= if n.crunch_worker_state == 'busy' then 'primary' else 'default' end %>">
+ <%= n.hostname %>
+ </a>
+ <div id="detail_<%= n.hostname %>" class="collapse compute-detail">
+ state: <%= n.crunch_worker_state %><br>
+ <% [:total_cpu_cores, :total_ram_mb, :total_scratch_mb].each do |i| %>
+ <%= i.to_s.gsub '_', ' ' %>: <%= n.properties[i] %><br>
+ <% end %>
+ </div>
+ </div>
+ <% end %>
+ <% end %>
</div>