瀏覽代碼

HUE-8604 [frontend] Use the latest opened database by default throughout

With this change it will also keep track of last opened database per namespace
Johan Ahlen 7 年之前
父節點
當前提交
490898da3a

+ 2 - 1
apps/metastore/src/metastore/static/metastore/js/metastore.model.js

@@ -49,10 +49,11 @@ var MetastoreSource = (function () {
 
     huePubSub.subscribe("assist.db.panel.ready", function () {
       self.lastLoadNamespacesDeferred.done(function () {
+        var lastSelectedDb = ApiHelper.getInstance().getFromTotalStorage('assist_' + self.sourceType + '_' + self.namespace.id, 'lastSelectedDb', 'default');
         huePubSub.publish('assist.set.database', {
           source: self.type,
           namespace: self.namespace().namespace,
-          name: null
+          name: lastSelectedDb
         });
       });
     });

+ 2 - 2
desktop/core/src/desktop/static/desktop/js/assist/assistDbSource.js

@@ -319,7 +319,7 @@ var AssistDbNamespace = (function () {
           self.selectedDatabase().loadEntries()
         }
         if (!self.navigationSettings.rightAssist) {
-          ApiHelper.getInstance().setInTotalStorage('assist_' + self.sourceType, 'lastSelectedDb', self.selectedDatabase().catalogEntry.name);
+          ApiHelper.getInstance().setInTotalStorage('assist_' + self.sourceType + '_' + self.namespace.id, 'lastSelectedDb', self.selectedDatabase().catalogEntry.name);
           huePubSub.publish('assist.database.set', {
             sourceType: self.sourceType,
             namespace: self.namespace,
@@ -342,7 +342,7 @@ var AssistDbNamespace = (function () {
         self.selectedDatabaseChanged();
         return;
       }
-      var lastSelectedDb = ApiHelper.getInstance().getFromTotalStorage('assist_' + self.sourceType, 'lastSelectedDb', 'default');
+      var lastSelectedDb = ApiHelper.getInstance().getFromTotalStorage('assist_' + self.sourceType + '_' + self.namespace.id, 'lastSelectedDb', 'default');
       if (lastSelectedDb && self.dbIndex[lastSelectedDb]) {
         self.selectedDatabase(self.dbIndex[lastSelectedDb]);
         self.selectedDatabaseChanged();

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

@@ -1365,10 +1365,11 @@ from desktop.views import _ko
                         name: assistDbSource.selectedNamespace().selectedDatabase().name
                       })
                     } else {
+                      var lastSelectedDb = ApiHelper.getInstance().getFromTotalStorage('assist_' + source + '_' + assistDbSource.selectedNamespace().namespace.id, 'lastSelectedDb', 'default');
                       deferred.resolve({
                         sourceType: source,
                         namespace: assistDbSource.selectedNamespace().namespace,
-                        name: 'default'
+                        name: lastSelectedDb
                       })
                     }
                   });

+ 4 - 3
desktop/core/src/desktop/templates/ko_components/ko_context_selector.mako

@@ -335,9 +335,10 @@ from desktop.views import _ko
                 }).fail(function () {
                   self.availableDatabases([]);
                 }).always(function () {
-                  if (self.database() && self.availableDatabases().indexOf(self.database()) === -1) {
-                    if (self.availableDatabases().length === 0 || self.availableDatabases().indexOf('default') !== -1) {
-                      self.database('default');
+                  if (!self.database() || self.availableDatabases().indexOf(self.database()) === -1) {
+                    var lastSelectedDb = ApiHelper.getInstance().getFromTotalStorage('assist_' + ko.unwrap(self.sourceType) + '_' + self[TYPES_INDEX.namespace.name]().id, 'lastSelectedDb', 'default');
+                    if (self.availableDatabases().length === 0 || self.availableDatabases().indexOf(lastSelectedDb) !== -1) {
+                      self.database(lastSelectedDb);
                     } else {
                       self.database(self.availableDatabases()[0])
                     }

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

@@ -500,7 +500,7 @@ var EditorViewModel = (function() {
     };
 
     if (!self.database()) {
-      huePubSub.publish("assist.get.database.callback", { source: self.type(), callback: function (databaseDef) {
+      huePubSub.publish('assist.get.database.callback', { source: self.type(), callback: function (databaseDef) {
         self.handleAssistSelection(databaseDef);
       }});
     }