Skip to content

Commit fcd6aed

Browse files
committed
Merge branch 'git-commit-on-download'
* git-commit-on-download: add git details to download
2 parents 5febbf3 + 7e063a7 commit fcd6aed

File tree

4 files changed

+82
-5
lines changed

4 files changed

+82
-5
lines changed

_docs/downloads.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ sectionid: downloads
1818
<div id="objects"></div>
1919

2020
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.163.0.min.js"></script>
21-
<script type="text/javascript" src="/js/aws_s3.js"></script>
21+
<script type="text/javascript" src="/js/moment.min.js"></script>
22+
<script type="text/javascript" src="/js/aws_s3.js"></script>

css/main.scss

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,35 @@ img.projects {
145145

146146
h1, h2, h3, h4, h5 {
147147
color: #B9B9B9;
148+
}
149+
150+
div #gitDetails {
151+
font-size: 12px;
152+
text-overflow: ellipsis;
153+
overflow: hidden;
154+
white-space: nowrap;
155+
}
156+
157+
.tooltip {
158+
position: relative;
159+
display: inline-block;
160+
border-bottom: 1px dotted black;
161+
}
162+
163+
.tooltip .tooltiptext {
164+
visibility: hidden;
165+
width: 120px;
166+
background-color: black;
167+
color: #fff;
168+
text-align: center;
169+
border-radius: 6px;
170+
padding: 5px 0;
171+
172+
/* Position the tooltip */
173+
position: absolute;
174+
z-index: 1;
175+
}
176+
177+
.tooltip:hover .tooltiptext {
178+
visibility: visible;
148179
}

js/aws_s3.js

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,62 @@ const bucket = new AWS.S3({params: {Bucket: bucketName}});
99

1010
const urlPrefix="https://s3-us-west-2.amazonaws.com/" + bucketName + '/';
1111

12-
bucket.listObjectsV2(function (err, data) {
12+
const params = {
13+
Prefix: 'download'
14+
};
15+
16+
bucket.listObjectsV2(params, function (err, data) {
1317
if (err) {
1418
document.getElementById('status').innerHTML =
1519
'Could not load objects from S3 error: ' + err;
1620
} else {
1721
document.getElementById('spinner').style.display='none';
1822
document.getElementById('status').innerHTML ='Loaded ' + data.Contents.length + ' items from S3';
19-
20-
for (var i = 0; i < data.Contents.length; i++) {
23+
const objects = document.getElementById('objects');
24+
const list = document.createElement('ul');
25+
objects.appendChild(list);
26+
for (let i = 0; i < data.Contents.length; i++) {
2127
let fileNameWithPath = data.Contents[i].Key;
2228
let fileName = fileNameWithPath.substr(fileNameWithPath.lastIndexOf('/')+1);
23-
document.getElementById('objects').innerHTML += `<li><a href=${urlPrefix}${data.Contents[i].Key}>${fileName}</a></li>`
29+
const listItem = document.createElement("li");
30+
const linkContainer = document.createElement('span');
31+
linkContainer.setAttribute('class', 'col-md-5');
32+
const link = document.createElement("a");
33+
link.setAttribute('href', `${urlPrefix}${data.Contents[i].Key}`);
34+
link.appendChild(document.createTextNode(fileName));
35+
linkContainer.appendChild(link);
36+
listItem.appendChild(linkContainer);
37+
list.appendChild(listItem);
38+
// Read meta data
39+
const xhr = new XMLHttpRequest();
40+
xhr.open('GET', `${urlPrefix}meta/${fileName}.json`, true);
41+
xhr.send();
42+
43+
xhr.onreadystatechange = (e) => {
44+
if(xhr.readyState == 4 && xhr.status == 200){
45+
const response = JSON.parse(xhr.responseText);
46+
console.log("Success: " + response.time);
47+
const t = moment.unix(response.time);
48+
t.utc();
49+
const formatted = t.format("YYYY-MM-DD HH:mm");
50+
const gitText = `${formatted} UTC | ${response.commitMessage} | ${response.sha.substring(0,7)}`;
51+
52+
const gitDetails = document.createElement('span');
53+
gitDetails.setAttribute('id', 'gitDetails');
54+
gitDetails.setAttribute('class', 'col-md-7');
55+
gitDetails.setAttribute('data-toggle', 'tooltip' );
56+
gitDetails.setAttribute('title', gitText);
57+
gitDetails.appendChild(document.createTextNode(gitText));
58+
listItem.appendChild(gitDetails);
59+
}
60+
else if (xhr.readyState == 4 && xhr.status != 200) {
61+
const gitDetails = document.createElement('span');
62+
gitDetails.setAttribute('id', 'gitDetails');
63+
gitDetails.setAttribute('class', 'col-md-7');
64+
gitDetails.appendChild(document.createTextNode(`N/A: ${xhr.status}`));
65+
listItem.appendChild(gitDetails);
66+
}
67+
};
2468
}
2569
}
2670
});

js/moment.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)