diff options
| author | Antony Lesuisse <al@openerp.com> | 2012-04-09 00:42:01 +0200 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2012-04-09 00:42:01 +0200 |
| commit | 8ea5590e2cd741b41ec64205f713ba2e62c8ef5d (patch) | |
| tree | 8184c554ca12417ff388973e14c73a0c6a4e466f /addons/web | |
| parent | 07202a9761123a167279e85a599d5497801b4cbf (diff) | |
databasemanager cleanups
bzr revid: al@openerp.com-20120408224201-jpafsl49k1d01q3q
Diffstat (limited to 'addons/web')
| -rw-r--r-- | addons/web/static/src/css/base.css | 10 | ||||
| -rw-r--r-- | addons/web/static/src/css/base.sass | 7 | ||||
| -rw-r--r-- | addons/web/static/src/js/chrome.js | 239 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 322 |
4 files changed, 248 insertions, 330 deletions
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 4ba20435753..34796beadea 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -245,7 +245,6 @@ } .openerp2 .oe_login { background: url("/web/static/src/img/pattern.png") repeat; - color: #eeeeee; text-align: center; font-size: 14px; height: 100%; @@ -254,10 +253,6 @@ list-style-type: none; padding-bottom: 4px; } -.openerp2 .oe_login a { - color: #eeeeee; - text-decoration: none; -} .openerp2 .oe_login button { float: right; display: inline-block; @@ -340,6 +335,7 @@ background: #1e1e1e; background: rgba(30, 30, 30, 0.94); padding: 22px 32px; + color: #eeeeee; text-align: left; -moz-border-radius: 8px; -webkit-border-radius: 8px; @@ -368,6 +364,7 @@ text-align: center; } .openerp2 .oe_login .oe_login_footer a { + color: #eeeeee; margin: 0 8px; } .openerp2 .oe_login .oe_login_footer a:hover { @@ -398,6 +395,9 @@ color: black; text-align: left; } +.openerp2 .oe_database_manager .oe_database_manager_menu { + color: black; +} .openerp2 .oe_notification { z-index: 1050; } diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 5b76f9a4d3d..067a83cd33d 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -219,16 +219,12 @@ $colour4: #8a89ba // Login {{{ .oe_login background: url("/web/static/src/img/pattern.png") repeat - color: #eee text-align: center font-size: 14px height: 100% li list-style-type: none padding-bottom: 4px - a - color: #eee - text-decoration: none button float: right display: inline-block @@ -282,6 +278,7 @@ $colour4: #8a89ba background: #1e1e1e background: rgba(30,30,30,0.94) padding: 22px 32px + color: #eee text-align: left @include radius(8px) @include box-shadow(0 0 18px rgba(0, 0, 0, 0.9)) @@ -302,6 +299,7 @@ $colour4: #8a89ba width: 100% text-align: center a + color: #eee margin: 0 8px &:hover text-decoration: underline @@ -326,6 +324,7 @@ $colour4: #8a89ba color: #000 text-align: left .oe_database_manager_menu + color: #000 // }}} // {{{ Notification .oe_notification diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index d0920e48480..0b80ccc39b1 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -258,7 +258,6 @@ openerp.web.Loading = openerp.web.Widget.extend({ }); openerp.web.DatabaseManager = openerp.web.Widget.extend({ - template: "DatabaseManager", init: function(parent) { this._super(parent); this.unblockUIFunction = $.unblockUI; @@ -267,30 +266,42 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({ }, _t("Invalid database name")); }, start: function() { - this.$option_id = $("#oe_db_options"); - var self = this; 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); - return; - } + 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", {}).then(function(result) { self.lang_list = result.lang_list; }); - $.when(fetch_db, fetch_langs).then(function () {self.do_create();}); - - this.$element.find('#db-create').click(this.do_create); - this.$element.find('#db-drop').click(this.do_drop); - this.$element.find('#db-backup').click(this.do_backup); - this.$element.find('#db-restore').click(this.do_restore); - this.$element.find('#db-change-password').click(this.do_change_password); - this.$element.find('#back-to-login').click(this.do_exit); + return $.when(fetch_db, fetch_langs).then(self.do_render); + }, + do_render: function() { + var self = this; + self.$element.html(QWeb.render("DatabaseManager", { widget : self })); + self.$element.find(".oe_database_manager_menu").tabs(); + self.$element.find("form[name=create_db_form]").validate({ submitHandler: self.do_create }); + self.$element.find("form[name=drop_db_form]").validate({ submitHandler: self.do_drop }); + self.$element.find("form[name=backup_db_form]").validate({ submitHandler: self.do_backup }); + self.$element.find("form[name=restore_db_form]").validate({ submitHandler: self.do_restore }); + self.$element.find("form[name=change_pwd_form]").validate({ + messages: { + old_pwd: "Please enter your previous password", + new_pwd: "Please enter your new password", + confirm_pwd: { + required: "Please confirm your new password", + equalTo: "The confirmation does not match the password" + } + }, + submitHandler: self.do_change_password + }); + self.$element.find("#back_to_login").click(self.do_exit); }, destroy: function () { - this.$option_id.empty(); this.$element.find('#db-create, #db-drop, #db-backup, #db-restore, #db-change-password, #back-to-login').unbind('click').end().empty(); this._super(); }, @@ -340,141 +351,87 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({ ] }).html(error.error); }, - do_create: function() { + do_create: function(form) { var self = this; - self.$option_id.html(QWeb.render("Database.CreateDB", self)); - self.$option_id.find("form[name=create_db_form]").validate({ - submitHandler: function (form) { - var fields = $(form).serializeArray(); - self.rpc("/web/database/create", {'fields': fields}, function(result) { - if (self.db_list) { - self.db_list.push(self.to_object(fields)['db_name']); - self.db_list.sort(); - self.getParent().set_db_list(self.db_list); - } - - var form_obj = self.to_object(fields); - self.getParent().do_login( - form_obj['db_name'], - 'admin', - form_obj['create_admin_pwd']); - self.destroy(); - }); - } + var fields = $(form).serializeArray(); + self.rpc("/web/database/create", {'fields': fields}, function(result) { + var form_obj = self.to_object(fields); + self.getParent().do_login( form_obj['db_name'], 'admin', form_obj['create_admin_pwd']); + self.destroy(); }); + }, - do_drop: function() { + do_drop: function(form) { var self = this; - self.$option_id.html(QWeb.render("Database.DropDB", self)); - self.$option_id.find("form[name=drop_db_form]").validate({ - submitHandler: function (form) { - var $form = $(form), - fields = $form.serializeArray(), - $db_list = $form.find('[name=drop_db]'), - db = $db_list.val(); - - if (!db || !confirm("Do you really want to delete the database: " + db + " ?")) { - return; - } - self.rpc("/web/database/drop", {'fields': fields}, function(result) { - if (result.error) { - self.display_error(result); - return; - } - $db_list.find(':selected').remove(); - if (self.db_list) { - self.db_list.splice(_.indexOf(self.db_list, db, true), 1); - self.getParent().set_db_list(self.db_list); - } - self.do_notify("Dropping database", "The database '" + db + "' has been dropped"); - }); + var $form = $(form), + fields = $form.serializeArray(), + $db_list = $form.find('[name=drop_db]'), + db = $db_list.val(); + if (!db || !confirm("Do you really want to delete the database: " + db + " ?")) { + return; + } + self.rpc("/web/database/drop", {'fields': fields}, function(result) { + if (result.error) { + self.display_error(result); + return; } + self.do_notify("Dropping database", "The database '" + db + "' has been dropped"); + self.start(); }); }, - do_backup: function() { + do_backup: function(form) { var self = this; - self.$option_id - .html(QWeb.render("Database.BackupDB", self)) - .find("form[name=backup_db_form]").validate({ - submitHandler: function (form) { - self.blockUI(); - self.session.get_file({ - form: form, - success: function () { - self.do_notify(_t("Backed"), - _t("Database backed up successfully")); - }, - error: openerp.webclient.crashmanager.on_rpc_error, - complete: function() { - self.unblockUI(); - } - }); + self.blockUI(); + self.session.get_file({ + form: form, + success: function () { + self.do_notify(_t("Backed"), _t("Database backed up successfully")); + }, + error: openerp.webclient.crashmanager.on_rpc_error, + complete: function() { + self.unblockUI(); } }); }, - do_restore: function() { + do_restore: function(form) { var self = this; - self.$option_id.html(QWeb.render("Database.RestoreDB", self)); - - self.$option_id.find("form[name=restore_db_form]").validate({ - submitHandler: function (form) { - self.blockUI(); - $(form).ajaxSubmit({ - url: '/web/database/restore', - type: 'POST', - resetForm: true, - success: function (body) { - // TODO: ui manipulations - // note: response objects don't work, but we have the - // HTTP body of the response~~ + self.blockUI(); + $(form).ajaxSubmit({ + url: '/web/database/restore', + type: 'POST', + resetForm: true, + success: function (body) { + // If empty body, everything went fine + if (!body) { return; } - // If empty body, everything went fine - if (!body) { return; } - - if (body.indexOf('403 Forbidden') !== -1) { - self.display_error({ - title: 'Access Denied', - error: 'Incorrect super-administrator password' - }) - } else { - self.display_error({ - title: 'Restore Database', - error: 'Could not restore the database' - }) - } - }, - complete: function() { - self.unblockUI(); - self.do_notify(_t("Restored"), _t("Database restored successfully")); - } - }); + if (body.indexOf('403 Forbidden') !== -1) { + self.display_error({ + title: 'Access Denied', + error: 'Incorrect super-administrator password' + }) + } else { + self.display_error({ + title: 'Restore Database', + error: 'Could not restore the database' + }) + } + }, + complete: function() { + self.unblockUI(); + self.do_notify(_t("Restored"), _t("Database restored successfully")); } }); }, - do_change_password: function() { + do_change_password: function(form) { var self = this; - self.$option_id.html(QWeb.render("Database.Change_DB_Pwd", self)); - - self.$option_id.find("form[name=change_pwd_form]").validate({ - messages: { - old_pwd: "Please enter your previous password", - new_pwd: "Please enter your new password", - confirm_pwd: { - required: "Please confirm your new password", - equalTo: "The confirmation does not match the password" - } - }, - submitHandler: function (form) { - self.rpc("/web/database/change_password", { - 'fields': $(form).serializeArray() - }, function(result) { - if (result.error) { - self.display_error(result); - return; - } - self.do_notify("Changed Password", "Password has been changed successfully"); - }); + self.rpc("/web/database/change_password", { + 'fields': $(form).serializeArray() + }, function(result) { + if (result.error) { + self.display_error(result); + return; } + self.do_notify("Changed Password", "Password has been changed successfully"); }); }, do_exit: function () { @@ -512,9 +469,13 @@ openerp.web.Login = openerp.web.Widget.extend({ self.databasemanager.destroy(); self.$element.find('.oe_login_bottom').show(); self.$element.find('.oe_login_pane').show(); + self.load_db_list(); }) }); - + self.load_db_list(); + }, + load_db_list: function () { + var self = this; self.rpc("/web/database/get_list", {}, function(result) { self.set_db_list(result.db_list); }, function(error, event) { @@ -524,9 +485,7 @@ openerp.web.Login = openerp.web.Widget.extend({ }); }, set_db_list: function (list) { - this.$element.find("[name=db]").replaceWith( - openerp.web.qweb.render('Login.dblist', { - db_list: list, selected_db: this.selected_db})) + this.$element.find("[name=db]").replaceWith(openerp.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db})) }, on_submit: function(ev) { if(ev) { diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 7fc504b5449..65364748862 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -118,191 +118,151 @@ <div class="oe_database_manager"> <div class="oe_database_manager_menu"> <ul class="oe_form_notebook"> - <li id="db-create">Create</li> - <li id="db-drop">Drop</li> - <li id="db-backup">Backup</li> - <li id="db-restore">Restore</li> - <li id="db-change-password">Password</li> - <li id="back-to-login">Back to Login</li> + <li><a href="#db_create">Create</a></li> + <li><a href="#db_drop">Drop</a></li> + <li><a href="#db_backup">Backup</a></li> + <li><a href="#db_restore">Restore</a></li> + <li><a href="#db_change_password">Password</a></li> + <li><a id="back_to_login" href="#">Back to Login</a></li> </ul> + <form id="db_create" name="create_db_form" class="oe_forms" method="POST"> + <table align="center" class="db_option_table"> + <tr> + <th colspan="2" class="option_string"> CREATE DATABASE </th> + </tr> + <tr> + <td><label for="super_admin_pwd">Master password:</label></td> + <td><input type="password" name="super_admin_pwd" class="required" value="admin"/></td> + </tr> + <tr> + <td><label for="db_name">New database name:</label></td> + <td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_]+$"/></td> + </tr> + <tr> + <td><label for="demo_data">Load Demonstration data:</label></td> + <td><input type="checkbox" name="demo_data"/></td> + </tr> + <tr> + <td><label for="db_lang">Default language:</label></td> + <td> + <select name="db_lang" t-if="widget.lang_list"> + <t t-foreach="widget.lang_list" t-as="lang"> + <option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined"><t t-esc="lang[1]"/></option> + </t> + </select> + </td> + </tr> + <tr> + <td><label for="create_admin_pwd">Admin password:</label></td> + <td><input type="password" name="create_admin_pwd" class="required"/></td> + </tr> + <tr> + <td><label for="create_confirm_pwd">Confirm password:</label></td> + <td><input type="password" name="create_confirm_pwd" class="required" equalTo="input[name=create_admin_pwd]"/></td> + </tr> + <tr> + <td colspan="2" align="right"><button class="oe_button">Create</button></td> + </tr> + </table> + </form> + <form id="db_drop" name="drop_db_form" class="oe_forms" method="POST"> + <table align="center" class="db_option_table"> + <tr> + <th colspan="2" class="option_string"> DROP DATABASE </th> + </tr> + <tr> + <td><label for="drop_db">Database:</label></td> + <td> + <select t-if="widget.db_list" name="drop_db" autofocus="autofocus"> + <t t-foreach="widget.db_list" t-as="db"> + <option t-att-value="db"><t t-esc="db"/></option> + </t> + </select> + <input t-if="!widget.db_list" name="drop_db" class="required" type="text" autofocus="autofocus"/> + </td> + </tr> + <tr> + <td><label for="drop_password">Master Password:</label></td> + <td><input type="password" name="drop_pwd" class="required"/></td> + </tr> + <tr> + <td colspan="2" align="right"><button class="oe_button">Drop</button></td> + </tr> + </table> + </form> + <form id="db_backup" name="backup_db_form" class="oe_forms" method="POST" target="backup-target" action="/web/database/backup"> + <input type="hidden" name="token"/> + <table align="center" class="db_option_table"> + <tr> + <th colspan="2" class="option_string"> BACKUP DATABASE </th> + </tr> + <tr> + <td><label for="backup_db">Database:</label></td> + <td> + <select t-if="widget.db_list" name="backup_db" autofocus="autofocus"> + <t t-foreach="widget.db_list" t-as="db"> + <option t-att-value="db"><t t-esc="db"/></option> + </t> + </select> + <input t-if="!widget.db_list" name="backup_db" class="required" type="text" autofocus="autofocus"/> + </td> + </tr> + <tr> + <td><label for="backup_pwd">Master Password:</label></td> + <td><input type="password" name="backup_pwd" class="required"/></td> + </tr> + <tr> + <td colspan="2" align="right"><button class="oe_button">Backup</button></td> + </tr> + </table> + </form> + <form id="db_restore" name="restore_db_form" class="oe_forms" method="POST"> + <table align="center" class="db_option_table"> + <tr> + <th colspan="2" class="option_string"> RESTORE DATABASE </th> + </tr> + <tr> + <td><label for="restore_db">File:</label></td> + <td><input type="file" name="db_file" class="required" autofocus="autofocus"/></td> + </tr> + <tr> + <td><label for="restore_pwd">Master Password:</label></td> + <td><input type="password" name="restore_pwd" class="required"/></td> + </tr> + <tr> + <td><label for="new_db">New database name:</label></td> + <td><input type="text" name="new_db" class="required"/></td> + </tr> + <tr> + <td colspan="2" align="right"><button class="oe_button">Restore</button></td> + </tr> + </table> + </form> + <form id="db_change_password" name="change_pwd_form" class="oe_forms" method="POST"> + <table align="center" class="db_option_table"> + <tr> + <th colspan="2" class="option_string"> CHANGE MASTER PASSWORD </th> + </tr> + <tr> + <td><label for="old_pwd">Master password:</label></td> + <td><input type="password" name="old_pwd" class="required" minlength="1" autofocus="autofocus"/></td> + </tr> + <tr> + <td><label for="new_pwd">New master password:</label></td> + <td><input type="password" name="new_pwd" class="required" minlength="1"/></td> + </tr> + <tr> + <td><label for="confirm_pwd">Confirm new master password:</label></td> + <td><input type="password" name="confirm_pwd" class="required" equalTo="input[name=new_pwd]" minlength="1"/></td> + </tr> + <tr> + <td colspan="2" align="right"><button class="oe_button">Change Password</button></td> + </tr> + </table> + </form> </div> - <div id="oe_db_options" class="oe_db_options"></div> </div> </t> -<t t-name="Database.CreateDB"> - <form name="create_db_form" class="oe_forms" method="POST"> - <table width="100%"> - <tr> - <td class="option_string"> - CREATE DATABASE - </td> - </tr> - </table> - <table align="center" class="db_option_table"> - <tr> - <td><label for="super_admin_pwd">Master password:</label></td> - <td><input type="password" name="super_admin_pwd" class="required" value="admin"/></td> - </tr> - <tr> - <td><label for="db_name">New database name:</label></td> - <td><input type="text" name="db_name" - class="required" matches="^[a-zA-Z][a-zA-Z0-9_]+$"/></td> - </tr> - <tr> - <td><label for="demo_data">Load Demonstration data:</label></td> - <td><input type="checkbox" name="demo_data"/></td> - </tr> - <tr> - <td><label for="db_lang">Default language:</label></td> - <td> - <select name="db_lang" t-if="lang_list"> - <t t-foreach="lang_list" t-as="lang"> - <option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined"><t t-esc="lang[1]"/></option> - </t> - </select> - </td> - </tr> - <tr> - <td><label for="create_admin_pwd">Admin password:</label></td> - <td><input type="password" name="create_admin_pwd" class="required"/></td> - </tr> - <tr> - <td><label for="create_confirm_pwd">Confirm password:</label></td> - <td><input type="password" name="create_confirm_pwd" class="required" - equalTo="input[name=create_admin_pwd]"/></td> - </tr> - <tr> - <td colspan="2" align="right"><button class="oe_button">Create</button></td> - </tr> - </table> - </form> -</t> -<t t-name="Database.DropDB"> - <form name="drop_db_form" class="oe_forms" method="POST"> - <table width="100%"> - <tr> - <td class="option_string"> - DROP DATABASE - </td> - </tr> - </table> - <table align="center" class="db_option_table"> - <tr> - <td><label for="drop_db">Database:</label></td> - <td> - <select t-if="db_list" name="drop_db" autofocus="autofocus"> - <t t-foreach="db_list" t-as="db"> - <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> - <td><label for="drop_password">Master Password:</label></td> - <td><input type="password" name="drop_pwd" class="required"/></td> - </tr> - <tr> - <td colspan="2" align="right"><button class="oe_button">Drop</button></td> - </tr> - </table> - </form> -</t> -<t t-name="Database.BackupDB"> - <form name="backup_db_form" class="oe_forms" method="POST" target="backup-target" - action="/web/database/backup"> - <input type="hidden" name="token"/> - <table width="100%"> - <tr> - <td class="option_string"> - BACKUP DATABASE - </td> - </tr> - </table> - <table align="center" class="db_option_table"> - <tr> - <td><label for="backup_db">Database:</label></td> - <td> - <select t-if="db_list" name="backup_db" autofocus="autofocus"> - <t t-foreach="db_list" t-as="db"> - <option t-att-value="db"><t t-esc="db"/></option> - </t> - </select> - <input t-if="!db_list" name="backup_db" class="required" - type="text" autofocus="autofocus"/> - </td> - </tr> - <tr> - <td><label for="backup_pwd">Master Password:</label></td> - <td><input type="password" name="backup_pwd" class="required"/></td> - </tr> - <tr> - <td colspan="2" align="right"><button class="oe_button">Backup</button></td> - </tr> - </table> - </form> -</t> -<t t-name="Database.RestoreDB"> - <form name="restore_db_form" class="oe_forms" method="POST"> - <table width="100%"> - <tr> - <td class="option_string"> - RESTORE DATABASE - </td> - </tr> - </table> - <table align="center" class="db_option_table"> - <tr> - <td><label for="restore_db">File:</label></td> - <td><input type="file" name="db_file" class="required" - autofocus="autofocus"/></td> - </tr> - <tr> - <td><label for="restore_pwd">Master Password:</label></td> - <td><input type="password" name="restore_pwd" class="required"/></td> - </tr> - <tr> - <td><label for="new_db">New database name:</label></td> - <td><input type="text" name="new_db" class="required"/></td> - </tr> - <tr> - <td colspan="2" align="right"><button class="oe_button">Restore</button></td> - </tr> - </table> - </form> -</t> -<t t-name="Database.Change_DB_Pwd"> - <form name="change_pwd_form" class="oe_forms" method="POST"> - <table width="100%"> - <tr> - <td class="option_string"> - CHANGE MASTER PASSWORD - </td> - </tr> - </table> - <table align="center" class="db_option_table"> - <tr> - <td><label for="old_pwd">Master password:</label></td> - <td><input type="password" name="old_pwd" class="required" - minlength="1" autofocus="autofocus"/></td> - </tr> - <tr> - <td><label for="new_pwd">New master password:</label></td> - <td><input type="password" name="new_pwd" class="required" - minlength="1"/></td> - </tr> - <tr> - <td><label for="confirm_pwd">Confirm new master password:</label></td> - <td><input type="password" name="confirm_pwd" class="required" - equalTo="input[name=new_pwd]" minlength="1"/></td> - </tr> - <tr> - <td colspan="2" align="right"><button class="oe_button">Change Password</button></td> - </tr> - </table> - </form> -</t> <t t-name="WebClient"> <table class="oe_webclient"> |
