blob: d326a5ba2878e0d26c2ea118bc4082f129ba5d44 [file] [log] [blame]
{% extends "layout.html" %}
{% block header -%}
{{ super() }}
<hr/>
<script>
function autoLink(className) {
var comments = document.querySelectorAll(className);
for(var i = 0; i < comments.length; i++) {
comments[i].innerHTML = comments[i].innerHTML.replace(/http:\/\/[^ \t\n<]*/g, '<a href="$&">$&</a>');
}
}
window.onload = function() {
autoLink('.DevComment');
}
/**
* A simple HTML table string.
* @param {String} attributes A set of HTML attributes for the table.
* @param {String} contents The contents.
* @returns {!String}
*/
function table(attributes, contents) {
return '<table ' + attributes + '>' + contents + '</table>\n';
};
/**
* A simple HTML table row string.
* @param {String} attributes A set of HTML attributes for the table row.
* @param {String} contents The contents.
* @returns {!String}
*/
function tr(contents) {
return '<tr>' + contents + '</tr>\n';
};
/**
* A simple HTML table cell string.
* @param {String} attributes A set of HTML attributes for the table cell.
* @param {String} contents The contents.
* @returns {!String}
*/
function td(attributes, contents) {
return '<td ' + attributes + '>' + contents + '</td>';
};
/**
* A simple HTML anchor string.
* @param {String} url The value for the href.
* @param {String} attributes A set of HTML attributes for the table.
* @param {String} contents The contents.
* @returns {!String}
*/
function a(url, contents, attributes) {
return '<a href="' + url + '" ' + attributes + '>' + contents + '</a>';
};
/**
* A simple HTML iframe string.
* @param {String} attributes A set of HTML attributes for the table.
* @param {String} url The source of the iframe.
* @returns {!String} the iframe or an empty string if noframe is specified.
*/
function iFrame(attributes, url) {
if (window.location.href.search('noframe') == -1) {
return '<iframe ' + attributes + ' src="' + url + '"></iframe>';
}
return ''
};
</script>
<div class="Announcement">
<iframe width="100%" height="44" frameborder="0" scrolling="no" src="https://infra-status.appspot.com/current"></iframe>
<center style="padding-left: 7px; padding-right: 7px">
<table width="100%" valign="top" bgcolor="#efefef" style="-webkit-border-bottom-left-radius: 24px; -webkit-border-bottom-right-radius: 24px; -moz-border-bottom-right-radius: 24px; -moz-border-bottom-right-radius: 24px; box-shadow: 2px 2px 6px rgba(0,0,0,0.6); -moz-box-shadow: 2px 2px 6px rgba(0,0,0,0.6); -webkit-box-shadow: 2px 2px 6px rgba(0,0,0,0.6);">
<tr>
<td width="2%"> </td>
<td width="35%">
<table> <tr> <td>
<table valign="top" width="100%">
<tr>
<td style="text-align: right;">
<b>Masters:</b>
</td>
<td>
<nobr><a href="https://build.chromium.org/p/chromium.infra/">infra</a></nobr>
|
<nobr><a href="https://build.chromium.org/p/chromium.infra.cron/">infra.cron</a></nobr>
|
<nobr><a href="https://build.chromium.org/p/tryserver.infra/">try</a></nobr>
</td>
</tr>
<tr>
<td style="text-align: right;">
<b>Controls:</b>
</td>
<td>
<a href="https://infra-status.appspot.com/">tree status</a>
</td>
</tr>
<tr>
<td style="text-align: right;">
<b>Development:</b>
</td>
<td>
<a href="https://chromium.googlesource.com/infra/all">source</a> |
<a href="https://code.google.com/p/chromium/issues/list?q=label:Infra">bugs</a>
</td>
</tr>
<tr>
<td style="text-align: right;">
<b>Gardeners:</b>
</td>
<td>
TBD
</td>
</tr>
<tr>
<td style="text-align: right;">
<b>Trooper:</b>
</td>
<td>
<script src='https://chromium-build.appspot.com/p/chromium/trooper.js'></script>
</td>
</tr>
<tr>
<td style="text-align: right;">
<b>Navigate:</b>
</td>
<td>
<a href="http://dev.chromium.org/developers/testing/chromium-build-infrastructure/tour-of-the-chromium-buildbot">about</a> |
<a href="./waterfall/help">customize</a> |
<a href="./waterfall?show_events=true&failures_only=true">failures</a> |
<a href="./waterfall">waterfall</a> |
<a href="./console">console</a>
</td>
</tr>
</table>
</td></tr></table>
</td>
<td width="2%"> </td>
<td width="1" bgcolor="#CCCCCC">
</td>
<td width="2%"> </td>
<td width="57%"> <div>
<table width="100%" id="dashboard">
<script language="javascript">
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState != 4) return;
if (request.status != 200) return;
var data = eval('(' + request.responseText + ')');
// Add dashboard.
var flavors = {};
for (var i in data.builders) {
var category = data.builders[i].category.split('|')[0];
if (!(category in flavors)) flavors[category] = [];
flavors[category].push('builder=' + i);
}
for (var category in flavors) {
flavors[category].push('titles=on');
}
var bar = "./horizontal_one_box_per_builder"
var waterfall = "./waterfall"
function GetUrl(type, content) {
return type + "?" + content + "&reload=30";
}
function DisplayBar(content, name) {
var dash = document.getElementById('dashboard');
dash.innerHTML += ("<tr><td><a href='" + GetUrl(waterfall, content) + "'>" + name + "</a></td><td width='99%'><iframe width='100%' height='20' frameborder='0' scrolling='no' src='" + GetUrl(bar, content) + "'></iframe></td></tr>\n");
}
var order = [];
for (var i in flavors) {
order.push(i);
}
order.sort();
for (var i = 0; i < order.length; i++) {
DisplayBar(flavors[order[i]].join('&'),
order[i].replace(/^[0-9]+/, ''));
}
};
request.open('GET', './json', true);
request.send(null);
</script>
</table>
</div> </td>
<td width="2%"> </td>
</tr>
</table>
</center>
</div>
{% endblock header %}
{% block footer %}
{{ super() }}
{# <p>Debug info: {{ debuginfo }}</p> #}
{% endblock %}