[pve-devel] [PATCH manager v2 2/2] add 'my settings' to top bar
Dominik Csapak
d.csapak at proxmox.com
Mon Oct 24 13:54:01 CEST 2016
this adds a menu right to the username 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>
---
changes to v1:
* moved menu from logout button to the username
www/css/ext6-pve.css | 5 ++
www/manager6/Makefile | 1 +
www/manager6/Workspace.js | 18 +++++-
www/manager6/window/Settings.js | 122 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 145 insertions(+), 1 deletion(-)
create mode 100644 www/manager6/window/Settings.js
diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index c050aca..172c667 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -431,3 +431,8 @@ div.right-aligned {
.x-treelist-row-over > * > .x-treelist-item-text{
color: #000;
}
+
+/* some icons have to be color manually */
+.black {
+ color: #000;
+}
diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 8005867..06fbd45 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 4769d66..87d3633 100644
--- a/www/manager6/Workspace.js
+++ b/www/manager6/Workspace.js
@@ -396,11 +396,27 @@ Ext.define('PVE.StdWorkspace', {
},
{
pack: 'end',
- margin: '0 10 0 0',
id: 'userinfo',
stateful: false
},
{
+ xtype: 'button',
+ margin: '0 10 0 0',
+ iconCls: 'fa black fa-caret-down',
+ menuAlign: 'tr-br?',
+ menu: {
+ showSeparator: false,
+ items: [{
+ text: gettext('My Settings'),
+ iconCls: 'fa fa-fw fa-gear',
+ handler: function() {
+ var win = Ext.create('PVE.window.Settings');
+ win.show();
+ }
+ }]
+ }
+ },
+ {
xtype: 'pveHelpButton',
hidden: false,
iconCls: 'fa fa-info-circle x-btn-icon-el-default-toolbar-small ',
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