diff options
| author | Xavier Morel <xmo@openerp.com> | 2011-09-01 15:38:12 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2011-09-01 15:38:12 +0200 |
| commit | 9acba3027f605a871df18138148ca3f5d4e4120f (patch) | |
| tree | 3c0a3389898874fa9fccfd705f905d4e7dbab43d /addons/base/static/src | |
| parent | eac94dd2c90c8d830cc353039198046ed7db0f04 (diff) | |
| parent | ec1316d3932aef6f81d02385b1a18febb1c5e07d (diff) | |
[ADD] preferences window
bzr revid: xmo@openerp.com-20110901133812-d4exisg1zlg1kgg1
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/js/chrome.js | 92 | ||||
| -rw-r--r-- | addons/base/static/src/xml/base.xml | 24 |
2 files changed, 115 insertions, 1 deletions
diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 720bc38d54a..ee20e393d67 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -576,6 +576,7 @@ openerp.base.Header = openerp.base.Widget.extend({ this.$content = $(QWeb.render("Header-content", {widget: this})); this.$content.appendTo(this.$element); this.$element.find(".logout").click(this.on_logout); + this.$element.find("a.preferences").click(this.on_preferences); return this.shortcut_load(); }, do_reset: function() { @@ -634,9 +635,98 @@ openerp.base.Header = openerp.base.Widget.extend({ }); }); }, + on_action: function(action) { }, - + on_preferences: function(){ + var self = this; + var action_manager = new openerp.base.ActionManager(this); + var dataset = new openerp.base.DataSet (this,'res.users',this.context); + dataset.call ('action_get','',function (result){ + self.rpc('/base/action/load', {action_id:result}, function(result){ + action_manager.do_action(_.extend(result['result'], { + res_id: self.session.uid, + res_model: 'res.users', + flags: { + action_buttons: false, + search_view: false, + sidebar: false, + views_switcher: false, + pager: false + } + })); + }); + }); + this.dialog = new openerp.base.Dialog(this,{ + modal: true, + title: 'Preferences', + width: 600, + height: 500, + buttons: { + "Change password": function(){ + self.change_password(); + }, + Cancel: function(){ + $(this).dialog('destroy'); + }, + Save: function(){ + var inner_viewmanager = action_manager.inner_viewmanager; + inner_viewmanager.views[inner_viewmanager.active_view].controller.do_save(function(){ + inner_viewmanager.start(); + }); + $(this).dialog('destroy') + } + } + }); + this.dialog.start().open(); + action_manager.appendTo(this.dialog); + action_manager.render(this.dialog); + }, + + change_password :function() { + var self = this; + this.dialog = new openerp.base.Dialog(this,{ + modal : true, + title : 'Change Password', + width : 'auto', + height : 'auto' + }); + this.dialog.start().open(); + this.dialog.$element.html(QWeb.render("Change_Pwd", self)); + this.dialog.$element.find("form[name=change_password_form]").validate({ + submitHandler: function (form) { + self.rpc("/base/session/change_password",{ + 'fields': $(form).serializeArray() + }, function(result) { + if (result.error) { + self.display_error(result); + return; + } + else { + if (result.new_password) { + self.session.password = result.new_password; + var session = new openerp.base.Session(self.session.server, self.session.port); + session.start(); + session.session_login(self.session.db, self.session.login, self.session.password) + } + } + self.notification.notify("Changed Password", "Password has been changed successfully"); + self.dialog.close(); + }); + } + }); +}, + display_error: function (error) { + return $('<div>').dialog({ + modal: true, + title: error.title, + buttons: { + Ok: function() { + $(this).dialog("close"); + } + } + }).html(error.error); + }, on_logout: function() { this.$element.find('.oe-shortcuts ul').empty(); } diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b308d1c7856..7e559a1f365 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -1363,4 +1363,28 @@ <td><button class="oe_export_button_export" id="delete_export_list">Delete</button></td> </tr> </t> +<t t-name="Change_Pwd"> + <form name="change_password_form" class="oe_forms" method="POST"> + <table align="center"> + <tr> + <td><label for="old_pwd">Old Password:</label></td> + <td><input type="password" name="old_pwd" + minlength="1" autofocus="autofocus"/></td> + </tr> + <tr> + <td><label for="new_password">New Password:</label></td> + <td><input type="password" name="new_password" + minlength="1" autofocus="autofocus"/></td> + </tr> + <tr> + <td><label for="confirm_pwd">Confirm Password:</label></td> + <td><input type="password" name="confirm_pwd" + minlength="1"/></td> + </tr> + <tr> + <td colspan="2" align="right"><input type="submit" value="Change Password"/></td> + </tr> + </table> + </form> +</t> </templates> |
