mirror of https://github.com/sipwise/ngcp-csc.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.1 KiB
75 lines
2.1 KiB
// Attach JWT token to every request, and cleanup framework default params
|
|
Ext.Ajax.on("beforerequest", function(con, options) {
|
|
con.setUseDefaultXhrHeader(false);
|
|
con.setWithCredentials(true);
|
|
if (options.params && localStorage.getItem('jwt')) {
|
|
delete options.params.page;
|
|
delete options.params.start;
|
|
delete options.params.limit;
|
|
this.setDefaultHeaders({
|
|
'Authorization': 'Bearer ' + localStorage.getItem('jwt')
|
|
});
|
|
}
|
|
});
|
|
|
|
// in case of 401 or 403, user is redirected to login screen
|
|
Ext.Ajax.on("requestexception", function(con, response) {
|
|
var httpStatus = response.status;
|
|
switch (httpStatus) {
|
|
case 401:
|
|
case 403:
|
|
if (response.request.url !== '/login_jwt/') {
|
|
NgcpCsc.getApplication().showLogin();
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
|
|
Ext.application({
|
|
name: 'NgcpCsc',
|
|
|
|
extend: 'NgcpCsc.Application',
|
|
|
|
// Simply require all classes in the application. This is sufficient to ensure
|
|
// that all NgcpCsc classes will be included in the application build. If classes
|
|
// have specific requirements on each other, you may need to still require them
|
|
// explicitly.
|
|
//
|
|
requires: [
|
|
'NgcpCsc.*',
|
|
'Ext.window.Toast'
|
|
],
|
|
|
|
showLogin: function() {
|
|
var mainCmp = Ext.ComponentQuery.query('ngcp-main')[0];
|
|
if (mainCmp) {
|
|
mainCmp.destroy();
|
|
}
|
|
window.location.hash = '';
|
|
Ext.create({
|
|
xtype: 'ngcp-login'
|
|
});
|
|
localStorage.removeItem('jwt');
|
|
},
|
|
|
|
showMain: function() {
|
|
var me = this;
|
|
var winLogin = Ext.ComponentQuery.query('[name=loginWin]')[0];
|
|
var loginCont = Ext.ComponentQuery.query('[id=loginCont]')[0];
|
|
if (winLogin) {
|
|
winLogin.destroy();
|
|
}
|
|
if (loginCont) {
|
|
loginCont.destroy();
|
|
}
|
|
window.location.hash = '';
|
|
Ext.create({
|
|
xtype: 'ngcp-main'
|
|
});
|
|
Ext.Function.defer(function() {
|
|
me.redirectTo('inbox');
|
|
}, 100)
|
|
}
|
|
|
|
});
|