Browse Source

[notebook] Save the last used assist panel source in total storage

Johan Ahlen 10 năm trước cách đây
mục cha
commit
27f658991c

+ 4 - 2
desktop/core/src/desktop/static/desktop/js/assistHelper.js

@@ -39,7 +39,7 @@ function AssistHelper (options) {
     if (self.loaded()) {
       $.totalStorage("hue.assist.lastSelectedDb." + self.getTotalStorageUserPrefix(), newValue);
     }
-  })
+  });
 }
 
 AssistHelper.prototype.load = function (snippet, callback) {
@@ -51,8 +51,10 @@ AssistHelper.prototype.load = function (snippet, callback) {
   self.loading(true);
   self.loaded(false);
   self.fetchAssistData(snippet, NOTEBOOK_API_PREFIX, function(data) {
+
+    var databases = data.databases || [];
     // Blacklist of system databases
-    self.availableDatabases($.grep(data.databases, function(database) { return database !== "_impala_builtins" }));
+    self.availableDatabases($.grep(databases, function(database) { return database !== "_impala_builtins" }));
 
     if ($.inArray(self.activeDatabase(), self.availableDatabases()) === -1) {
       var lastSelectedDb = $.totalStorage("hue.assist.lastSelectedDb." + self.getTotalStorageUserPrefix());

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

@@ -667,7 +667,17 @@ from desktop.views import _ko
           self.selectedSource(source);
         });
 
-        self.selectedSourceType(self.availableSourceTypes[0]);
+        var lastSelectedSource =  $.totalStorage("hue.assist.lastSelectedSource." + notebookViewModel.user);
+        if ($.inArray(lastSelectedSource, self.availableSourceTypes) !== -1) {
+          self.selectedSourceType(lastSelectedSource);
+        } else {
+          self.selectedSourceType(self.availableSourceTypes[0]);
+        }
+
+        self.selectedSourceType.subscribe(function (newSourceType) {
+          $.totalStorage("hue.assist.lastSelectedSource." + notebookViewModel.user, newSourceType);
+        });
+
       }
 
       function AssistSource(snippet) {