X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/b95195ed4540a07ac0f31c363101698ada841d67..bd29158976da14f04451d58a8713674934c78379:/nieuws/edit.js diff --git a/nieuws/edit.js b/nieuws/edit.js index 86b0b4c..947de7b 100644 --- a/nieuws/edit.js +++ b/nieuws/edit.js @@ -1,14 +1,48 @@ -var editlink = document.createElement('a'); -editlink.className = 'nav'; -editlink.appendChild(document.createTextNode('Nieuw artikel')); -editlink.onclick = function () { - var today = new Date().toJSON().slice(0, 10).split('-'); - var input = prompt('Paginatitel', ''); - if (!input) return false; - var url = today[0] + '/' + today[1] + '-' + today[2] + '-' + - input.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim(); - var title = encodeURIComponent(input.trim()); - window.location = '/nieuws/'+url+'?edit='+title+'#edit'; - return false; -}; -document.getElementById('news').appendChild(editlink); +document.addEventListener('DOMContentLoaded', () => { + var overview = document.getElementById('news'); + if (overview) { + var editlink = document.createElement('a'); + editlink.className = 'nav'; + editlink.appendChild(document.createTextNode('Nieuw artikel')); + editlink.onclick = function () { + var today = new Date().toJSON().slice(0, 10).split('-'); + var input = prompt('Paginalink (beknopte titel)', ''); + if (!input) return false; + var url = today[0] + '/' + today[1] + '-' + today[2] + '-' + + input.toLowerCase().replace(/[^a-z0-9]+/g, '-').trim(); + var title = encodeURIComponent(input.trim()); + window.location = window.location.pathname+'/'+url+'?edit='+title+'#edit'; + return false; + }; + overview.appendChild(editlink); + } + + var editlink = document.querySelector('a[href="#edit"]'); + if (!editlink) return; + editlink.addEventListener('click', () => { + document.querySelectorAll('.tags input').forEach(tagoption => { + tagoption.removeAttribute('disabled'); + tagoption.addEventListener('change', () => { + let editpost = '/edit/nieuws/tag' + window.location.pathname; + let params = new URLSearchParams; + params.append('tag', tagoption.value); + params.append('value', tagoption.checked ? 1 : 0); + fetch(editpost, { + method: 'POST', + body: params, + credentials: 'same-origin', + }) + .then(res => { + if (res.status != 200) { + return res.text().then(body => { + throw `foutcode ${res.status}: ${body}`; + }); + } + }) + .catch(error => { + alert(`Tag aanpassen mislukt: ${error}`); + }); + }); + }); + }); +});