show progress bar and tasks summary on /jobs page. refs #1417
authorTom Clegg <tom@clinicalfuture.com>
Mon, 18 Mar 2013 22:25:37 +0000 (15:25 -0700)
committerTom Clegg <tom@clinicalfuture.com>
Mon, 18 Mar 2013 22:25:37 +0000 (15:25 -0700)
app/views/jobs/index.html.erb

index 10daa2874f71d373a81af8e7b20717aa96a913bb..31d3bcb2752ca8abc0c89b362909ab60a66ef788 100644 (file)
@@ -29,7 +29,7 @@
       <td>
         <table class="table table-condensed table-hover">
           <tr>
-            <td colspan="3">
+            <td colspan="2">
               <% if j.success == false %>
               <span class="badge badge-warning" title="fail">&#x2716;</span>
               <% elsif j.success %>
               <% end %>
              <%= link_to_if_orvos_object j.uuid %>
             </td>
+            <td>
+              <% if j.started_at and not j.finished_at %>
+              <% percent_total_tasks = 100 / (j.tasks_summary[:running] + j.tasks_summary[:done] + j.tasks_summary[:todo]) rescue 0 %>
+              <div class="progress" style="margin-bottom: 0">
+                <div class="bar bar-success" style="width: <%= j.tasks_summary[:done] * percent_total_tasks %>%;"></div>
+                <div class="bar" style="width: <%= j.tasks_summary[:running] * percent_total_tasks %>%; opacity: 0.3"></div>
+              </div>
+              <% end %>
+            </td>
           </tr>
           <tr>
             <td>
              <%= raw('for&nbsp;' + distance_of_time_in_words(j.started_at, j.created_at).sub('about ','~').sub(' ','&nbsp;')) if j.created_at and j.started_at %>
             </td>
           </tr>
-          <% if j.started_at %>
+          <% if j.started_at.is_a? Time %>
           <tr>
             <td>
-              ran
+              started
             </td>
             <td>
              &#x2708;&nbsp;<span title="<%= j.created_at %>"><%= raw distance_of_time_in_words(j.started_at, Time.now).sub('about ','~').sub(' ','&nbsp;') + '&nbsp;ago' if j.started_at %></span>
             </td>
             <td>
-             <%= raw('for&nbsp;' + distance_of_time_in_words(j.finished_at, j.started_at).sub('about ','~').sub(' ','&nbsp;')) if j.finished_at.is_a?(Time) and j.started_at.is_a?(Time) %>
+              <% if j.finished_at.is_a? Time %>
+             <%= raw('ran&nbsp;' + distance_of_time_in_words(j.finished_at, j.started_at).sub('about ','~').sub(' ','&nbsp;')) %>
+              <% elsif j.running %>
+              <span class="badge badge-success" title="tasks finished">&#x2714;&nbsp;<%= j.tasks_summary[:done] %></span>
+              <span class="badge badge-info" title="tasks running">&#x2708;&nbsp;<%= j.tasks_summary[:running] %></span>
+              <span class="badge" title="tasks todo">&#x2709;&nbsp;<%= j.tasks_summary[:todo] %></span>
+              <% if j.tasks_summary[:failed] %>
+              <span class="badge badge-warning" title="task failures">&#x2716;&nbsp;<%= j.tasks_summary[:failed] %></span>
+              <% end %>
+              <% end %>
             </td>
           </tr>
           <% end %>