Эх сурвалжийг харах

HUE-4089 [editor] Keyboard shortcut for a new query and save query

Enrico Berti 9 жил өмнө
parent
commit
fc1a889

+ 16 - 0
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -2941,6 +2941,22 @@
         }
       });
 
+      editor.commands.addCommand({
+        name: "new",
+        bindKey: {win: "Ctrl-e", mac: "Command-e|Ctrl-e"},
+        exec: function () {
+          huePubSub.publish('editor.create.new');
+        }
+      });
+
+      editor.commands.addCommand({
+        name: "save",
+        bindKey: {win: "Ctrl-s", mac: "Command-s|Ctrl-s"},
+        exec: function () {
+          huePubSub.publish('editor.save');
+        }
+      });
+
       editor.commands.addCommand({
         name: "format",
         bindKey: {win: "Ctrl-i", mac: "Command-i|Ctrl-i"},

+ 26 - 6
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -2984,26 +2984,46 @@ ${ hueIcons.symbols() }
 
       $(".preview-sample").css("right", (10 + hueUtils.scrollbarWidth()) + "px");
 
+      function saveKeyHandler() {
+        if (viewModel.canSave()) {
+          viewModel.saveNotebook();
+        }
+        else {
+          $('#saveAsModal').modal('show');
+        }
+      }
+
       $(window).bind("keydown", "ctrl+s alt+s meta+s", function (e) {
         e.preventDefault();
-        viewModel.saveNotebook();
+        saveKeyHandler();
         return false;
       });
 
+      huePubSub.subscribe('editor.save', saveKeyHandler);
+
       $(document).bind('keyup', function (e) {
         if (e.keyCode == 191 && !$(e.target).is('input') && !$(e.target).is('textarea')) {
           $('#helpModal').modal('show');
         }
       });
 
-      if (!viewModel.editorMode) {
-        $(window).bind("keydown", "ctrl+n alt+n meta+n", function (e) {
-          e.preventDefault();
+      function newKeyHandler() {
+        if (!viewModel.editorMode) {
           viewModel.selectedNotebook().newSnippet();
-          return false;
-        });
+        }
+        else {
+          viewModel.newNotebook(true);
+        }
       }
 
+      $(window).bind("keydown", "ctrl+e alt+e meta+e", function (e) {
+        e.preventDefault();
+        newKeyHandler();
+        return false;
+      });
+
+      huePubSub.subscribe('editor.create.new', newKeyHandler);
+
       var initialResizePosition = 100;
 
       function getDraggableOptions (minY) {