]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/window/LoginWindow.js
use activate instead of show
[pve-manager.git] / www / manager6 / window / LoginWindow.js
CommitLineData
88d5be7d
DM
1Ext.define('PVE.window.LoginWindow', {
2 extend: 'Ext.window.Window',
3
04237985
DM
4 controller: {
5
6 xclass: 'Ext.app.ViewController',
da096950
DM
7
8 onLogon: function() {
9 var me = this;
10
11 var form = this.lookupReference('loginForm');
65532495
DC
12 var unField = this.lookupReference('usernameField');
13 var saveunField = this.lookupReference('saveunField');
da096950
DM
14 var view = this.getView();
15
16 if(form.isValid()){
17 view.el.mask(gettext('Please wait...'), 'x-mask-loading');
18
65532495
DC
19 // set or clear username
20 var sp = Ext.state.Manager.getProvider();
21 if (saveunField.getValue() === true) {
22 sp.set(unField.getStateId(), unField.getValue());
23 } else {
24 sp.clear(unField.getStateId());
25 }
26 sp.set(saveunField.getStateId(), saveunField.getValue());
27
da096950
DM
28 form.submit({
29 failure: function(f, resp){
30 view.el.unmask();
31 var handler = function() {
32 var uf = me.lookupReference('usernameField');
33 uf.focus(true, true);
34 };
35
36 Ext.MessageBox.alert(gettext('Error'),
37 gettext("Login failed. Please try again"),
38 handler);
39 },
40 success: function(f, resp){
41 view.el.unmask();
42
43 var handler = view.handler || Ext.emptyFn;
44 handler.call(me, resp.result.data);
45 view.close();
46 }
47 });
48 }
49 },
50
51 control: {
52 'field[name=username]': {
53 specialkey: function(f, e) {
54 if (e.getKey() === e.ENTER) {
55 var pf = this.lookupReference('passwordField');
56 if (pf.getValue()) {
57 this.onLogon();
58 } else {
59 pf.focus(false);
60 }
61 }
62 }
63 },
64 'field[name=password]': {
65 specialkey: function(f, e) {
66 if (e.getKey() === e.ENTER) {
67 this.onLogon();
68 }
69 }
70 },
71 'field[name=realm]': {
72 change: function(f, value) {
73 var otp_field = this.lookupReference('otpField');
74 if (f.needOTP(value)) {
75 otp_field.setVisible(true);
76 otp_field.setDisabled(false);
77 } else {
78 otp_field.setVisible(false);
79 otp_field.setDisabled(true);
80 }
81 }
82 },
83 'field[name=lang]': {
84 change: function(f, value) {
85 var dt = Ext.Date.add(new Date(), Ext.Date.YEAR, 10);
86 Ext.util.Cookies.set('PVELangCookie', value, dt);
87 this.getView().mask(gettext('Please wait...'), 'x-mask-loading');
88 window.location.reload();
89 }
90 },
91 'button[reference=loginButton]': {
92 click: 'onLogon'
65532495
DC
93 },
94 '#': {
95 show: function() {
96 var sp = Ext.state.Manager.getProvider();
97 var checkboxField = this.lookupReference('saveunField');
98 var unField = this.lookupReference('usernameField');
99
100 var checked = sp.get(checkboxField.getStateId());
101 checkboxField.setValue(checked);
102
103 if(checked === true) {
104 var username = sp.get(unField.getStateId());
65532495
DC
105 unField.setValue(username);
106 var pwField = this.lookupReference('passwordField');
107 pwField.focus();
108 }
109 }
110 }
da096950 111 }
04237985 112 },
da096950 113
3262415b
DM
114 width: 400,
115
116 modal: true,
117
118 border: false,
119
120 draggable: true,
121
122 closable: false,
123
124 resizable: false,
125
126 layout: 'auto',
127
128 title: gettext('Proxmox VE Login'),
129
a765aeca
DC
130 defaultFocus: 'usernameField',
131
551456ff
DC
132 defaultButton: 'loginButton',
133
da096950
DM
134 items: [{
135 xtype: 'form',
136 layout: 'form',
137 url: '/api2/extjs/access/ticket',
138 reference: 'loginForm',
139
140 fieldDefaults: {
141 labelAlign: 'right',
142 allowBlank: false
143 },
144
145 items: [
146 {
147 xtype: 'textfield',
148 fieldLabel: gettext('User name'),
149 name: 'username',
a765aeca 150 itemId: 'usernameField',
da096950 151 reference: 'usernameField',
7e3e04e6 152 stateId: 'login-username'
da096950
DM
153 },
154 {
155 xtype: 'textfield',
156 inputType: 'password',
157 fieldLabel: gettext('Password'),
158 name: 'password',
7e3e04e6 159 reference: 'passwordField'
da096950
DM
160 },
161 {
162 xtype: 'textfield',
163 fieldLabel: gettext('OTP'),
164 name: 'otp',
165 reference: 'otpField',
166 allowBlank: false,
167 hidden: true
168 },
169 {
170 xtype: 'pveRealmComboBox',
171 name: 'realm'
172 },
173 {
174 xtype: 'pveLanguageSelector',
175 fieldLabel: gettext('Language'),
176 value: Ext.util.Cookies.get('PVELangCookie') || 'en',
177 name: 'lang',
178 reference: 'langField',
179 submitValue: false
180 }
181 ],
182 buttons: [
65532495
DC
183 {
184 xtype: 'checkbox',
185 fieldLabel: gettext('Save User name'),
186 name: 'saveusername',
187 reference: 'saveunField',
188 stateId: 'login-saveusername',
189 labelWidth: 'auto',
190 labelAlign: 'right',
191 submitValue: false
192 },
da096950
DM
193 {
194 text: gettext('Login'),
195 reference: 'loginButton'
196 }
197 ]
198 }]
199 });