OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- much of this is stolen from omahaproxy.appspot.com/viewer --> | 2 <!-- much of this is stolen from omahaproxy.appspot.com/viewer --> |
3 <html> | 3 <html> |
4 <head> | 4 <head> |
5 <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> | 5 <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> |
6 </head> | 6 <title>NaCl SDK Manifest Viewer</title> |
| 7 </head> |
7 <style type="text/css" media="screen"> | 8 <style type="text/css" media="screen"> |
8 body { | 9 body { |
9 font-family: monospace; | 10 font-family: monospace; |
10 font-size: 10pt; | 11 font-size: 10pt; |
11 } | 12 } |
12 | 13 |
13 table { | 14 table { |
14 border-collapse: collapse; | 15 border-collapse: collapse; |
15 border-color: rgb(100, 100, 100); | 16 border-color: rgb(100, 100, 100); |
16 border-style: solid; | 17 border-style: solid; |
(...skipping 15 matching lines...) Expand all Loading... |
32 border-width: 0px 0px 2px 0px; | 33 border-width: 0px 0px 2px 0px; |
33 } | 34 } |
34 | 35 |
35 tbody tr:nth-child(odd) { | 36 tbody tr:nth-child(odd) { |
36 background-color: rgb(230, 230, 230); | 37 background-color: rgb(230, 230, 230); |
37 } | 38 } |
38 | 39 |
39 tbody tr:hover { | 40 tbody tr:hover { |
40 background-color: orange; | 41 background-color: orange; |
41 } | 42 } |
| 43 |
| 44 td a { |
| 45 padding: 3px; |
| 46 } |
42 </style> | 47 </style> |
43 <body> | 48 <body> |
| 49 <h1>NaCl SDK Manifest Viewer</h1> |
44 <table> | 50 <table> |
45 <thead id="columns"> | 51 <thead id="columns"> |
46 </thead> | 52 </thead> |
47 <tbody id="rows"> | 53 <tbody id="rows"> |
48 </tbody> | 54 </tbody> |
49 </table> | 55 </table> |
50 <script type="application/javascript"> | 56 <script type="application/javascript"> |
51 function loadJson(url, callback) { | 57 function loadJson(url, callback) { |
52 var xhr = new XMLHttpRequest(); | 58 var xhr = new XMLHttpRequest(); |
53 xhr.open('GET', url, true); | 59 xhr.open('GET', url, true); |
54 xhr.onreadystatechange = function (e) { | 60 xhr.onreadystatechange = function (e) { |
55 if (xhr.readyState == 4) { | 61 if (xhr.readyState == 4) { |
56 if (xhr.status == 200) { | 62 if (xhr.status == 200) { |
57 callback(JSON.parse(xhr.responseText)); | 63 callback(JSON.parse(xhr.responseText)); |
58 } else { | 64 } else { |
59 alert("Failed to load: error " + xhr.status); | 65 alert("Failed to load: error " + xhr.status); |
60 } | 66 } |
(...skipping 11 matching lines...) Expand all Loading... |
72 function display(data) { | 78 function display(data) { |
73 data = data.bundles; | 79 data = data.bundles; |
74 | 80 |
75 var columnsElm = document.getElementById('columns'); | 81 var columnsElm = document.getElementById('columns'); |
76 var rowsElm = document.getElementById('rows'); | 82 var rowsElm = document.getElementById('rows'); |
77 removeAllChildren(columnsElm); | 83 removeAllChildren(columnsElm); |
78 removeAllChildren(rowsElm); | 84 removeAllChildren(rowsElm); |
79 | 85 |
80 // Create the column headers. | 86 // Create the column headers. |
81 var tr = document.createElement('tr'); | 87 var tr = document.createElement('tr'); |
82 var columns = ['name', 'version', 'revision']; | 88 var columns = ['name', 'version', 'revision', 'win', 'mac', 'linux']; |
83 for (var i = 0; i < columns.length; ++i) { | 89 for (var i = 0; i < columns.length; ++i) { |
84 var td = document.createElement('td'); | 90 var td = document.createElement('td'); |
85 var text = document.createTextNode(columns[i]); | 91 var text = document.createTextNode(columns[i]); |
86 td.appendChild(text); | 92 td.appendChild(text); |
87 tr.appendChild(td); | 93 tr.appendChild(td); |
88 } | 94 } |
89 columnsElm.appendChild(tr); | 95 columnsElm.appendChild(tr); |
90 | 96 |
| 97 var platforms = ['win', 'mac', 'linux']; |
| 98 |
91 for (var i = 0; i < data.length; ++i) { | 99 for (var i = 0; i < data.length; ++i) { |
92 var tr = document.createElement('tr'); | 100 var tr = document.createElement('tr'); |
93 for (var j = 0; j < columns.length; ++j) { | 101 for (var j = 0; j < columns.length; ++j) { |
94 var td = document.createElement('td'); | 102 var td = document.createElement('td'); |
95 var text = document.createTextNode(data[i][columns[j]]); | 103 var node; |
96 td.appendChild(text); | 104 if (platforms.indexOf(columns[j]) != -1) { |
| 105 var archives = data[i].archives; |
| 106 for (var k = 0; k < archives.length; ++k) { |
| 107 if (columns[j] == archives[k].host_os) { |
| 108 node = document.createElement('a'); |
| 109 node.setAttribute('href', archives[k].url); |
| 110 node.appendChild(document.createTextNode(columns[j])); |
| 111 td.appendChild(node); |
| 112 } |
| 113 } |
| 114 } else { |
| 115 node = document.createTextNode(data[i][columns[j]]); |
| 116 td.appendChild(node); |
| 117 } |
97 tr.appendChild(td); | 118 tr.appendChild(td); |
98 } | 119 } |
99 rowsElm.appendChild(tr); | 120 rowsElm.appendChild(tr); |
100 } | 121 } |
101 } | 122 } |
102 | 123 |
103 loadJson('naclsdk_manifest2.json', display); | 124 loadJson('naclsdk_manifest2.json', display); |
104 </script> | 125 </script> |
105 </body> | 126 </body> |
106 </html> | 127 </html> |
OLD | NEW |