]>
git.proxmox.com Git - pmg-gui.git/blob - js/LoginView.js
1 Ext
.define('PMG.LoginView', {
2 extend
: 'Ext.container.Container',
6 xclass
: 'Ext.app.ViewController',
11 let realmfield
= me
.lookup('realmfield');
13 me
.lookup('quarantineButton').setVisible(!!Proxmox
.QuarantineLink
);
15 if (view
.targetview
!== 'quarantineview') {
19 realmfield
.setValue('quarantine');
21 // try autologin with quarantine ticket from URL
23 let qs
= Ext
.Object
.fromQueryString(location
.search
);
24 if (qs
.ticket
=== undefined) {
27 let ticket
= decodeURIComponent(qs
.ticket
);
28 let match
= ticket
.match(/^PMGQUAR:([^\s:]+):/);
32 let username
= match
[1];
33 let loginwin
= me
.lookup('loginwindow');
34 loginwin
.autoShow
= false;
35 loginwin
.setVisible(false);
36 realmfield
.setDisabled(true);
38 me
.lookup('usernameField').setValue(username
);
39 me
.lookup('passwordField').setValue(ticket
);
44 submitForm: function() {
46 let view
= me
.getView();
47 let loginForm
= me
.lookupReference('loginForm');
49 if (loginForm
.isValid()) {
50 if (loginForm
.isVisible()) {
51 loginForm
.mask(gettext('Please wait...'), 'x-mask-loading');
54 success: function(form
, action
) {
55 // save login data and create cookie
56 PMG
.Utils
.updateLoginData(action
.result
.data
);
57 PMG
.app
.changeView(view
.targetview
);
59 failure: function(form
, action
) {
63 gettext('Login failed. Please try again'),
70 openQuarantineLinkWindow: function() {
72 me
.lookup('loginwindow').setVisible(false);
73 Ext
.create('Proxmox.window.Edit', {
74 title
: gettext('Request Quarantine Link'),
75 url
: '/quarantine/sendlink',
77 submitText
: gettext('OK'),
81 xtype
: 'proxmoxtextfield',
83 fieldLabel
: gettext('Your E-Mail'),
88 me
.lookup('loginwindow').show(true);
96 change: function(f
, value
) {
97 let dt
= Ext
.Date
.add(new Date(), Ext
.Date
.YEAR
, 10);
98 Ext
.util
.Cookies
.set('PMGLangCookie', value
, dt
);
100 let loginwin
= this.lookupReference('loginwindow');
101 loginwin
.mask(gettext('Please wait...'), 'x-mask-loading');
102 window
.location
.reload();
105 'button[reference=quarantineButton]': {
106 click
: 'openQuarantineLinkWindow',
108 'button[reference=loginButton]': {
132 xtype
: 'proxmoxlogo',
135 xtype
: 'versioninfo',
147 reference
: 'loginwindow',
151 defaultFocus
: 'usernameField',
157 title
: gettext('Proxmox Mail Gateway Login'),
165 defaultButton
: 'loginButton',
166 url
: '/api2/extjs/access/ticket',
167 reference
: 'loginForm',
177 fieldLabel
: gettext('User name'),
179 itemId
: 'usernameField',
180 reference
: 'usernameField',
184 inputType
: 'password',
185 fieldLabel
: gettext('Password'),
187 reference
: 'passwordField',
190 xtype
: 'proxmoxLanguageSelector',
191 fieldLabel
: gettext('Language'),
192 value
: Ext
.util
.Cookies
.get('PMGLangCookie') || 'en',
197 xtype
: 'hiddenfield',
198 reference
: 'realmfield',
205 text
: gettext('Request Quarantine Link'),
206 reference
: 'quarantineButton',
209 text
: gettext('Login'),
210 reference
: 'loginButton',