[FIX] Used jQuery's serializeArray to get the form values.
authornoz (OpenERP) <noz@tinyerp.com>
Tue, 26 Jul 2011 12:45:23 +0000 (18:15 +0530)
committernoz (OpenERP) <noz@tinyerp.com>
Tue, 26 Jul 2011 12:45:23 +0000 (18:15 +0530)
bzr revid: noz@tinyerp.com-20110726124523-8unw7svihn7r159q

addons/base/controllers/main.py
addons/base/static/src/js/chrome.js

index 97b266c..2507f95 100644 (file)
@@ -70,16 +70,21 @@ class Database(openerpweb.Controller):
         return {"db_list": dbs}
     
     @openerpweb.jsonrequest
-    def create_db(self, req, **kw):
+    def create_db(self, req, fields):
         
-        super_admin_pwd = kw.get('super_admin_pwd')
-        dbname = kw.get('db') 
-        demo_data = kw.get('demo_data')
-        db_lang = kw.get('db_lang')
-        admin_pwd = kw.get('admin_pwd')
-        confirm_pwd = kw.get('confirm_pwd')
-        
-        if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', dbname):
+        for field in fields:
+            if field['name'] == 'super_admin_pwd':
+                super_admin_pwd = field['value']
+            elif field['name'] == 'db_name':
+                dbname = field['value']
+            elif field['name'] == 'demo_data':
+                demo_data = field['value']
+            elif field['name'] == 'db_lang':
+                db_lang = field['value']
+            elif field['name'] == 'create_admin_pwd':
+                admin_pwd = field['value']
+                
+        if dbname and not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', dbname):
             return {'error': "You must avoid all accents, space or special characters.", 'title': 'Bad database name'}
         
         ok = False
@@ -92,9 +97,12 @@ class Database(openerpweb.Controller):
                 return {'error': 'Could not create database !', 'title': 'Create Database'}
 
     @openerpweb.jsonrequest
-    def drop_db(self, req, **kw):
-        db = kw.get('db')
-        password = kw.get('password')
+    def drop_db(self, req, fields):
+        for field in fields:
+            if field['name'] == 'drop_db':
+                db = field['value']
+            elif field['name'] == 'drop_pwd':
+                password = field['value']
         
         try:
             return req.session.proxy("db").drop(password, db)
@@ -105,9 +113,13 @@ class Database(openerpweb.Controller):
                 return {'error': 'Could not drop database !', 'title': 'Drop Database'}
 
     @openerpweb.jsonrequest
-    def backup_db(self, req, **kw):
-        db = kw.get('db')
-        password = kw.get('password')
+    def backup_db(self, req, fields):
+        for field in fields:
+            if field['name'] == 'backup_db':
+                db = field['value']
+            elif field['name'] == 'backup_pwd':
+                password = field['value']
+
         try:
             res = req.session.proxy("db").dump(password, db)
             if res:
@@ -121,10 +133,14 @@ class Database(openerpweb.Controller):
                 return {'error': 'Could not drop database !', 'title': 'Backup Database'}
             
     @openerpweb.jsonrequest
-    def restore_db(self, req, **kw):
-        filename = kw.get('filename')
-        db = kw.get('db')
-        password = kw.get('password')
+    def restore_db(self, req, fields):
+        for field in fields:
+            if field['name'] == 'restore_db':
+                filename = field['value']
+            elif field['name'] == 'new_db':
+                db = field['value']
+            elif field['name'] == 'restore_pwd':
+                password = field['value']
         
         try:
             data = base64.encodestring(filename.file.read())
@@ -136,10 +152,12 @@ class Database(openerpweb.Controller):
                 return {'error': 'Could not restore database !', 'title': 'Restore Database'}
         
     @openerpweb.jsonrequest
-    def change_password_db(self, req, **kw):
-        old_password = kw.get('old_password')
-        new_password = kw.get('new_password')
-        confirm_password = kw.get('confirm_password')
+    def change_password_db(self, req, fields):
+        for field in fields:
+            if field['name'] == 'old_pwd':
+                old_password = field['value']
+            elif field['name'] == 'new_pwd':
+                new_password = field['value']
         
         try:
             return req.session.proxy("db").change_admin_password(old_password, new_password)
