Browse Source

HUE-4179 [metastore] Use common selected DB for hive and impala

Johan Ahlen 9 years ago
parent
commit
8f8ad7e83f

+ 10 - 2
apps/metastore/src/metastore/static/metastore/js/metastore.ko.js

@@ -191,7 +191,7 @@ var MetastoreViewModel = (function () {
     });
 
 
-    $.totalStorage('hue.metastore.lastdb', self.name);
+    self.apiHelper.setInTotalStorage('metastore', 'last.selected.database', self.name);
   };
 
   MetastoreDatabase.prototype.setTableByName = function (tableName) {
@@ -762,7 +762,8 @@ var MetastoreViewModel = (function () {
 
     var setDatabaseByName = function (databaseName, callback) {
       if (databaseName === '') {
-        databaseName = $.totalStorage('hue.metastore.lastdb') || 'default';
+        databaseName = self.apiHelper.getFromTotalStorage('editor', 'last.selected.database') ||
+            self.apiHelper.getFromTotalStorage('metastore', 'last.selected.database') || 'default';
       }
       if (self.database() && self.database().name == databaseName) {
         if (callback) {
@@ -775,6 +776,13 @@ var MetastoreViewModel = (function () {
       });
       if (foundDatabases.length === 1) {
         self.setDatabase(foundDatabases[0], callback);
+      } else {
+        foundDatabases = $.grep(self.databases(), function (database) {
+          return database.name === 'default';
+        });
+        if (foundDatabases.length === 1) {
+          self.setDatabase(foundDatabases[0], callback);
+        }
       }
     };
 

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

@@ -291,7 +291,13 @@ var EditorViewModel = (function() {
       return ApiHelper.getInstance(vm);
     };
 
-    self.database = ko.observable(typeof snippet.database != "undefined" && snippet.database != null ? snippet.database : null);
+    self.database = ko.observable();
+    self.database.subscribe(function (newValue) {
+      if (newValue !== null) {
+        self.getApiHelper().setInTotalStorage('editor', 'last.selected.database', newValue);
+      }
+    });
+    self.database(typeof snippet.database != "undefined" && snippet.database != null ? snippet.database : null);
     self.availableDatabases = ko.observableArray();
 
     var updateDatabases = function () {