[FIX] handling of being denied access to the list of databases in the database-manage...
authorXavier Morel <xmo@openerp.com>
Tue, 31 Jan 2012 09:43:26 +0000 (10:43 +0100)
committerXavier Morel <xmo@openerp.com>
Tue, 31 Jan 2012 09:43:26 +0000 (10:43 +0100)
lp bug: https://launchpad.net/bugs/922024 fixed

bzr revid: xmo@openerp.com-20120131094326-1am82v8u6f9fefuv

addons/web/static/src/css/base.css
addons/web/static/src/js/chrome.js
addons/web/static/src/xml/base.xml

index f2c3593..6322cf7 100644 (file)
@@ -340,7 +340,10 @@ table.db_option_table input.required {
     background-color: #D2D2FF !important;
 }
 
-.db_option_table input[type="text"], .db_option_table input[type="password"], .db_option_table select {
+.db_option_table input[type="text"],
+.db_option_table input[type="password"],
+.db_option_table input[type="file"],
+.db_option_table select {
     width: 300px;
 }
 
@@ -1226,7 +1229,13 @@ label.error {
 }
 
 
-.openerp label.oe_label_help, .openerp label.oe_label, .openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms .oe_button, .openerp .oe_forms textarea {
+.openerp label.oe_label_help, .openerp label.oe_label,
+.openerp .oe_forms input[type="text"],
+.openerp .oe_forms input[type="password"],
+.openerp .oe_forms input[type="file"],
+.openerp .oe_forms select,
+.openerp .oe_forms .oe_button,
+.openerp .oe_forms textarea {
     font-size: 85%;
 }
 
@@ -1342,7 +1351,11 @@ label.error {
     min-height:100px;
 }
 /* Inputs */
-.openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms textarea {
+.openerp .oe_forms input[type="text"],
+.openerp .oe_forms input[type="password"],
+.openerp .oe_forms input[type="file"],
+.openerp .oe_forms select,
+.openerp .oe_forms textarea {
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box;
     -ms-box-sizing: border-box;
@@ -1402,7 +1415,11 @@ label.error {
 .openerp .oe_forms textarea {
     resize:vertical;
 }
-.openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms .oe_button {
+.openerp .oe_forms input[type="text"],
+.openerp .oe_forms input[type="password"],
+.openerp .oe_forms input[type="file"],
+.openerp .oe_forms select,
+.openerp .oe_forms .oe_button {
     height: 22px;
 }
 
index 2a47009..a28cd6f 100644 (file)
@@ -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");
                 });
             }
index d7f08b6..ac9f7b4 100644 (file)
                             <option t-att-value="db"><t t-esc="db"/></option>
                         </t>
                     </select>
+                    <input t-if="!db_list" name="drop_db" class="required"
+                           type="text" autofocus="autofocus"/>
                 </td>
             </tr>
             <tr>
                             <option t-att-value="db"><t t-esc="db"/></option>
                         </t>
                     </select>
+                    <input t-if="!db_list" name="drop_db" class="required"
+                           type="text" autofocus="autofocus"/>
                 </td>
             </tr>
             <tr>