pve-manager/www/manager6/window/Settings.js
Dominik Csapak ce11a8afd0 add 'my settings' to top bar
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@proxmox.com>
2016-10-28 09:46:25 +02:00

123 lines
2.3 KiB
JavaScript

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();
}
});