diff --git a/public/app/core/services/global_event_srv.ts b/public/app/core/services/global_event_srv.ts index 5cc21dc7b7a..4c5458aec2d 100644 --- a/public/app/core/services/global_event_srv.ts +++ b/public/app/core/services/global_event_srv.ts @@ -6,10 +6,13 @@ import appEvents from 'app/core/app_events'; // Good for communication react > angular and vice verse export class GlobalEventSrv { private appSubUrl; + private fullPageReloadRoutes; + /** @ngInject */ - constructor(private $location, private $timeout) { + constructor(private $location, private $timeout, private $window) { this.appSubUrl = config.appSubUrl; + this.fullPageReloadRoutes = ['/logout']; } // Angular's $location does not like and absolute urls @@ -26,9 +29,13 @@ export class GlobalEventSrv { init() { appEvents.on('location-change', payload => { const urlWithoutBase = this.stripBaseFromUrl(payload.href); + if (this.fullPageReloadRoutes.indexOf(urlWithoutBase) > -1) { + this.$window.location.href = payload.href; + return; + } this.$timeout(() => { // A hack to use timeout when we're changing things (in this case the url) from outside of Angular. - this.$location.url(urlWithoutBase); + this.$location.url(urlWithoutBase); }); }); }