Bläddra i källkod

HUE-7481 [frontend] Close the global search when clicking on show in assist or table browser

Johan Ahlen 8 år sedan
förälder
incheckning
426c113dd1

+ 5 - 1
desktop/core/src/desktop/templates/assist.mako

@@ -2373,7 +2373,11 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, get_ord
         var activeTableIndex = {};
 
         self.filter = {
-          querySpec: ko.observable({}),
+          querySpec: ko.observable({
+            query: '',
+            facets: {},
+            text: []
+          }),
           showViews: ko.observable(true),
           showTables: ko.observable(true)
         };

+ 29 - 2
desktop/core/src/desktop/templates/ko_components.mako

@@ -680,6 +680,17 @@ from desktop.views import _ko
           text: []
         });
 
+        var querySpecSub = self.querySpec.subscribe(function (newVal) {
+          if (!newVal || !newVal.query) {
+              self.searchInput('');
+              self.inlineAutocomplete('');
+          }
+        });
+
+        self.disposals.push(function () {
+          querySpecSub.dispose();
+        });
+
         self.onClear = function () {
           if (params.onClear) {
             params.onClear();
@@ -692,11 +703,15 @@ from desktop.views import _ko
             self.autocomplete(self.searchInput(), self.inlineAutocomplete);
           });
           self.disposals.push(function () {
-            triggerSub.remove();
+            triggerSub.dispose();
           })
         }
 
         var inputSub = self.searchInput.subscribe(function (newValue) {
+          if (newValue === '' && self.querySpec() && self.querySpec().query === '') {
+            self.inlineAutocomplete('');
+            return;
+          }
           if (newValue === '' && self.querySpec() && self.querySpec().query !== '') {
             self.querySpec({
               query: '',
@@ -935,6 +950,14 @@ from desktop.views import _ko
           }
         });
 
+        huePubSub.subscribe('context.popover.open.in.metastore', function () {
+          window.setTimeout(function () {
+            if (self.searchResultVisible()) {
+              self.close();
+            }
+          }, 0);
+        });
+
         huePubSub.subscribe('context.popover.show.in.assist', function () {
           window.setTimeout(function () {
             if (self.searchResultVisible()) {
@@ -1049,7 +1072,11 @@ from desktop.views import _ko
       GlobalSearch.prototype.close = function () {
         var self = this;
         self.searchResultVisible(false);
-        self.querySpec({});
+        self.querySpec({
+          query: '',
+          facets: {},
+          text: []
+        });
       };
 
       GlobalSearch.prototype.openResult = function () {