+
+function generateJobOverview(id, logViewer, taskState) {
+ var html = "";
+
+ var first = logViewer.items[1];
+ var last = logViewer.items[logViewer.items.length-1];
+
+ {
+ html += "<div>";
+ html += "Started at " + first.values().timestamp;
+
+ var duration = (last.values().ts.getTime() - first.values().ts.getTime()) / 1000;
+
+ var hours = 0;
+ var minutes = 0;
+ var seconds;
+
+ if (duration >= 3600) {
+ hours = Math.floor(duration / 3600);
+ duration -= (hours * 3600);
+ }
+ if (duration >= 60) {
+ minutes = Math.floor(duration / 60);
+ duration -= (minutes * 60);
+ }
+ seconds = duration;
+
+ var tcount = taskState.success_count + taskState.failure_count;
+
+ html += ". " + tcount + dumbPluralize(tcount, " task") + " completed in ";
+ if (hours > 0) {
+ html += hours + dumbPluralize(hours, " hour");
+ }
+ if (minutes > 0) {
+ html += " " + minutes + dumbPluralize(minutes, " minute");
+ }
+ if (seconds > 0) {
+ html += " " + seconds + dumbPluralize(seconds, " second");
+ }
+ html += ". " + taskState.success_count + dumbPluralize(taskState.success_count, " success", "es");
+ html += ", " + taskState.failure_count + dumbPluralize(taskState.failure_count, " failure");
+
+ html += ". Completed at " + last.values().timestamp;
+ html += "</div>";
+ }
+
+ $(id).html(html);
+}
\ No newline at end of file