Jelajahi Sumber

[notebook] Load the databases when switching snippet type

This makes sure the databases are loaded when switching the type in the snippet drop-down. It also removes the check of the loaded flag when loading the assist helper.
Johan Ahlen 10 tahun lalu
induk
melakukan
f66e3f9

+ 6 - 6
desktop/core/src/desktop/static/desktop/js/assistHelper.js

@@ -52,7 +52,7 @@
 
   AssistHelper.prototype.load = function (snippet, callback) {
     var self = this;
-    if (self.loading() || self.loaded()) {
+    if (self.loading()) {
       return;
     }
     self.type = snippet.type();
@@ -82,9 +82,11 @@
       if (callback) {
         callback();
       }
-    }, function(message) {
-     if (message.status == 401) {
-        $(document).trigger("showAuthModal", {'type': self.type, 'callback': function() {self.loaded(false); self.load(snippet, callback) }});
+    }, function (message) {
+      self.loaded(true);
+      self.loading(false);
+      if (message.status == 401) {
+        $(document).trigger("showAuthModal", {'type': self.type, 'callback': function() { self.load(snippet, callback) }});
       } else if (message.statusText) {
         $(document).trigger("error", "There was a problem loading the databases:" + message.statusText);
       } else if (message) {
@@ -92,8 +94,6 @@
       } else {
         $(document).trigger("error", "There was a problem loading the databases");
       }
-      self.loaded(true);
-      self.loading(false);
       if (callback) {
         callback();
       }

+ 0 - 1
desktop/core/src/desktop/templates/ko_components.mako

@@ -810,7 +810,6 @@ from desktop.views import _ko
         self.reloading(true);
         self.selectedDatabase(null);
         self.assistHelper.clearCache(self.snippet);
-        self.assistHelper.loaded(false);
         self.assistHelper.load(self.snippet, function() {
           self.reloading(false);
         });

+ 5 - 1
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -630,7 +630,11 @@
     });
 
     self.type.subscribe(function () {
-      self.autocompleter.setAssistHelper(self.getAssistHelper());
+      var assistHelper = self.getAssistHelper();
+      self.autocompleter.setAssistHelper(assistHelper);
+      if (! assistHelper.loaded()) {
+        assistHelper.load(self);
+      }
     });
 
     self.init = function () {