Summary Table
| Categories |
Total Count |
| PII |
0 |
| URL |
0 |
| DNS |
0 |
| EKL |
0 |
| IP |
0 |
| PORT |
0 |
| VsID |
0 |
| CF |
0 |
| AI |
0 |
| VPD |
0 |
| PL |
0 |
| Other |
0 |
File Content
define(['angular', 'app'], function (angular, app) {
'use strict';
app.controller('SecondaryNavigationController', function ($scope, $sce, $q, $state, $filter, $injector, focusService) {
$scope.dataPointers = {};
$scope.listItemTemplateUrl = "modules/container/components/content/secondary-navigation/secondary-navigation-item_template.html";
var baseState = null;
$scope.noResultsMessage = null;
var selectedItem = null;
$scope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
$scope.secondaryNavTitle = toState.data.appletName;
$scope.headerButton = $state.current.data.headerButton;
var tokenizedStateName = toState.name.split(".");
var baseStateName = tokenizedStateName.slice(0, tokenizedStateName.indexOf("secondary-navigation") + 2).join(".");
var stateTester = new RegExp("^" + baseStateName + ".?[A-Za-z\-]*$");
var stateList = $state.get();
baseState = $state.get(baseStateName);
var validStateList = [];
function addListButtonClass(data){
var uniqueClass = data.sectionName.replace(/\s/g, "-").replace(/\//ig, "-").replace(/\(/g, "").replace(/\)/g, "").toLowerCase();
if(data.class) {
if(data.class.indexOf(uniqueClass) === -1) {
data.class = data.class + " " + uniqueClass;
}
} else {
data.class = uniqueClass;
}
}
stateList.forEach(function(state){
if(stateTester.test(state.name)) {
if(state.data.paramSections && state.data.baseStateName === state.name) {
state.data.paramSections.forEach(function(data){
data.stateName = data.stateName || state.name;
data.initialState = data.initialState || state.data.initialState;
addListButtonClass(data);
});
validStateList = validStateList.concat(state.data.paramSections);
} else if(state.data.sectionName) {
addListButtonClass(state.data);
state.data.stateName = state.name;
validStateList.push(state.data);
}
}
});
var filterPromise;
if(baseState.data.filter) {
filterPromise = $injector.invoke([baseState.data.filter, function (navFilter) {
return navFilter.filter(validStateList);
}]);
} else {
filterPromise = $q.when(validStateList);
}
filterPromise.then(function(validStateList){
$scope.dataPointers.list = $filter("orderBy")(validStateList, "sectionIndex");
});
});
$scope.headerButtonClick = function(){
var tmpFn = function(headerButtonService) {
headerButtonService.onClick().finally(function () {
focusService.focusElement('button[ng-click="headerButtonClick()"]');
});
};
if ($state.current && ( angular.toJson($state.current).indexOf("main.two-panel.secondary-navigation.personal-trackers.entry") > 0
|| angular.toJson($state.current).indexOf("main.two-panel.secondary-navigation.personal-trackers.notification") > 0 ) ) {
$state.go(selectedItem.stateName + (selectedItem.initialState ? ("." + selectedItem.initialState) : ""), {section: selectedItem.paramValue});
}
tmpFn.$inject = [$state.current.data.headerButton.service];
$injector.invoke(tmpFn);
};
$scope.isSelected = function(item) {
if(!item.paramValue) {
return $state.includes(item.stateName);
} else {
return $state.current.name.indexOf(item.stateName) !== -1 && $state.params.section === item.paramValue;
}
};
$scope.getDetails = function(item) {
selectedItem = item;
if(item.name) {
$state.go(item.name + (item.initialState ? ("." + item.initialState) : ""));
} else {
$state.go(item.stateName + (item.initialState ? ("." + item.initialState) : ""), {section: item.paramValue});
}
};
});
});