]> BookStack Code Mirror - bookstack/commitdiff
Added (Ctrl+s) draft force save
authorDan Brown <redacted>
Sat, 28 May 2016 12:51:07 +0000 (13:51 +0100)
committerDan Brown <redacted>
Sat, 28 May 2016 12:51:07 +0000 (13:51 +0100)
resources/assets/js/controllers.js
resources/assets/js/directives.js

index 8f434bf7e63191d23fc4807531eed1e5f3927376..406fd7e77ee30b639cb5426a8efeca8450d452be 100644 (file)
@@ -379,6 +379,15 @@ module.exports = function (ngApp, events) {
             saveDraft();
         };
 
+        // Listen to shortcuts coming via events
+        $scope.$on('editor-keydown', (event, data) => {
+            // Save shortcut (ctrl+s)
+            if (data.keyCode == 83 && (navigator.platform.match("Mac") ? data.metaKey : data.ctrlKey)) {
+                data.preventDefault();
+                saveDraft();
+            }
+        });
+
         /**
          * Discard the current draft and grab the current page
          * content from the system via an AJAX request.
index f5cf7569b2d2b521e7d75f80d1a3984ace0a8eac..d41fdd83bce030e162862bcb3164886c56e2763d 100644 (file)
@@ -185,6 +185,10 @@ module.exports = function (ngApp, events) {
                         scope.mceChange(content);
                     });
 
+                    editor.on('keydown', (event) => {
+                        scope.$emit('editor-keydown', event);
+                    });
+
                     editor.on('init', (e) => {
                         scope.mceModel = editor.getContent();
                     });
@@ -305,8 +309,9 @@ module.exports = function (ngApp, events) {
                     lastScroll = now;
                 });
 
-                // Insert image shortcut
+                // Editor key-presses
                 input.keydown(event => {
+                    // Insert image shortcut
                     if (event.which === 73 && event.ctrlKey && event.shiftKey) {
                         event.preventDefault();
                         var caretPos = input[0].selectionStart;
@@ -316,7 +321,10 @@ module.exports = function (ngApp, events) {
                         input.focus();
                         input[0].selectionStart = caretPos + ("![](".length);
                         input[0].selectionEnd = caretPos + ('![](http://'.length);
+                        return;
                     }
+                    // Pass key presses to controller via event
+                    scope.$emit('editor-keydown', event);
                 });
 
                 // Insert image from image manager