blob: 49574b40060fa5b87abc07bd20b9a8aa4b85da94 [file] [log] [blame]
<!DOCTYPE html>
<!-- much of this is stolen from omahaproxy.appspot.com/viewer -->
<html>
<head>
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<title>NaCl SDK Manifest Viewer</title>
</head>
<style type="text/css" media="screen">
body {
font-family: monospace;
font-size: 10pt;
}
table {
border-collapse: collapse;
border-color: rgb(100, 100, 100);
border-style: solid;
border-width: 1px 0px 1px 0px;
}
table td {
padding: 3px;
border-color: rgb(100, 100, 100);
border-style: solid;
border-width: 0px 1px 0px 1px;
}
thead {
background-color: lightblue;
font-weight: bold;
border-style: solid;
border-color: rgb(100, 100, 100);
border-width: 0px 0px 2px 0px;
text-align: center;
}
tbody tr:nth-child(odd) {
background-color: rgb(230, 230, 230);
}
tbody tr:hover {
background-color: orange;
}
td a {
padding: 3px;
}
</style>
<body>
<h1>NaCl SDK Manifest Viewer</h1>
<table>
<thead id="columns">
</thead>
<tbody id="rows">
</tbody>
</table>
<script type="application/javascript">
function loadJson(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function (e) {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
callback(JSON.parse(xhr.responseText));
} else {
alert("Failed to load: error " + xhr.status);
}
}
}
xhr.send(null);
}
function removeAllChildren(elm) {
while (elm.childNodes.length) {
elm.removeChild(elm.firstChild);
}
}
function display(data) {
data = data.bundles;
var columnsElm = document.getElementById('columns');
var rowsElm = document.getElementById('rows');
removeAllChildren(columnsElm);
removeAllChildren(rowsElm);
// Create the column headers.
var tr = document.createElement('tr');
var columns = [
'name', 'version', 'revision', 'win', 'mac', 'linux', 'all'
];
for (var i = 0; i < columns.length; ++i) {
var td = document.createElement('td');
var text = document.createTextNode(columns[i]);
td.appendChild(text);
tr.appendChild(td);
}
columnsElm.appendChild(tr);
var platforms = ['win', 'mac', 'linux', 'all'];
for (var i = 0; i < data.length; ++i) {
var tr = document.createElement('tr');
for (var j = 0; j < columns.length; ++j) {
var td = document.createElement('td');
var node;
if (platforms.indexOf(columns[j]) != -1) {
var archives = data[i].archives;
for (var k = 0; k < archives.length; ++k) {
if (columns[j] == archives[k].host_os) {
var url = archives[k].url;
var lastSlash = url.lastIndexOf('/');
var nextDot = url.indexOf('.', lastSlash);
name = url.substr(lastSlash + 1, nextDot - lastSlash - 1);
node = document.createElement('a');
node.setAttribute('href', url);
node.appendChild(document.createTextNode(name));
td.appendChild(node);
}
}
} else {
node = document.createTextNode(data[i][columns[j]]);
td.appendChild(node);
}
tr.appendChild(td);
}
rowsElm.appendChild(tr);
}
}
loadJson('naclsdk_manifest2.json', display);
</script>
</body>
</html>