[pve-devel] [RFC manager 2/2] add 'my settings' to logout button
Dominik Csapak
d.csapak at proxmox.com
Wed Oct 12 11:51:27 CEST 2016
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.csapak at 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
More information about the pve-devel
mailing list