]>
git.proxmox.com Git - pmg-gui.git/blob - js/LoginView.js
7de8082687ce77e2b1dee1bb16a457a896e820ba
1 Ext
.define('PMG.LoginView', {
2 extend
: 'Ext.container.Container',
6 xclass
: 'Ext.app.ViewController',
10 var view
= me
.getView();
12 var realmfield
= me
.lookup('realmfield');
14 if (view
.targetview
!== 'quarantineview') return;
16 realmfield
.setValue('quarantine');
18 // try autologin with quarantine ticket from URL
20 var loginForm
= this.lookupReference('loginForm');
22 var qs
= Ext
.Object
.fromQueryString(location
.search
);
23 if (qs
.ticket
== undefined) { return; }
24 var ticket
= decodeURIComponent(qs
.ticket
);
25 var match
= ticket
.match(/^PMGQUAR:([^\s\:]+):/);
26 if (!match
) { return; }
27 var username
= match
[1];
28 var loginwin
= me
.lookup('loginwindow');
29 loginwin
.autoShow
= false;
30 loginwin
.setVisible(false);
31 realmfield
.setDisabled(true);
33 me
.lookup('usernameField').setValue(username
);
34 me
.lookup('passwordField').setValue(ticket
);
39 submitForm: function() {
41 var view
= me
.getView();
42 var loginForm
= me
.lookupReference('loginForm');
44 if (loginForm
.isValid()) {
45 if (loginForm
.isVisible()) {
46 loginForm
.mask(gettext('Please wait...'), 'x-mask-loading');
49 success: function(form
, action
) {
50 // save login data and create cookie
51 PMG
.Utils
.updateLoginData(action
.result
.data
);
52 PMG
.app
.changeView(view
.targetview
);
54 failure: function(form
, action
) {
58 gettext('Login failed. Please try again')
67 change: function(f
, value
) {
68 var dt
= Ext
.Date
.add(new Date(), Ext
.Date
.YEAR
, 10);
69 Ext
.util
.Cookies
.set('PMGLangCookie', value
, dt
);
71 var loginwin
= this.lookupReference('loginwindow');
72 loginwin
.mask(gettext('Please wait...'), 'x-mask-loading');
73 window
.location
.reload();
76 'button[reference=loginButton]': {
103 xtype
: 'versioninfo',
115 reference
: 'loginwindow',
119 defaultFocus
: 'usernameField',
125 title
: gettext('Proxmox Mail Gateway Login'),
133 defaultButton
: 'loginButton',
134 url
: '/api2/extjs/access/ticket',
135 reference
: 'loginForm',
145 fieldLabel
: gettext('User name'),
147 itemId
: 'usernameField',
148 reference
: 'usernameField'
152 inputType
: 'password',
153 fieldLabel
: gettext('Password'),
155 reference
: 'passwordField'
158 xtype
: 'proxmoxLanguageSelector',
159 fieldLabel
: gettext('Language'),
160 value
: Ext
.util
.Cookies
.get('PMGLangCookie') || 'en',
165 xtype
: 'hiddenfield',
166 reference
: 'realmfield',
173 text
: gettext('Login'),
174 reference
: 'loginButton',