]>
git.proxmox.com Git - pmg-gui.git/blob - js/UserEdit.js
1 Ext
.define('PMG.UserViewModel', {
2 extend
: 'Ext.app.ViewModel',
3 alias
: 'viewmodel.pmgUserViewModel',
10 isCreate: function (get) {
11 return !get('userid');
13 isSuperUser: function (get) {
14 return get('userid') === 'root@pam';
19 Ext
.define('PMG.UserEdit', {
20 extend
: 'Proxmox.window.Edit',
21 alias
: ['widget.pmgUserEdit'],
23 viewModel
: { type
: 'pmgUserViewModel' },
27 subject
: gettext('User'),
29 fieldDefaults
: { labelWidth
: 120 },
37 fieldLabel
: gettext('User name'),
40 submitValue
: '{isCreate}',
41 editable
: '{isCreate}'
46 inputType
: 'password',
47 fieldLabel
: gettext('Password'),
52 change: function(field
){
53 field
.next().validate();
55 blur: function(field
){
56 field
.next().validate();
59 hidden
: true, // avoid flicker
61 hidden
: '{!isCreate}',
62 disabled
: '{!isCreate}'
67 inputType
: 'password',
68 fieldLabel
: gettext('Confirm password'),
69 name
: 'verifypassword',
71 initialPassField
: 'password',
74 hidden
: true, // avoid flicker
76 hidden
: '{!isCreate}',
77 disabled
: '{!isCreate}'
81 xtype
: 'pmgRoleSelector',
84 fieldLabel
: gettext('Role'),
86 disabled
: '{isSuperUser}'
92 emptyText
: Proxmox
.Utils
.neverText
,
95 fieldLabel
: gettext('Expire'),
97 disabled
: '{isSuperUser}'
101 xtype
: 'proxmoxcheckbox',
102 fieldLabel
: gettext('Enabled'),
108 disabled
: '{isSuperUser}'
115 xtype
: 'proxmoxtextfield',
117 fieldLabel
: gettext('First Name'),
119 deleteEmpty
: '{!isCreate}'
123 xtype
: 'proxmoxtextfield',
125 fieldLabel
: gettext('Last Name'),
127 deleteEmpty
: '{!isCreate}'
131 xtype
: 'proxmoxtextfield',
133 fieldLabel
: gettext('E-Mail'),
134 vtype
: 'proxmoxMail',
136 deleteEmpty
: '{!isCreate}'
143 xtype
: 'proxmoxtextfield',
145 fieldLabel
: gettext('Comment'),
147 disabled
: '{isSuperUser}',
148 deleteEmpty
: '{!isCreate}'
152 xtype
: 'proxmoxtextfield',
154 fieldLabel
: gettext('Key IDs'),
156 deleteEmpty
: '{!isCreate}'
164 xclass
: 'Ext.app.ViewController',
166 initViewModel: function(viewModel
) {
168 var view
= this.getView();
169 var userid
= view
.userid
;
172 viewModel
.set('userid', userid
);
177 getValues: function(dirtyOnly
) {
180 var values
= me
.callParent(arguments
);
182 // hack: ExtJS datefield does not submit 0, so we need to set that
183 if (!values
.expire
) {
188 values
.userid
= values
.username
+ '@pmg';
191 delete values
.username
;
193 if (!values
.password
) {
194 delete values
.password
;
200 setValues: function(values
) {
203 if (Ext
.isDefined(values
.expire
)) {
205 values
.expire
= new Date(values
.expire
* 1000);
207 // display 'never' instead of '1970-01-01'
208 values
.expire
= null;
212 me
.callParent([values
]);
215 initComponent : function() {
218 var userid
= me
.userid
;
219 me
.create
= !userid
; // fixme
222 me
.url
= '/api2/extjs/access/users';
226 me
.url
= '/api2/extjs/access/users/' + userid
;