diff --git a/etc/status/public_html/app.js b/etc/status/public_html/app.js index f8e6af282e..9586b4d8ae 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 '' + text + ''; + }, + 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 = $('
') - .addClass('panel panel-default zuul-change') - - var $change_header = $('
').text(change.project); - $change_header.addClass('panel-heading'); - + $change_link = $(''); if (change.url !== null) { - var $id_span = $('').append( + $change_link.append( $("").attr("href", change.url).text(change.id) ); } else { - var $id_span = $('').text(change.id); + $change_link.text(change_id); } - $change_header.append($id_span.addClass('zuul-change-id')); - $html.append($change_header); + $left = $('
') + .addClass('col-xs-8') + .html(change.project + '
') + .append($change_link); + + remaining_time = zuul.format.time(change.remaining_time, true); + enqueue_time = zuul.format.enqueue_time(change.enqueue_time); + $remaining_time = $('').addClass('time') + .attr('title', 'Remaining Time').html(remaining_time); + $enqueue_time = $('').addClass('time') + .attr('title', 'Elapsed Time').html(enqueue_time); + + $right = $('
') + .addClass('col-xs-4 text-right') + .append($remaining_time, $('
'), $enqueue_time); + + $header = $('
') + .addClass('row') + .append($left, $right); + return $header; + }, + + change_list: function(jobs) { var $list = $('
    ') .addClass('list-group'); - $.each(change.jobs, function (i, job) { + $.each(jobs, function (i, job) { var $item = $('
  • ') .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 = $('
    ') + .addClass('panel-heading') + .append(zuul.format.change_header(change)); + + var $html = $('
    ') + .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)) }); }); });