index 8e9fb8d..cc6c483 100644 (file)
@@ -755,26 +755,9 @@ openerp.base.Database = openerp.base.Controller.extend({
                self.$option_id.find('form[name=create_db_form]').submit(function(ev) {
                    ev.preventDefault();
                
-                   var super_admin_pwd = self.$option_id.find("input[name=super_admin_pwd]").val();
-                   var db = self.$option_id.find("input[name=db_name]").val();
-                   var demo_data = self.$option_id.find("input[name=demo_data]:checked");
-                   var db_lang = self.$option_id.find("select[name=db_lang]").val();
-                   var admin_pwd = self.$option_id.find("input[name=create_admin_pwd]").val();
-                   var confirm_pwd = self.$option_id.find("input[name=create_confirm_pwd]").val();
-
-                   if (demo_data.length) 
-                       demo_data = 'True';
-                   else
-                demo_data = 'False';
+                   var fields = $(this).serializeArray();
                 
-            self.rpc("/base/database/create_db", {
-                'super_admin_pwd': super_admin_pwd,
-                'db': db, 
-                'demo_data': demo_data,
-                'db_lang': db_lang,
-                'admin_pwd': admin_pwd,
-                'confirm_pwd': confirm_pwd
-            }, 
+            self.rpc("/base/database/create_db", {'fields': fields},
             function(result) {
                 if (result && !result.error) {
                 
@@ -803,29 +786,29 @@ openerp.base.Database = openerp.base.Controller.extend({
         self.$option_id.find('form[name=drop_db_form]').submit(function(ev) {
                    ev.preventDefault();
                
-            var db = self.$option_id.find("select[name=drop_db]").val();
-            var password = self.$option_id.find("input[name=drop_pwd]").val();
-        
-        if (confirm("Do you really want to delete the database: " + db + " ?")) {
-        self.rpc("/base/database/drop_db", {'db': db, 'password': password}, 
-            function(result) {
-                    if (result && ! result.error) {
-                        self.$option_id.find("select[name=drop_db] :selected").remove();
-                        self.notification.notify("Dropping database", "The database '" + db + "' has been dropped");
-                    } else if(result.error) {
-                        var db_error_dialog = _.uniqueId("db_error_dialog");
-                        $('<div>', {id: db_error_dialog}).dialog({
-                            modal: true,
-                            title: result.title,
-                            buttons: {
-                                Ok: function() {
-                                    $(this).dialog("close");
-                                }
-                            }
-                        }).html("<center style='padding-top: 15px; font-size: 15px'>" + result.error + "</center>");
-                    }
-               });
-            }
+               var fields = $(this).serializeArray();
+               db = $('select[name=drop_db] :selected').val();
+               
+               if (confirm("Do you really want to delete the database: " + db + " ?")) {
+               self.rpc("/base/database/drop_db", {'fields': fields}, 
+                   function(result) {
+                           if (result && ! result.error) {
+                               self.$option_id.find("select[name=drop_db] :selected").remove();
+                               self.notification.notify("Dropping database", "The database '" + db + "' has been dropped");
+                           } else if(result.error) {
+                               var db_error_dialog = _.uniqueId("db_error_dialog");
+                               $('<div>', {id: db_error_dialog}).dialog({
+                                   modal: true,
+                                   title: result.title,
+                                   buttons: {
+                                       Ok: function() {
+                                           $(this).dialog("close");
+                                       }
+                                   }
+                               }).html("<center style='padding-top: 15px; font-size: 15px'>" + result.error + "</center>");
+                           }
+                      });
+                   }
         });
     },
     
@@ -838,10 +821,9 @@ openerp.base.Database = openerp.base.Controller.extend({
                self.$option_id.find('form[name=backup_db_form]').submit(function(ev) {
                    ev.preventDefault();
                
-            var db = self.$option_id.find("select[name=backup_db]").val();
-            var password = self.$option_id.find("input[name=backup_pwd]").val();
+            var fields = $(self).serializeArray();
             
-            self.rpc("/base/database/backup_db", {'db': db, 'password': password}, 
+            self.rpc("/base/database/backup_db", {'fields': fields}, 
             function(result) {
                 if (result && !result.error) {
                     self.notification.notify("Backup Database", "Backup has been created for the database: '" + db + "'");
@@ -870,11 +852,9 @@ openerp.base.Database = openerp.base.Controller.extend({
                self.$option_id.find('form[name=restore_db_form]').submit(function(ev) {
                    ev.preventDefault();
                
-            var db = self.$option_id.find("input[name=restore_db]").val();
-            var password = self.$option_id.find("input[name=restore_pwd]").val();
-            var new_db = self.$option_id.find("input[name=new_db]").val();
+            var fields = $(self).serializeArray();
                
-            self.rpc("/base/database/restore_db", {'db': db, 'password': password, 'new_db': new_db}, 
+            self.rpc("/base/database/restore_db", {'fields': fields}, 
             function(result) {
                 if (result && !result.error) {
                    self.notification.notify("Restore Database", "You restored your database as: '" + new_db + "'");
@@ -923,12 +903,10 @@ openerp.base.Database = openerp.base.Controller.extend({
         
                self.$option_id.find('form[name=change_pwd_form]').submit(function(ev) {
                    ev.preventDefault();
-               
-                   var old_pwd = self.$option_id.find("input[name=old_pwd]").val();
-            var new_pwd = self.$option_id.find("input[name=new_pwd]").val();
-            var confirm_pwd = self.$option_id.find("input[name=confirm_pwd]").val();
+                   
+                   var fields = $(self).serializeArray();
 
-            self.rpc("/base/database/change_password_db", {'old_password': old_pwd, 'new_password': new_pwd, 'confirm_password': confirm_pwd}, 
+            self.rpc("/base/database/change_password_db", {'fields': fields}, 
                function(result) {
                    if (result && !result.error) {
                       self.notification.notify("Changed Password", "Password has been changed successfully");