]> git.proxmox.com Git - pve-manager.git/blob - www/manager/window/LoginWindow.js
remove useless require declarations
[pve-manager.git] / www / manager / window / LoginWindow.js
1 Ext.define('PVE.window.LoginWindow', {
2 extend: 'Ext.window.Window',
3
4 // private
5 onLogon: function() {
6 var me = this;
7
8 var form = me.getComponent(0).getForm();
9
10 if(form.isValid()){
11 me.el.mask(gettext('Please wait...'), 'x-mask-loading');
12
13 form.submit({
14 failure: function(f, resp){
15 me.el.unmask();
16 Ext.MessageBox.alert(gettext('Error'),
17 gettext("Login failed. Please try again"),
18 function() {
19 var uf = form.findField('username');
20 uf.focus(true, true);
21 });
22 },
23 success: function(f, resp){
24 me.el.unmask();
25
26 var handler = me.handler || Ext.emptyFn;
27 handler.call(me, resp.result.data);
28 me.close();
29 }
30 });
31 }
32 },
33
34 initComponent: function() {
35 var me = this;
36
37 Ext.apply(me, {
38 width: 400,
39 modal: true,
40 border: false,
41 draggable: true,
42 closable: false,
43 resizable: false,
44 layout: 'auto',
45 title: gettext('Proxmox VE Login'),
46
47 items: [{
48 xtype: 'form',
49 frame: true,
50 url: '/api2/extjs/access/ticket',
51
52 fieldDefaults: {
53 labelAlign: 'right'
54 },
55
56 defaults: {
57 anchor: '-5',
58 allowBlank: false
59 },
60
61 items: [
62 {
63 xtype: 'textfield',
64 fieldLabel: gettext('User name'),
65 name: 'username',
66 blankText: gettext("Enter your user name"),
67 listeners: {
68 afterrender: function(f) {
69 // Note: only works if we pass delay 1000
70 f.focus(true, 1000);
71 },
72 specialkey: function(f, e) {
73 if (e.getKey() === e.ENTER) {
74 var pf = me.query('textfield[name="password"]')[0];
75 if (pf.getValue()) {
76 me.onLogon();
77 } else {
78 pf.focus(false);
79 }
80 }
81 }
82 }
83 },
84 {
85 xtype: 'textfield',
86 inputType: 'password',
87 fieldLabel: gettext('Password'),
88 name: 'password',
89 blankText: gettext("Enter your password"),
90 listeners: {
91 specialkey: function(field, e) {
92 if (e.getKey() === e.ENTER) {
93 me.onLogon();
94 }
95 }
96 }
97 },
98 {
99 xtype: 'pveRealmComboBox',
100 name: 'realm'
101 },
102 {
103 xtype: 'pveLanguageSelector',
104 fieldLabel: gettext('Language'),
105 value: Ext.util.Cookies.get('PVELangCookie') || 'en',
106 name: 'lang',
107 submitValue: false,
108 listeners: {
109 change: function(t, value) {
110 var dt = Ext.Date.add(new Date(), Ext.Date.YEAR, 10);
111 Ext.util.Cookies.set('PVELangCookie', value, dt);
112 me.el.mask(gettext('Please wait...'), 'x-mask-loading');
113 window.location.reload();
114 }
115 }
116 }
117 ],
118 buttons: [
119 {
120 text: gettext('Login'),
121 handler: function(){
122 me.onLogon();
123 }
124 }
125 ]
126 }]
127 });
128
129 me.callParent();
130 }
131 });