X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/9ed73579aefba12ff191afc09766108bee783015..d3ed59c2753c2babd5aa9a1c5e0109c644904ba8:/edit/page.js diff --git a/edit/page.js b/edit/page.js index e40b376..3071844 100644 --- a/edit/page.js +++ b/edit/page.js @@ -2,7 +2,7 @@ CKEDITOR.plugins.add('inlinesave', { init: function(editor) { editor.addCommand( 'inlinesave', { exec: function (editor) { - var pagename = window.location.pathname.replace(/\/$/, '/index'); + var pagename = window.location.pathname; var body = editor.getData(); // empty line is equivalent to a paragraph break body = body.replace(/
\s*
/g, '

'); @@ -22,14 +22,24 @@ CKEDITOR.plugins.add('inlinesave', { ajaxpost.onreadystatechange = function () { if (ajaxpost.readyState != 4) return; // not done yet - if (ajaxpost.status != 200) - alert('Foutcode '+ajaxpost.status+' bij opslaan: '+ajaxpost.responseText); - else + if (ajaxpost.status == 200) { editor.resetDirty(); + new CKEDITOR.plugins.notification(editor, { + message: 'Pagina is succesvol opgeslagen', + type: 'success', + }).show(); + } + else { + new CKEDITOR.plugins.notification(editor, { + message: 'Foutcode '+ajaxpost.status+' bij opslaan: '+ajaxpost.responseText, + type: 'warning', + }).show(); + } }; ajaxpost.send(data); }, }); + editor.setKeystroke(CKEDITOR.CTRL + 83 /*S*/, 'inlinesave'); editor.ui.addButton( 'Inlinesave', { command: 'inlinesave', label: editor.lang.save.toolbar, @@ -42,16 +52,30 @@ CKEDITOR.on('dialogDefinition', function (event) { switch (event.data.name) { case 'table': // override initial attribute values - var infoTab = event.data.definition.getContents('info'); - infoTab.get('txtWidth').default = ''; - infoTab.get('txtBorder').default = '0'; - infoTab.get('txtCellSpace').default = ''; - infoTab.get('txtCellPad').default = ''; + var infotab = event.data.definition.getContents('info'); + infotab.remove('txtWidth'); + infotab.remove('txtHeight'); + infotab.remove('txtBorder'); + infotab.remove('txtCellSpace'); + infotab.remove('txtCellPad'); + infotab.remove('cmbAlign'); + + // horizontal repositioning of existing elements + var hbox = { + id: 'hboxDimensions', + type: 'hbox', + children: [ infotab.get('txtCols'), infotab.get('txtRows') ], + }; + infotab.add(hbox, 'selHeaders'); + infotab.remove('txtCols'); + infotab.remove('txtRows'); + break; case 'link': - // remove unneeded widgets from the Link Info tab - var infotab = event.data.definition.getContents('info'); - infotab.remove('linkType'); + // hide unneeded widgets from the Link Info tab + event.data.definition.getContents('info').get('linkType').hidden = true; + let linktarget = event.data.definition.getContents('target').get('linkTargetType'); + linktarget.items = [ linktarget.items[0], linktarget.items[3] ]; // only _blank break; } }); @@ -85,14 +109,22 @@ CKEDITOR.on('instanceCreated', function (event) { config.image2_alignClasses = ['left', 'center', 'right']; config.image2_disableResizer = true; config.stylesSet = [ + { name: 'Klein', element: 'small' }, + { name: 'Zijkant', element: 'span', attributes: { 'class': 'right' } }, + { name: 'Attributie', element: 'em', attributes: { 'class': 'right' } }, + { name: 'Quote', element: 'q' }, + { name: 'Gemarkeerd', element: 'span', styles: { 'background-color': 'Yellow' } }, + + { name: 'Kadertekst', element: 'aside' }, + { name: 'Uitgelijnd', element: 'div', attributes: { 'class': 'right' } }, { name: 'Kolom', element: 'div', attributes: { 'class': 'col' } }, - { name: 'Rechts', element: 'div', attributes: { 'class': 'right' } }, + { name: 'Waarschuwing', element: 'div', attributes: { 'class': 'warn' } }, ]; config.pasteFilter = pastefilter; config.contentsCss = document.styleSheets[0].href; config.toolbar = [ ['Inlinesave', '-', 'Undo', 'Redo'], - ['Format'], + ['Format', 'Styles'], ['Bold', 'Italic', 'Link'], ['BulletedList', 'NumberedList', 'Blockquote'], ['Table', 'CreateDiv'], @@ -103,6 +135,7 @@ CKEDITOR.on('instanceCreated', function (event) { config.toolbarCanCollapse = true; config.floatSpacePreferRight = true; config.floatSpaceDockedOffsetY = 0; + config.title = false; config.startupFocus = true; config.disableObjectResizing = true; @@ -128,8 +161,9 @@ if (pagebody) { editlink.href = ''; editlink.onclick = undefined; pagebody.setAttribute('contenteditable', true); - pagebody.innerHTML = pagebody.innerHTML - .replace(/[^]*?/g, '$1'); + pagebody.querySelectorAll('[data-dyn]').forEach(function (el) { + el.outerHTML = '[[' + el.getAttribute('data-dyn') + ']]'; + }); CKEDITOR.inline(pagebody, { customConfig: '' }); document.body.className = 'edit'; return false;