diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 5f923e7a35a..8d3069cc190 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -119,7 +119,19 @@ class Session(openerpweb.Controller): except Exception, e: pass return {"lang_list": lang_list} - + + @openerpweb.jsonrequest + def drop_db(self, req, **kw): + + db = kw.get('db') + password = kw.get('password') + try: + res = req.session.proxy("db").drop(password, db) + if res: + return res + except TypeError: + return {'error': e} + @openerpweb.jsonrequest def modules(self, req): return {"modules": [name diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index e6d475b4bc2..cf54e816288 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -189,7 +189,7 @@ ul.db_options li { -moz-border-radius: 10px; } -.db_option_table input[type="text"], input[type="password"], select, textarea { +.db_option_table input[type="text"], input[type="password"], select { width: 300px; } diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 19104f67e77..a2a243790df 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -938,6 +938,20 @@ openerp.base.Database = openerp.base.Controller.extend({ self.$element.find('#db-drop').click(function() { self.db_string = "DROP DATABASE"; self.$option_id.html(QWeb.render("DropDB", self)); + + self.$option_id.find('#drop_db_btn').click(function() { + var db = self.$option_id.find("select[name=drop_db]").val(); + var password = self.$option_id.find("input[name=drop_password]").val(); + + if (confirm("Do you really want to delete the database: " + db + " ?")) { + self.rpc("/base/session/drop_db", {'db': db, 'password': password}, + function(result) { + self.$option_id.find("select[name=drop_db] :selected").remove(); + self.notification.notify("Dropping database", "The database '" + db + "' has been dropped"); + }); + } + }); + }); self.$element.find('#db-backup').click(function() { self.db_string = "BACKUP DATABASE"; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index ffe40947ca3..8bb13f10963 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -113,7 +113,7 @@
| + | |||
| - | + | + | |
| + | |||