6d7ebc6318
Change-Id: Ibd0aa9a14f533771986cc1d43a712716457d424c
171 lines
4.3 KiB
HTML
171 lines
4.3 KiB
HTML
<html>
|
|
<head>
|
|
<title>Gerrit Code Review - Releases</title>
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
|
|
<style>
|
|
#diffy_logo {
|
|
float: left;
|
|
width: 75px;
|
|
height: 70px;
|
|
margin-right: 20px;
|
|
}
|
|
#download_container table {
|
|
border-spacing: 0;
|
|
}
|
|
#download_container td {
|
|
padding-right: 5px;
|
|
}
|
|
.latest-release {
|
|
background-color: lightgreen;
|
|
}
|
|
.rc {
|
|
padding-left: 1em;
|
|
font-style: italic;
|
|
}
|
|
.size {
|
|
text-align: right;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<h1>Gerrit Code Review - Releases</h1>
|
|
<a href="http://code.google.com/p/gerrit">
|
|
<img id="diffy_logo" src="https://gerrit-review.googlesource.com/static/diffy1.cache.png">
|
|
</a>
|
|
|
|
<div id='download_container'>
|
|
</div>
|
|
|
|
<script>
|
|
$.getJSON(
|
|
'https://www.googleapis.com/storage/v1/b/gerrit-releases/o?projection=noAcl&fields=items(name%2Csize)&callback=?',
|
|
function(data) {
|
|
var doc = document;
|
|
var frg = doc.createDocumentFragment();
|
|
var rx = /^gerrit(?:-full)?-([0-9.]+(?:-rc[0-9]+)?)[.]war/;
|
|
var dl = 'https://www.gerritcodereview.com/download/';
|
|
var docs = 'https://gerrit-documentation.storage.googleapis.com/';
|
|
var src = 'https://gerrit.googlesource.com/gerrit/+/'
|
|
|
|
var items = data.items.filter(function(i) {
|
|
return i.name.indexOf('gerrit-snapshot-') != 0;
|
|
});
|
|
|
|
|
|
items.sort(function(a,b) {
|
|
var av = rx.exec(a.name);
|
|
var bv = rx.exec(b.name);
|
|
if (!av || !bv) {
|
|
return a.name > b.name ? 1 : -1;
|
|
}
|
|
|
|
var an = av[1].replace('-rc', '.rc').split('.')
|
|
var bn = bv[1].replace('-rc', '.rc').split('.')
|
|
while (an.length < bn.length) an.push('0');
|
|
while (an.length > bn.length) bn.push('0');
|
|
for (var i = 0; i < an.length; i++) {
|
|
var ai = an[i].indexOf('rc') == 0
|
|
? parseInt(an[i].substring(2))
|
|
: 1000 + parseInt(an[i]);
|
|
|
|
var bi = bn[i].indexOf('rc') == 0
|
|
? parseInt(bn[i].substring(2))
|
|
: 1000 + parseInt(bn[i]);
|
|
|
|
if (ai != bi) {
|
|
return ai > bi ? -1 : 1;
|
|
}
|
|
}
|
|
return 0;
|
|
});
|
|
|
|
var latest = false;
|
|
for (var i = 0; i < items.length; i++) {
|
|
var f = items[i];
|
|
var v = rx.exec(f.name);
|
|
|
|
if ('index.html' == f.name) {
|
|
continue;
|
|
}
|
|
|
|
var tr = doc.createElement('tr');
|
|
var td = doc.createElement('td');
|
|
var a = doc.createElement('a');
|
|
a.href = dl + f.name;
|
|
if (v) {
|
|
a.appendChild(doc.createTextNode('Gerrit ' + v[1]));
|
|
} else {
|
|
a.appendChild(doc.createTextNode(f.name));
|
|
}
|
|
if (f.name.indexOf('-rc') > 0) {
|
|
td.className = 'rc';
|
|
} else if (!latest) {
|
|
latest = true;
|
|
tr.className='latest-release';
|
|
}
|
|
td.appendChild(a);
|
|
tr.appendChild(td);
|
|
|
|
td = doc.createElement('td');
|
|
td.className = 'size';
|
|
if (f.size/(1024*1024) < 1) {
|
|
sizeText = Math.round(f.size/1024*10)/10 + ' KiB';
|
|
} else {
|
|
sizeText = Math.round(f.size/(1024*1024)*10)/10 + ' MiB';
|
|
}
|
|
td.appendChild(doc.createTextNode(sizeText));
|
|
tr.appendChild(td);
|
|
|
|
td_rel = doc.createElement('td');
|
|
td_doc = doc.createElement('td');
|
|
if (v && f.name.indexOf('-rc') < 0) {
|
|
// Release notes link
|
|
a = doc.createElement('a');
|
|
a.href = docs + 'ReleaseNotes/ReleaseNotes-' + v[1] + '.html';
|
|
a.appendChild(doc.createTextNode('Release Notes'));
|
|
td_rel.appendChild(a);
|
|
|
|
// Documentation link
|
|
a = doc.createElement('a');
|
|
a.href = docs + 'Documentation/' + v[1] + '/index.html';
|
|
a.appendChild(doc.createTextNode('Documentation'));
|
|
td_doc.appendChild(a);
|
|
}
|
|
tr.appendChild(td_rel);
|
|
tr.appendChild(td_doc);
|
|
|
|
td = doc.createElement('td');
|
|
if (v) {
|
|
a = doc.createElement('a');
|
|
a.href = src + 'v' + v[1];
|
|
a.appendChild(doc.createTextNode('src'));
|
|
td.appendChild(a);
|
|
}
|
|
tr.appendChild(td);
|
|
|
|
frg.appendChild(tr);
|
|
}
|
|
|
|
var tr = doc.createElement('tr');
|
|
var th = doc.createElement('th');
|
|
th.appendChild(doc.createTextNode('File'));
|
|
tr.appendChild(th);
|
|
|
|
th = doc.createElement('th');
|
|
th.appendChild(doc.createTextNode('Size'));
|
|
tr.appendChild(th);
|
|
|
|
tr.appendChild(doc.createElement('th'));
|
|
tr.appendChild(doc.createElement('th'));
|
|
|
|
var table = doc.createElement('table');
|
|
table.appendChild(tr);
|
|
table.appendChild(frg);
|
|
doc.getElementById('download_container').appendChild(table);
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|