From c6d26831fc235bbb221779c9495828cd399afb36 Mon Sep 17 00:00:00 2001 From: Ryan Hutchison Date: Sun, 23 Aug 2015 03:10:58 -0400 Subject: [PATCH] do not save state to previous (history) for routes marked ignoreState. --- modules/core/client/app/init.js | 12 +++++++----- modules/core/client/config/core.client.routes.js | 5 ++++- .../controllers/authentication.client.controller.js | 8 +++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/modules/core/client/app/init.js b/modules/core/client/app/init.js index 33470bae..b1c1ce08 100644 --- a/modules/core/client/app/init.js +++ b/modules/core/client/app/init.js @@ -35,11 +35,13 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(function ($ro // Record previous state $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) { - $state.previous = { - state: fromState, - params: fromParams, - href: $state.href(fromState, fromParams) - }; + if (!fromState.data || !fromState.data.ignoreState) { + $state.previous = { + state: fromState, + params: fromParams, + href: $state.href(fromState, fromParams) + }; + } }); }); diff --git a/modules/core/client/config/core.client.routes.js b/modules/core/client/config/core.client.routes.js index a0e383a6..340b0b64 100644 --- a/modules/core/client/config/core.client.routes.js +++ b/modules/core/client/config/core.client.routes.js @@ -15,7 +15,10 @@ angular.module('core').config(['$stateProvider', '$urlRouterProvider', }) .state('not-found', { url: '/not-found', - templateUrl: 'modules/core/client/views/404.client.view.html' + templateUrl: 'modules/core/client/views/404.client.view.html', + data: { + ignoreState: true + } }); } ]); diff --git a/modules/users/client/controllers/authentication.client.controller.js b/modules/users/client/controllers/authentication.client.controller.js index e0e29e91..2bcd6d0f 100644 --- a/modules/users/client/controllers/authentication.client.controller.js +++ b/modules/users/client/controllers/authentication.client.controller.js @@ -38,14 +38,12 @@ angular.module('users').controller('AuthenticationController', ['$scope', '$stat // OAuth provider request $scope.callOauthProvider = function (url) { - var redirect_to; - - if ($state.previous) { - redirect_to = $state.previous.href; + if ($state.previous && $state.previous.href) { + url += '?redirect_to=' + encodeURIComponent($state.previous.href); } // Effectively call OAuth authentication route: - $window.location.href = url + (redirect_to ? '?redirect_to=' + encodeURIComponent(redirect_to) : ''); + $window.location.href = url; }; } ]);