handles session timeouts in modals (#1092)

This commit is contained in:
Kevin Papst
2019-09-10 17:07:34 +02:00
committed by GitHub
parent a651e55dc9
commit cdcf9eaf67
12 changed files with 86 additions and 14 deletions

View File

@@ -15,8 +15,8 @@ import KimaiPlugin from '../KimaiPlugin';
export default class KimaiThemeInitializer extends KimaiPlugin {
init() {
this.registerGlobalAjaxErrorHandler();
this.registerAutomaticAlertRemove('div.alert-success', 5000);
// activate the dropdown functionality
jQuery('.dropdown-toggle').dropdown();
// activate the tooltip functionality
@@ -25,6 +25,27 @@ export default class KimaiThemeInitializer extends KimaiPlugin {
this.getContainer().getPlugin('form').activateForm('.content-wrapper form', 'body');
}
/**
* redirect access denied / session timeouts to login page
*/
registerGlobalAjaxErrorHandler() {
const loginUrl = this.getContainer().getConfiguration().get('login');
const alert = this.getContainer().getPlugin('alert');
const translation = this.getContainer().getTranslation().get('login.required');
jQuery(document).ajaxError(function(event, jqxhr, settings, thrownError) {
if (jqxhr.status !== undefined && jqxhr.status === 403) {
const loginRequired = jqxhr.getResponseHeader('login-required');
if (loginRequired !== null) {
alert.question(translation, function (result) {
if (result === true) {
window.location.replace(loginUrl);
}
});
}
}
});
}
/**
* auto hide success messages, as they are just meant as user feedback and not as a permanent information
*