mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-05-29 18:43:34 +00:00
76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
Ext.define('PMG.Application', {
|
|
extend: 'Ext.app.Application',
|
|
|
|
name: 'PMG',
|
|
appProperty: 'app',
|
|
|
|
stores: [
|
|
'NavigationStore',
|
|
],
|
|
|
|
layout: 'fit',
|
|
|
|
realignWindows: function() {
|
|
var modalwindows = Ext.ComponentQuery.query('window[modal]');
|
|
Ext.Array.forEach(modalwindows, function(item) {
|
|
item.center();
|
|
});
|
|
},
|
|
|
|
logout: function() {
|
|
var me = this;
|
|
Proxmox.Utils.authClear();
|
|
me.changeView('loginview', true);
|
|
},
|
|
|
|
changeView: function(view, skipCheck) {
|
|
var me = this;
|
|
PMG.view = view;
|
|
me.view = view;
|
|
me.currentView.destroy();
|
|
me.currentView = Ext.create({
|
|
xtype: view,
|
|
targetview: me.targetview,
|
|
});
|
|
if (skipCheck !== true) {
|
|
Proxmox.Utils.checked_command(Ext.emptyFn); // display subscription status
|
|
}
|
|
},
|
|
|
|
view: 'loginview',
|
|
targetview: 'mainview',
|
|
|
|
launch: function() {
|
|
var me = this;
|
|
Ext.on('resize', me.realignWindows);
|
|
|
|
var provider = new Ext.state.LocalStorageProvider({ prefix: 'ext-pmg-' });
|
|
Ext.state.Manager.setProvider(provider);
|
|
|
|
// show login window if not loggedin
|
|
var loggedin = Proxmox.Utils.authOK();
|
|
var cookie = Ext.util.Cookies.get(Proxmox.Setup.auth_cookie_name);
|
|
var qs = Ext.Object.fromQueryString(location.search);
|
|
|
|
var pathname = location.pathname.replace(/\/+$/, '');
|
|
|
|
if (pathname === "/quarantine") {
|
|
me.targetview = 'quarantineview';
|
|
|
|
if (qs.ticket === undefined && loggedin) {
|
|
me.view = 'quarantineview';
|
|
}
|
|
} else if (loggedin && cookie.substr(0, 7) !== 'PMGQUAR') {
|
|
me.view = 'mainview';
|
|
}
|
|
|
|
PMG.view = me.view;
|
|
me.currentView = Ext.create({
|
|
xtype: me.view,
|
|
targetview: me.targetview,
|
|
});
|
|
},
|
|
});
|
|
|
|
Ext.application('PMG.Application');
|