edit/page: ignore missing edit target
[minimedit.git] / edit / page.js
index 7d20c655f60afe26fd928acfe1d316bf1f8f90bf..34abe36c0e03dcf59f396f84cb6948fac49f036a 100644 (file)
@@ -57,7 +57,7 @@ CKEDITOR.plugins.add('inlinesave', {
                                ajaxpost.send(data);
                        },
                });
-               editor.setKeystroke(CKEDITOR.CTRL + 83 /*S*/, 'inlinesave');
+               editor.setKeystroke(CKEDITOR.CTRL + 'S'.charCodeAt(0), 'inlinesave');
                editor.ui.addButton( 'Inlinesave', {
                        command: 'inlinesave',
                        label: editor.lang.save.toolbar,
@@ -119,11 +119,20 @@ CKEDITOR.on('instanceCreated', function (event) {
                var config = editor.config;
                config.language = 'nl';
                config.extraPlugins = 'inlinesave,placeholder,image2,uploadimage';
-               config.allowedContent = true;
+               config.removePlugins = 'image,exportpdf'; // conflicts with imag2
+               config.allowedContent = {
+                       $1: {
+                               elements: CKEDITOR.dtd,
+                               attributes: true,
+                               styles: true,
+                               classes: true,
+                       },
+               };
+               config.disallowedContent = 'img[width,height]';
                config.entities = false; // keep unicode
-               config.filebrowserImageUploadUrl = '/edit/page?output=ckescript';
-               config.uploadUrl = '/edit/page?output=ckjson';
+               config.filebrowserImageUploadUrl = '/edit/page?output=ckjson';
                config.image2_alignClasses = ['left', 'center', 'right'];
+               config.image2_prefillDimensions = false;
                config.image2_disableResizer = true;
                config.stylesSet = [
                        { name: 'Paginakop', element: 'h2' },
@@ -146,7 +155,7 @@ CKEDITOR.on('instanceCreated', function (event) {
                        { name: 'Uitgelogd', element: 'span', attributes: { 'class': 'logout' } },
                ];
                config.pasteFilter = pastefilter;
-               config.contentsCss = document.styleSheets[0].href;
+               config.contentsCss = [...document.styleSheets].map(e => e.href).filter(Boolean);
                config.toolbar = [
                        ['Inlinesave', '-', 'Undo', 'Redo'],
                        ['Styles', 'Bold', 'Italic', 'Link'],
@@ -206,8 +215,11 @@ if (pagebody) {
 
 }
 
+var ckesrc = document.currentScript.getAttribute('data-ckesrc');
 document.addEventListener('DOMContentLoaded', function (e) {
-       pagebody = editorcontents().cloneNode(true);
+       pagebody = editorcontents();
+       if (!pagebody) return;
+       pagebody = pagebody.cloneNode(true);
        var editorinc = document.createElement('script');
        editorinc.addEventListener('load', editorsetup);
        editorinc.src = ckesrc;