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(['app', 'angular'], function (app) {
app.directive('navBar', function (focusService, $timeout, $window, $state) {
return {
restrict: 'E',
transclude : true,
scope : {
'buttons' : '=',
'filter' : '=' //service, disable, defaults, model, callbacks (success, failure)
},
templateUrl: 'modules/ui-components/nav-bar/nav-bar_template.html',
link: function(scope, elem, attrs) {
scope.collapseThreshold = false;
scope.status = {
toggleOpen: false
};

var setupButtonDropdown = function () {
var leftBtnsNum = scope.buttons.left ? scope.buttons.left.length : 0,
rightBtnsNum = scope.buttons.right ? scope.buttons.right.length : 0,
isPersonalTracker = $state.current.name.indexOf("personal-trackers") >= 0;
// Only collapse for Personal Trackers
if ((leftBtnsNum >= 2 || rightBtnsNum >= 2 || (leftBtnsNum + rightBtnsNum >= 2)) && isPersonalTracker) {
scope.collapseThreshold = true;
}

scope.$watch('status.toggleOpen', function (newVal, oldVal) {
if (newVal === false && oldVal === true) {
$timeout(function () {
focusService.focusElement('button.dropdown-toggle');
}, 300);
}
}, true);
};

if(scope.buttons) {
setupButtonDropdown();
}

var unbindButtonWatch = scope.$watch('buttons', function (newVal, oldVal) {
if (newVal && newVal !== oldVal) {
setupButtonDropdown();
unbindButtonWatch();
}
}, true);

scope.collapseButtons = function () {
return $window.innerWidth < 768 && scope.collapseThreshold;
};

scope.showCollapseContent = function(){
if (!scope.isFilterCollapsed) {
return true;
} else {
return false;
}
};
},
controller: function ($scope) {
$scope.isFilterCollapsed = false;
$scope.toggleFilterState = function() {
$scope.isFilterCollapsed = !$scope.isFilterCollapsed;
};
}
};
});
});