6 changed files with 121 additions and 79 deletions
@ -0,0 +1,52 @@ |
|||||||
|
function addDescription(json){ |
||||||
|
var desc = json.description ? json.description : ''; |
||||||
|
if (desc.indexOf('<')<0) desc = desc.replace(/\r?\n|\r/g,'<br/>'); |
||||||
|
document.getElementById('description').innerHTML = desc; |
||||||
|
} |
||||||
|
|
||||||
|
function attachmentList(json){ |
||||||
|
var attachments = document.getElementById('attachments'); |
||||||
|
attachments.innerHTML = ''; |
||||||
|
for (var attachment of json){ |
||||||
|
if (attachment.mime.startsWith('image')){ |
||||||
|
var img = document.createElement('img'); |
||||||
|
img.src = attachment.url; |
||||||
|
attachments.appendChild(img); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
async function handleEventData(response){ |
||||||
|
if (response.ok){ |
||||||
|
var json = await response.json(); |
||||||
|
document.getElementsByTagName('h1')[0].innerHTML = json.title ? json.title : ''; |
||||||
|
document.getElementById('time').innerHTML = json.start + (json.end ? '…'+json.end : ''); |
||||||
|
addDescription(json); |
||||||
|
document.getElementById('tags').innerHTML = "Tags: "+json.tags.join(" "); |
||||||
|
var links = document.getElementById('links'); |
||||||
|
links.innerHTML = ""; |
||||||
|
links.appendChild(linkList(json.links)); |
||||||
|
attachmentList(json.attachments); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function linkList(json){ |
||||||
|
var ul = document.createElement('ul'); |
||||||
|
for (var inner of json) { |
||||||
|
var a = document.createElement('a'); |
||||||
|
a.href = inner.url; |
||||||
|
a.innerHTML = inner.description; |
||||||
|
a.target = '_blank'; |
||||||
|
var li = document.createElement('li') |
||||||
|
li.appendChild(a); |
||||||
|
ul.appendChild(li); |
||||||
|
} |
||||||
|
return ul; |
||||||
|
} |
||||||
|
|
||||||
|
function loadEventData(){ |
||||||
|
const urlParams = new URLSearchParams(window.location.search); |
||||||
|
var id = urlParams.get('id'); |
||||||
|
if (id) fetch('/api/event?id='+id).then(handleEventData); |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue