class LoginScreen extends Component { constructor(config = {}) { config.tpl = `
`; super(config); var me = this; me._screen = app.loginScreen.create({ content: me.getEl(), }); let login = config.loginInfo; me._form = me.getEl().find('form'); if (login.username && login.ticket) { app.form.fillFromData(me._form, { username: login.username, password: login.ticket, }); me._autoLogin = true; } else if (PMG.Utils.authOK()) { app.form.fillFromData(me._form, { username: Proxmox.UserName, password: decodeURIComponent(PMG.Utils.getCookie('PMGAuthCookie')), }); me._autoLogin = true; } } open(onLogin) { var me = this; return new Promise(function(resolve, reject) { me._form.on('formajax:beforesend', (el, data, xhr) => { me.loader = app.dialog.preloader(); }); me._form.on('formajax:success', (el, data, xhr) => { let json; try { json = JSON.parse(xhr.responseText); } catch (err) { xhr.error = err; PMG.Utils.showError(xhr); return; } resolve(json); }); me._form.on('formajax:error', (el, data, xhr) => { me.loader.close(); PMG.Utils.showError(xhr); }); if (me._autoLogin) { delete me._autoLogin; me._screen.on('open', () => { me._form.trigger('submit'); }) } me._screen.open(); }); } close() { var me = this; if (me.loader) { me.loader.close(); } me._screen.close(false); } }