summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/chrome.js20
1 files changed, 12 insertions, 8 deletions
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 2a470098c39..a28cd6f9a7b 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -286,9 +286,9 @@ openerp.web.Database = openerp.web.OldWidget.extend(/** @lends openerp.web.Datab
this.$option_id = $("#oe_db_options");
var self = this;
- var fetch_db = this.rpc("/web/database/get_list", {}, function(result) {
- self.db_list = result.db_list;
- });
+ var fetch_db = this.rpc("/web/database/get_list", {}).pipe(
+ function(result) { self.db_list = result.db_list; },
+ function (_, ev) { ev.preventDefault(); self.db_list = null; });
var fetch_langs = this.rpc("/web/session/get_lang_list", {}, function(result) {
if (result.error) {
self.display_error(result);
@@ -423,9 +423,11 @@ openerp.web.Database = openerp.web.OldWidget.extend(/** @lends openerp.web.Datab
self.display_error(result);
return;
}
- self.db_list.push(self.to_object(fields)['db_name']);
- self.db_list.sort();
- self.widget_parent.set_db_list(self.db_list);
+ if (self.db_list) {
+ self.db_list.push(self.to_object(fields)['db_name']);
+ self.db_list.sort();
+ self.widget_parent.set_db_list(self.db_list);
+ }
var form_obj = self.to_object(fields);
self.wait_for_newdb(result, {
password: form_obj['super_admin_pwd'],
@@ -454,8 +456,10 @@ openerp.web.Database = openerp.web.OldWidget.extend(/** @lends openerp.web.Datab
return;
}
$db_list.find(':selected').remove();
- self.db_list.splice(_.indexOf(self.db_list, db, true), 1);
- self.widget_parent.set_db_list(self.db_list);
+ if (self.db_list) {
+ self.db_list.splice(_.indexOf(self.db_list, db, true), 1);
+ self.widget_parent.set_db_list(self.db_list);
+ }
self.do_notify("Dropping database", "The database '" + db + "' has been dropped");
});
}