Merge branch 'master' into 8286-fav-projects
[arvados.git] / apps / workbench / app / views / application / _job_progress.html.erb
index f942c44c2ca74eeff48ef256ebf788420d20a4d9..efe1819ebd6d5cf73512046b2fcefcbb084a44b1 100644 (file)
@@ -1,58 +1,51 @@
-<%
-   failed = j[:tasks_summary][:failed] || 0 rescue 0
-   done = j[:tasks_summary][:done] || 0 rescue 0
-   running = j[:tasks_summary][:running] || 0 rescue 0
-   todo = j[:tasks_summary][:todo] || 0 rescue 0
-
-   if j[:success] == false and done + running + failed == 0
-     # The job failed but no tasks were ever started (i.e. crunch-dispatch
-     # was unable to start the job). Display a full 100% failed progress bar.
-     failed_percent = 100
-     success_percent = 0
-     running_percent = 0
-   elsif done + running + failed + todo == 0
-     # No tasks were ever created for this job;
-     # render an empty progress bar.
-     failed_percent = 0
-     success_percent = 0
-     running_percent = 0
-   else
-     percent_total_tasks = 100.0 / (done + running + failed + todo)
-     if defined? scaleby
-       percent_total_tasks *= scaleby
-     end
-     failed_percent = (failed * percent_total_tasks).ceil
-     success_percent = (done * percent_total_tasks).ceil
-     running_percent = (running * percent_total_tasks).ceil
-
-     # We used ceil instead of round to compute percents to handle the situation
-     # where one of them is much larger than the other(s). However, this may
-     # have resulted in total percent > 100, hence we need to account for that.
-     if (failed_percent + success_percent + running_percent) > 100
-        overflow = failed_percent + success_percent + running_percent - 100
-        # decrease the biggest by the overlow amount
-        if (failed_percent > success_percent) && (failed_percent > running_percent)
-          failed_percent -= overflow
-        elsif (success_percent > failed_percent) && (success_percent > running_percent)
-          success_percent -= overflow
-        else
-          running_percent -= overflow
-        end
-     end
-   end
-%>
+<% if (j.andand[:state] == "Running" or defined? scaleby) and (not defined? show_progress_bar or show_progress_bar) %>
+  <%
+    failed = j[:tasks_summary][:failed] || 0 rescue 0
+    done = j[:tasks_summary][:done] || 0 rescue 0
+    running = j[:tasks_summary][:running] || 0 rescue 0
+    todo = j[:tasks_summary][:todo] || 0 rescue 0
 
-<% if not defined? scaleby %>
-  <div class="progress">
-<% end %>
+    if done + running + failed + todo == 0
+      # No tasks were ever created for this job;
+      # render an empty progress bar.
+      done_percent = 0
+    else
+      percent_total_tasks = 100.0 / (done + running + failed + todo)
+      if defined? scaleby
+        percent_total_tasks *= scaleby
+      end
+      done_percent = (done+failed) * percent_total_tasks
+    end
+    %>
+
+  <% if not defined? scaleby %>
+    <div class="progress" style="margin-bottom: 0px">
+  <% end %>
+
+  <span class="progress-bar <%= if failed == 0 then 'progress-bar-success' else 'progress-bar-warning' end %>" style="width: <%= done_percent %>%;">
+  </span>
 
-<span class="progress-bar progress-bar-success" style="width: <%= success_percent %>%;">
-</span>
-<span class="progress-bar progress-bar-danger" style="width: <%= failed_percent %>%;">
-</span>
-<span class="progress-bar" style="width: <%= running_percent %>%;">
-</span>
+  <% if not defined? scaleby %>
+  </div>
+  <% end %>
+
+<% else %>
+
+<% to_label = {
+     "Cancelled" => "danger",
+     "Complete" => "success",
+     "Running" => "info",
+     "Failed" => "danger",
+     "Queued" => "default",
+     nil => "default"
+   } %>
+
+  <span class="label label-<%= to_label[j.andand[:state]] %>">
+    <%= if defined? title
+          title
+        else
+          if j.andand[:state] then j[:state].downcase else "Not ready" end
+        end
+        %></span>
 
-<% if not defined? scaleby %>
-</div>
 <% end %>