summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorJoshua Hesketh <josh@nitrotech.org>2014-03-21 16:49:05 +1100
committerJoshua Hesketh <josh@nitrotech.org>2014-03-28 10:57:53 +1100
commit0ca1e2e27fef2f24a18469714c7b710ddd9cb9e0 (patch)
tree83becb1a678565a7bd90c8ccdac794a7d50f1101 /etc
parent6b1a218649cfebac5ebc9266296c54f84003b4b8 (diff)
downloadzuul-0ca1e2e27fef2f24a18469714c7b710ddd9cb9e0.tar.gz
Format change headers like infra's status page
Change-Id: I1de3464b4760042f368b805bbbc7675e5db4743a
Diffstat (limited to 'etc')
-rw-r--r--etc/status/public_html/app.js75
1 files changed, 59 insertions, 16 deletions
diff --git a/etc/status/public_html/app.js b/etc/status/public_html/app.js
index f8e6af282..9586b4d8a 100644
--- a/etc/status/public_html/app.js
+++ b/etc/status/public_html/app.js
@@ -174,6 +174,21 @@
return $bar_outter;
},
+ enqueue_time: function(ms) {
+ // Special format case for enqueue time to add style
+ var hours = 60 * 60 * 1000;
+ var now = Date.now();
+ var delta = now - ms;
+ var status = "text-success";
+ var text = zuul.format.time(delta, true);
+ if (delta > (4 * hours)) {
+ status = "text-danger";
+ } else if (delta > (2 * hours)) {
+ status = "text-warning";
+ }
+ return '<span class="' + status + '">' + text + '</span>';
+ },
+
time: function(ms, words) {
if (typeof(words) === 'undefined') words = false;
var seconds = (+ms)/1000;
@@ -199,32 +214,49 @@
return r;
},
- change: function (change) {
- if (change.id.length === 40) {
- change.id = change.id.substr(0, 7);
+ change_header: function(change) {
+ change_id = change.id || 'NA';
+ if (change_id.length === 40) {
+ change_id = change_id.substr(0, 7);
}
- var $html = $('<div />')
- .addClass('panel panel-default zuul-change')
-
- var $change_header = $('<div />').text(change.project);
- $change_header.addClass('panel-heading');
-
+ $change_link = $('<small />');
if (change.url !== null) {
- var $id_span = $('<span />').append(
+ $change_link.append(
$("<a />").attr("href", change.url).text(change.id)
);
}
else {
- var $id_span = $('<span />').text(change.id);
+ $change_link.text(change_id);
}
- $change_header.append($id_span.addClass('zuul-change-id'));
- $html.append($change_header);
+ $left = $('<div />')
+ .addClass('col-xs-8')
+ .html(change.project + '<br />')
+ .append($change_link);
+
+ remaining_time = zuul.format.time(change.remaining_time, true);
+ enqueue_time = zuul.format.enqueue_time(change.enqueue_time);
+ $remaining_time = $('<small />').addClass('time')
+ .attr('title', 'Remaining Time').html(remaining_time);
+ $enqueue_time = $('<small />').addClass('time')
+ .attr('title', 'Elapsed Time').html(enqueue_time);
+
+ $right = $('<div />')
+ .addClass('col-xs-4 text-right')
+ .append($remaining_time, $('<br />'), $enqueue_time);
+
+ $header = $('<div />')
+ .addClass('row')
+ .append($left, $right);
+ return $header;
+ },
+
+ change_list: function(jobs) {
var $list = $('<ul />')
.addClass('list-group');
- $.each(change.jobs, function (i, job) {
+ $.each(jobs, function (i, job) {
var $item = $('<li />')
.addClass('list-group-item')
.addClass('zuul-change-job')
@@ -232,7 +264,18 @@
$list.append($item);
});
- $html.append($list);
+ return $list;
+ },
+
+ change_panel: function (change) {
+ var $header = $('<div />')
+ .addClass('panel-heading')
+ .append(zuul.format.change_header(change));
+
+ var $html = $('<div />')
+ .addClass('panel panel-default zuul-change')
+ .append($header)
+ .append(zuul.format.change_list(change.jobs));
return $html;
},
@@ -270,7 +313,7 @@
);
}
$.each(changes, function (changeNum, change) {
- $html.append(zuul.format.change(change))
+ $html.append(zuul.format.change_panel(change))
});
});
});