48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
// Move up when a page is absent
|
|
if (document.head.querySelector('meta[content="/404.html"]'))
|
|
document.location.assign('..')
|
|
|
|
// Add the proper absolute url to invitation link
|
|
document.querySelectorAll('aside#actions #invitation')
|
|
.forEach(elt => elt.href += document.location.href)
|
|
|
|
// Generate QR Code to ease URL transmission
|
|
document.querySelectorAll('aside#actions #barcode')
|
|
.forEach(elt => new QRCode(elt, document.location.href))
|
|
|
|
document.querySelectorAll('aside#actions #create')
|
|
.forEach(elt => elt.onclick = () => {
|
|
const url = `${topSection}/${uuid()}`
|
|
|
|
fetch(`/edit/${url}.create`, { method: 'PUT', body: topSection })
|
|
.then(() => sleep(1))
|
|
.then(() => window.location.assign('/' + url))
|
|
.catch(error => console.error(`Error creating #{topSection}`, error))
|
|
})
|
|
|
|
document.querySelectorAll('aside#actions #delete')
|
|
.forEach(elt => elt.onclick = () => {
|
|
if (confirm(elt.dataset.confirm))
|
|
fetch(document.body.dataset.editUrl.replace('/_index', '.delete'), { method: 'PUT' })
|
|
.then(() => sleep(1))
|
|
.then(() => window.location.assign('/' + topSection))
|
|
.catch(error => console.error(`Error deleting #{topSection}`, error))
|
|
})
|
|
|
|
|
|
document.querySelectorAll('aside#actions input#file')
|
|
.forEach(elt => elt.onchange = () =>
|
|
[...elt.files].forEach(file =>
|
|
fetch(document.body.dataset.editUrl.replace('_index', file.name), { method: 'PUT', body: file })
|
|
.then(() => sleep(1))
|
|
.then(() => window.location.reload())
|
|
.catch(error => console.error(`Error uploading ${elt.files[0].name}`, error))))
|
|
|
|
document.querySelectorAll('.delete_image')
|
|
.forEach(elt => elt.onclick = () => {
|
|
if (confirm(elt.dataset.confirm))
|
|
fetch('/edit/' + elt.dataset.target, { method: 'DELETE' })
|
|
.then(() => elt.parentNode.remove())
|
|
.catch(error => console.error(error))
|
|
})
|