this adds a menu below 'logout' with an entry 'my settings' this opens a window with (for now) browser specific settings and a place to reset them
the plan would be to add password change, 2fa setup etc here one remark: the reset layout button reloads the window, to really apply the reset Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- www/manager6/Makefile | 1 + www/manager6/Workspace.js | 10 +++- www/manager6/window/Settings.js | 122 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 www/manager6/window/Settings.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 558ddfd..908097b 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -86,6 +86,7 @@ JSSRC= \ window/Restore.js \ window/SafeDestroy.js \ window/BackupConfig.js \ + window/Settings.js \ panel/NotesView.js \ grid/SelectFeature.js \ grid/ObjectGrid.js \ diff --git a/www/manager6/Workspace.js b/www/manager6/Workspace.js index 7f5a4c1..6903d8e 100644 --- a/www/manager6/Workspace.js +++ b/www/manager6/Workspace.js @@ -413,10 +413,18 @@ Ext.define('PVE.StdWorkspace', { { pack: 'end', margin: '0 5 0 0', - xtype: 'button', + xtype: 'splitbutton', baseCls: 'x-btn', iconCls: 'fa fa-sign-out', text: gettext("Logout"), + menu: [{ + text: gettext('My Settings'), + iconCls: 'fa fa-gear', + handler: function() { + var win = Ext.create('PVE.window.Settings'); + win.show(); + } + }], handler: function() { PVE.data.ResourceStore.loadData([], false); me.showLogin(); diff --git a/www/manager6/window/Settings.js b/www/manager6/window/Settings.js new file mode 100644 index 0000000..d7b37e3 --- /dev/null +++ b/www/manager6/window/Settings.js @@ -0,0 +1,122 @@ +Ext.define('PVE.window.Settings', { + extend: 'Ext.window.Window', + + width: '400px', + title: gettext('My Settings'), + iconCls: 'fa fa-gear', + modal: true, + bodyPadding: 10, + resizable: false, + + buttons: [{ + text: gettext('Close'), + handler: function() { + this.up('window').close(); + } + }], + + layout: { + type: 'vbox', + align: 'center' + }, + + controller: { + xclass: 'Ext.app.ViewController', + + control: { + '#': { + show: function() { + var me = this; + var sp = Ext.state.Manager.getProvider(); + + var username = sp.get('login-username') || PVE.Utils.noneText; + me.lookupReference('savedUserName').setValue(username); + } + }, + 'button[name=reset]': { + click: function () { + var blacklist = ['GuiCap', 'login-username']; + var sp = Ext.state.Manager.getProvider(); + var state; + for (state in sp.state) { + if (sp.state.hasOwnProperty(state)) { + if (blacklist.indexOf(state) !== -1) { + continue; + } + + sp.clear(state); + } + } + + window.location.reload(); + } + }, + 'button[name=clear-username]': { + click: function () { + var me = this; + var usernamefield = me.lookupReference('savedUserName'); + var sp = Ext.state.Manager.getProvider(); + + usernamefield.setValue(PVE.Utils.noneText); + sp.clear('login-username'); + } + } + } + }, + + items: [{ + xtype: 'fieldset', + width: '90%', + title: gettext('Browser Settings'), + layout: { + type: 'vbox', + align: 'right' + }, + defaults: { + width: '100%', + margin: '0 0 10 0' + }, + items: [ + { + xtype: 'displayfield', + fieldLabel: gettext('Saved User name'), + labelAlign: 'left', + labelWidth: '50%', + fieldStyle: { + 'text-align':'right' + }, + stateId: 'login-username', + reference: 'savedUserName', + value: '' + }, + { + xtype: 'button', + text: gettext('Clear User name'), + width: 'auto', + name: 'clear-username' + }, + { + xtype: 'box', + autoEl: { tag: 'hr'} + }, + { + xtype: 'displayfield', + fieldLabel: gettext('Layout'), + labelAlign: 'left', + labelWidth: '50%' + }, + { + xtype: 'button', + text: gettext('Reset Layout'), + width: 'auto', + name: 'reset' + } + ] + }], + + onShow: function() { + var me = this; + me.callParent(); + + } +}); -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel