X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/f74276ad4a38479c8a5f7ccf065ab576cf2d192d..bd29158976da14f04451d58a8713674934c78379:/nieuws/edit.js diff --git a/nieuws/edit.js b/nieuws/edit.js index 13ca8da..947de7b 100644 --- a/nieuws/edit.js +++ b/nieuws/edit.js @@ -1,18 +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); - var input = prompt('Artikelnaam (plaatsingsdatum en paginatitel)', today + ' '); - if (!input) return false; - if (!/^\d{4}-\d\d-\d\d[- :]+\S/.test(input)) { - alert('Artikelnaam moet beginnen met een datum in de vorm jaar-mm-dd.'); - return false; +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 url = input.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim() - .replace(/ /g, '-').replace('-', '/'); - var title = encodeURIComponent(input.substr(11).trim()); - window.location = '/nieuws/'+url+'?edit='+title+'#edit'; - return false; -}; -document.getElementById('news').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}`); + }); + }); + }); + }); +});