]>
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',
11 isCreate: function (get) {
12 return !get('userid');
14 isSuperUser: function (get) {
15 return get('userid') === 'root@pam';
20 Ext
.define('PMG.UserEdit', {
21 extend
: 'Proxmox.window.Edit',
22 alias
: ['widget.pmgUserEdit'],
28 viewModel
: { type
: 'pmgUserViewModel' },
32 subject
: gettext('User'),
34 fieldDefaults
: { labelWidth
: 120 },
42 fieldLabel
: gettext('User name'),
45 submitValue
: '{isCreate}',
46 editable
: '{isCreate}'
51 inputType
: 'password',
52 fieldLabel
: gettext('Password'),
57 change: function(field
){
58 field
.next().validate();
60 blur: function(field
){
61 field
.next().validate();
64 hidden
: true, // avoid flicker
66 hidden
: '{!isCreate}',
67 disabled
: '{!isCreate}'
72 inputType
: 'password',
73 fieldLabel
: gettext('Confirm password'),
74 name
: 'verifypassword',
76 initialPassField
: 'password',
79 hidden
: true, // avoid flicker
81 hidden
: '{!isCreate}',
82 disabled
: '{!isCreate}'
86 xtype
: 'pmgRoleSelector',
89 fieldLabel
: gettext('Role'),
91 disabled
: '{isSuperUser}'
97 emptyText
: Proxmox
.Utils
.neverText
,
100 fieldLabel
: gettext('Expire'),
102 disabled
: '{isSuperUser}'
106 xtype
: 'proxmoxcheckbox',
107 fieldLabel
: gettext('Enabled'),
113 disabled
: '{isSuperUser}'
120 xtype
: 'proxmoxtextfield',
122 fieldLabel
: gettext('First Name'),
124 deleteEmpty
: '{!isCreate}'
128 xtype
: 'proxmoxtextfield',
130 fieldLabel
: gettext('Last Name'),
132 deleteEmpty
: '{!isCreate}'
136 xtype
: 'proxmoxtextfield',
138 fieldLabel
: gettext('E-Mail'),
139 vtype
: 'proxmoxMail',
141 deleteEmpty
: '{!isCreate}'
148 xtype
: 'proxmoxtextfield',
150 fieldLabel
: gettext('Comment'),
152 disabled
: '{isSuperUser}',
153 deleteEmpty
: '{!isCreate}'
157 xtype
: 'proxmoxtextfield',
159 fieldLabel
: gettext('Key IDs'),
161 deleteEmpty
: '{!isCreate}'
169 xclass
: 'Ext.app.ViewController',
171 initViewModel: function(viewModel
) {
173 var view
= this.getView();
174 var userid
= view
.getUserid();
176 viewModel
.set('userid', userid
);
180 getValues: function(dirtyOnly
) {
183 var values
= me
.callParent(arguments
);
185 // hack: ExtJS datefield does not submit 0, so we need to set that
186 if (!values
.expire
) {
191 values
.userid
= values
.username
+ '@pmg';
194 delete values
.username
;
196 if (!values
.password
) {
197 delete values
.password
;
203 setValues: function(values
) {
206 if (Ext
.isDefined(values
.expire
)) {
208 values
.expire
= new Date(values
.expire
* 1000);
210 // display 'never' instead of '1970-01-01'
211 values
.expire
= null;
215 me
.callParent([values
]);
219 url
: '/api2/extjs/access/users',
223 updateUserid: function(userid
) {
226 me
.create
= !userid
; // fixme
230 me
.url
= '/api2/extjs/access/users';
234 me
.url
= '/api2/extjs/access/users/' + userid
;