]> git.proxmox.com Git - pve-manager.git/blob - www/new/window/LoginWindow.js
imported from svn 'pve-manager/pve2'
[pve-manager.git] / www / new / window / LoginWindow.js
1 Ext.define('PVE.window.LoginWindow', {
2 extend: 'Ext.window.Window',
3 requires: ['PVE.form.RealmComboBox'],
4
5 // private
6 onLogon: function() {
7 var me = this;
8
9 var form = me.getComponent(0).getForm();
10
11 if(form.isValid()){
12 me.el.mask('Please wait...', 'x-mask-loading');
13
14 form.submit({
15 failure: function(f, resp){
16 me.el.unmask();
17 Ext.MessageBox.alert('Failure', "Login failed. Please try again", function() {
18 var uf = form.findField('username');
19 uf.focus(true);
20 });
21 },
22 success: function(f, resp){
23 me.el.unmask();
24
25 var handler = me.handler || Ext.emptyFn;
26 handler.call(me, resp.result.data);
27 me.close();
28 }
29 });
30 }
31 },
32
33 initComponent: function() {
34 var me = this;
35
36 Ext.apply(me, {
37 width: 400,
38 height: 160,
39 modal: true,
40 border: false,
41 draggable: true,
42 closable: false,
43 resizable: false,
44 layout: 'fit',
45 title: 'Proxmox VE Login',
46
47 items: [{
48 xtype: 'form',
49 frame: true,
50 url: '/api2/extjs/access/ticket',
51
52 fieldDefaults: {
53 labelWidth: 70,
54 labelAlign : 'right',
55 },
56
57 defaults: {
58 anchor: '-5',
59 allowBlank: false
60 },
61
62 items: [
63 {
64 xtype: 'textfield',
65 fieldLabel: 'User name',
66 name: 'username',
67 blankText: "Enter your user name",
68 listeners: {
69 render: function(f) {
70 f.focus(true);
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: 'Password',
88 name: 'password',
89 blankText:"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 buttons: [
104 {
105 text: 'Login',
106 handler: function(){
107 me.onLogon();
108 }
109 }
110 ]
111 }]
112 });
113
114 me.callParent();
115 }
116 });