edit: toggle editor dynamically
authorMischa POSLAWSKY <perl@shiar.org>
Wed, 13 Sep 2017 02:00:59 +0000 (04:00 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 18 Sep 2017 18:21:28 +0000 (20:21 +0200)
Replace predetermined ?edit mode by javascript activation link in header.
Same results without page reload.

edit.js
foot.inc.php

diff --git a/edit.js b/edit.js
index 6f9211eea2f18f8863436634ddf18d35cb172516..0db437427c0305dc980dc1697d5e290fabf58aa4 100644 (file)
--- a/edit.js
+++ b/edit.js
@@ -72,8 +72,30 @@ CKEDITOR.on('instanceCreated', function (event) {
                });
        });
 
-var pagebody = document.getElementsByClassName('article')[0];
-pagebody.setAttribute('contenteditable', 'true');
+       CKEDITOR.disableAutoInline = true;
 
-document.body.className = 'edit';
+// add edit link to menu
+var pagebody = document.getElementsByClassName('article')[0];
+if (pagebody) {
+       var editlink = document.createElement('a');
+       editlink.style.cursor = 'pointer';
+       editlink.appendChild(document.createTextNode('Wijzig'));
+       editlink.onclick = function (e) {
+               var toggled = editlink.style.fontWeight;
+               editlink.style.fontWeight = toggled ? '' : 'bold';
+               pagebody.setAttribute('contenteditable', !toggled);
+               if (toggled) {
+                       for (name in CKEDITOR.instances) {
+                               CKEDITOR.instances[name].destroy()
+                       }
+               }
+               else {
+                       CKEDITOR.inline(pagebody);
+                       pagebody.focus();
+               }
+               document.body.className = toggled ? '' : 'edit';
+               return false;
+       };
+       document.querySelector('header ul').appendChild(editlink);
+}
 
index e2ac444285d6b3819a074a99f9682800f222ca4a..b3d6e6a99c1c5aa41d950cc6227ec57ae34c0a5b 100755 (executable)
@@ -2,20 +2,14 @@
 <?php
 define('N', "\n");
 
-global $Page, $User, $Edit;
+global $User;
 
 if ($User['admin']) {
-       if ($Edit) {
                echo '<script src="/ckeditor/ckeditor.js"></script>'.N;
                echo '<script src="/edit.js"></script>'.N;
-       }
 
        echo '<p class="footer">'.N;
-       echo "Beheer toegestaan voor {$User['name']}:".N;
-       printf('<a href="?%s">%s</a>'.N,
-               $Edit ? '' : 'edit',
-               $Edit ? 'lezen' : ($notfound ? 'aanmaken' : 'aanpassen')
-       );
+       echo "Beheer toegestaan voor {$User['name']}.".N;
        echo '</p>'.N;
 }