-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 nav = document.querySelector('#news .nav');
+ if (nav) {
+ var editlink = document.createElement('a');
+ 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;
+ };
+ nav.appendChild(document.createTextNode(' '));
+ nav.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}`);
+ });
+ });
+ });
+ });
+});