From d74eb8c1882b140b972cde24f1982f1316c6d7d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Wed, 6 Jul 2016 10:09:53 +0200 Subject: [PATCH] fix(login): fixed so that you get redirect back to the page or dashboard you where on when you clicked on sign in link, fixes #3312 --- public/app/core/components/sidemenu/sidemenu.html | 2 +- public/app/core/components/sidemenu/sidemenu.ts | 4 +++- public/app/core/controllers/login_ctrl.js | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/public/app/core/components/sidemenu/sidemenu.html b/public/app/core/components/sidemenu/sidemenu.html index 25aa38c45b8..1ee2776bfe9 100644 --- a/public/app/core/components/sidemenu/sidemenu.html +++ b/public/app/core/components/sidemenu/sidemenu.html @@ -45,7 +45,7 @@
  • - + Sign in diff --git a/public/app/core/components/sidemenu/sidemenu.ts b/public/app/core/components/sidemenu/sidemenu.ts index 30230586e78..a4b1f5d454a 100644 --- a/public/app/core/components/sidemenu/sidemenu.ts +++ b/public/app/core/components/sidemenu/sidemenu.ts @@ -12,6 +12,7 @@ export class SideMenuCtrl { mainLinks: any; orgMenu: any; appSubUrl: string; + loginUrl: string; /** @ngInject */ constructor(private $scope, private $location, private contextSrv, private backendSrv, private $element) { @@ -22,13 +23,14 @@ export class SideMenuCtrl { this.mainLinks = config.bootData.mainNavLinks; this.openUserDropdown(); + this.loginUrl = '/login?redirect=' + encodeURIComponent(this.$location.path()); this.$scope.$on('$routeChangeSuccess', () => { if (!this.contextSrv.pinned) { this.contextSrv.sidemenu = false; } + this.loginUrl = '/login?redirect=' + encodeURIComponent(this.$location.path()); }); - } getUrl(url) { diff --git a/public/app/core/controllers/login_ctrl.js b/public/app/core/controllers/login_ctrl.js index 45a47558ed7..28ae83f2a33 100644 --- a/public/app/core/controllers/login_ctrl.js +++ b/public/app/core/controllers/login_ctrl.js @@ -69,7 +69,12 @@ function (angular, coreModule, config) { } backendSrv.post('/login', $scope.formModel).then(function(result) { - if (result.redirectUrl) { + var params = $location.search(); + + if (params.redirect && params.redirect[0] === '/') { + window.location.href = config.appSubUrl + params.redirect; + } + else if (result.redirectUrl) { window.location.href = result.redirectUrl; } else { window.location.href = config.appSubUrl + '/';