]>
Commit | Line | Data |
---|---|---|
fe81f069 DM |
1 | Ext.define('PMG.window.LoginWindow', { |
2 | extend: 'Ext.window.Window', | |
3 | ||
4 | controller: { | |
5 | ||
6 | xclass: 'Ext.app.ViewController', | |
7 | ||
8 | onLogon: function() { | |
9 | var me = this; | |
10 | ||
11 | var form = this.lookupReference('loginForm'); | |
12 | var unField = this.lookupReference('usernameField'); | |
13 | var view = this.getView(); | |
14 | ||
15 | if(form.isValid()){ | |
16 | view.el.mask(gettext('Please wait...'), 'x-mask-loading'); | |
17 | ||
18 | form.submit({ | |
19 | failure: function(f, resp){ | |
20 | view.el.unmask(); | |
21 | var handler = function() { | |
22 | var uf = me.lookupReference('usernameField'); | |
23 | uf.focus(true, true); | |
24 | }; | |
25 | ||
26 | Ext.MessageBox.alert(gettext('Error'), | |
27 | gettext("Login failed. Please try again"), | |
28 | handler); | |
29 | }, | |
30 | success: function(f, resp){ | |
31 | view.el.unmask(); | |
32 | ||
33 | var handler = view.handler || Ext.emptyFn; | |
34 | handler.call(me, resp.result.data); | |
35 | view.close(); | |
36 | } | |
37 | }); | |
38 | } | |
39 | }, | |
40 | ||
41 | control: { | |
42 | 'field[name=username]': { | |
43 | specialkey: function(f, e) { | |
44 | if (e.getKey() === e.ENTER) { | |
45 | var pf = this.lookupReference('passwordField'); | |
46 | if (pf.getValue()) { | |
47 | this.onLogon(); | |
48 | } else { | |
49 | pf.focus(false); | |
50 | } | |
51 | } | |
52 | } | |
53 | }, | |
54 | 'field[name=password]': { | |
55 | specialkey: function(f, e) { | |
56 | if (e.getKey() === e.ENTER) { | |
57 | this.onLogon(); | |
58 | } | |
59 | } | |
60 | }, | |
61 | 'button[reference=loginButton]': { | |
62 | click: 'onLogon' | |
63 | }, | |
64 | '#': { | |
65 | show: function() { | |
66 | var unField = this.lookupReference('usernameField'); | |
67 | unField.focus(); | |
68 | } | |
69 | } | |
70 | } | |
71 | }, | |
72 | ||
73 | width: 400, | |
74 | ||
75 | modal: true, | |
76 | ||
77 | border: false, | |
78 | ||
79 | draggable: true, | |
80 | ||
81 | closable: false, | |
82 | ||
83 | resizable: false, | |
84 | ||
85 | layout: 'auto', | |
86 | ||
87 | title: gettext('Proxmox Mail Gateway Login'), | |
88 | ||
89 | defaultFocus: 'usernameField', | |
90 | ||
91 | items: [{ | |
92 | xtype: 'form', | |
93 | layout: 'form', | |
94 | url: '/api2/extjs/access/ticket', | |
95 | reference: 'loginForm', | |
96 | ||
97 | fieldDefaults: { | |
98 | labelAlign: 'right', | |
99 | allowBlank: false | |
100 | }, | |
101 | ||
102 | items: [ | |
103 | { | |
104 | xtype: 'textfield', | |
105 | fieldLabel: gettext('User name'), | |
106 | name: 'username', | |
107 | itemId: 'usernameField', | |
108 | reference: 'usernameField', | |
109 | stateId: 'login-username' | |
110 | }, | |
111 | { | |
112 | xtype: 'textfield', | |
113 | inputType: 'password', | |
114 | fieldLabel: gettext('Password'), | |
115 | name: 'password', | |
116 | reference: 'passwordField' | |
117 | }, | |
118 | { | |
119 | xtype: 'hiddenfield', | |
120 | name: 'realm', | |
121 | value: 'pam', | |
122 | } | |
123 | ], | |
124 | buttons: [ | |
125 | { | |
126 | text: gettext('Login'), | |
127 | reference: 'loginButton' | |
128 | } | |
129 | ] | |
130 | }] | |
131 | }); |