Browse Source

HUE-5650 [responsive] The functions panel should show the functions of the active snippet type

Johan Ahlen 9 years ago
parent
commit
9368922697

+ 14 - 0
desktop/core/src/desktop/templates/assist.mako

@@ -2146,6 +2146,20 @@ from notebook.conf import ENABLE_QUERY_BUILDER
         });
 
         self.activeType(self.availableTypes()[0]);
+
+        huePubSub.subscribe('active.snippet.type', function (type) {
+          self.availableTypes().every(function (availableType) {
+            if (availableType.toLowerCase() === type) {
+              if (self.activeType() !== availableType) {
+                self.activeType(availableType);
+              }
+              return false;
+            }
+            return true;
+          });
+        });
+
+        huePubSub.publish('get.active.snippet.type');
       }
 
       FunctionsPanel.prototype.initFunctions = function (dialect) {

+ 12 - 0
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -276,6 +276,18 @@ var EditorViewModel = (function() {
     self.availableSnippets = vm.availableSnippets();
     self.inFocus = ko.observable(false);
 
+    self.inFocus.subscribe(function (newValue) {
+      if (newValue) {
+        huePubSub.publish('active.snippet.type', self.type());
+      }
+    });
+
+    huePubSub.subscribe('get.active.snippet.type', function () {
+      if (self.inFocus() || notebook.snippets().length === 1) {
+        huePubSub.publish('active.snippet.type', self.type());
+      }
+    });
+
     self.getAceMode = function() {
       return vm.getSnippetViewSettings(self.type()).aceMode;
     };