129 lines
2.3 KiB
JavaScript
129 lines
2.3 KiB
JavaScript
|
Ext.define('PBS.LoginView', {
|
||
|
extend: 'Ext.container.Container',
|
||
|
xtype: 'loginview',
|
||
|
|
||
|
controller: {
|
||
|
xclass: 'Ext.app.ViewController',
|
||
|
|
||
|
submitForm: function() {
|
||
|
var me = this;
|
||
|
var view = me.getView();
|
||
|
var loginForm = me.lookupReference('loginForm');
|
||
|
|
||
|
if (loginForm.isValid()) {
|
||
|
if (loginForm.isVisible()) {
|
||
|
loginForm.mask(gettext('Please wait...'), 'x-mask-loading');
|
||
|
}
|
||
|
loginForm.submit({
|
||
|
success: function(form, action) {
|
||
|
// save login data and create cookie
|
||
|
PBS.Utils.updateLoginData(action.result.data);
|
||
|
PBS.app.changeView('mainview');
|
||
|
},
|
||
|
failure: function(form, action) {
|
||
|
loginForm.unmask();
|
||
|
Ext.MessageBox.alert(
|
||
|
gettext('Error'),
|
||
|
gettext('Login failed. Please try again')
|
||
|
);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
|
||
|
control: {
|
||
|
'button[reference=loginButton]': {
|
||
|
click: 'submitForm'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
plugins: 'viewport',
|
||
|
|
||
|
layout: {
|
||
|
type: 'border'
|
||
|
},
|
||
|
|
||
|
items: [
|
||
|
{
|
||
|
region: 'north',
|
||
|
xtype: 'container',
|
||
|
layout: {
|
||
|
type: 'hbox',
|
||
|
align: 'middle'
|
||
|
},
|
||
|
margin: '2 5 2 5',
|
||
|
height: 38,
|
||
|
items: [
|
||
|
{
|
||
|
xtype: 'proxmoxlogo'
|
||
|
},
|
||
|
{
|
||
|
xtype: 'versioninfo',
|
||
|
makeApiCall: false
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
region: 'center'
|
||
|
},
|
||
|
{
|
||
|
xtype: 'window',
|
||
|
closable: false,
|
||
|
resizable: false,
|
||
|
reference: 'loginwindow',
|
||
|
autoShow: true,
|
||
|
modal: true,
|
||
|
|
||
|
defaultFocus: 'usernameField',
|
||
|
|
||
|
layout: {
|
||
|
type: 'auto'
|
||
|
},
|
||
|
|
||
|
title: gettext('Proxmox Backup Server Login'),
|
||
|
|
||
|
items: [
|
||
|
{
|
||
|
xtype: 'form',
|
||
|
layout: {
|
||
|
type: 'form'
|
||
|
},
|
||
|
defaultButton: 'loginButton',
|
||
|
url: '/api2/extjs/access/ticket',
|
||
|
reference: 'loginForm',
|
||
|
|
||
|
fieldDefaults: {
|
||
|
labelAlign: 'right',
|
||
|
allowBlank: false
|
||
|
},
|
||
|
|
||
|
items: [
|
||
|
{
|
||
|
xtype: 'textfield',
|
||
|
fieldLabel: gettext('User name'),
|
||
|
name: 'username',
|
||
|
itemId: 'usernameField',
|
||
|
reference: 'usernameField'
|
||
|
},
|
||
|
{
|
||
|
xtype: 'textfield',
|
||
|
inputType: 'password',
|
||
|
fieldLabel: gettext('Password'),
|
||
|
name: 'password',
|
||
|
reference: 'passwordField'
|
||
|
}
|
||
|
],
|
||
|
buttons: [
|
||
|
{
|
||
|
text: gettext('Login'),
|
||
|
reference: 'loginButton',
|
||
|
formBind: true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
});
|