Scroll the user to the top of the page after a non-search state transition

This commit is contained in:
Michael Abashian
2017-07-19 16:59:42 -04:00
parent 1c5b0f023e
commit 54eaa6e8d1

View File

@@ -353,7 +353,30 @@ var awApp = angular.module('awApp', [
activateTab();
});
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState) {
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
if(toState === fromState) {
// check to see if something other than a search param has changed
let toParamsWithoutSearchKeys = {};
let fromParamsWithoutSearchKeys = {};
for (let key in toParams) {
if (toParams.hasOwnProperty(key) && !/_search/.test(key)) {
toParamsWithoutSearchKeys[key] = toParams[key];
}
}
for (let key in fromParams) {
if (fromParams.hasOwnProperty(key) && !/_search/.test(key)) {
fromParamsWithoutSearchKeys[key] = fromParams[key];
}
}
if(!_.isEqual(toParamsWithoutSearchKeys, fromParamsWithoutSearchKeys)) {
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
}
else {
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
if (fromState.name === 'license' && toParams.hasOwnProperty('licenseMissing')) {
$rootScope.licenseMissing = toParams.licenseMissing;