harbor/static/ng/resources/js/layout/navigation/navigation-details.directive.js

68 lines
1.6 KiB
JavaScript
Raw Normal View History

(function() {
'use strict';
angular
.module('harbor.layout.navigation')
.directive('navigationDetails', navigationDetails);
2016-05-01 19:46:50 +02:00
NavigationDetailsController.$inject = ['$window', '$location', '$scope'];
2016-05-01 19:46:50 +02:00
function NavigationDetailsController($window, $location, $scope) {
var vm = this;
2016-05-01 19:46:50 +02:00
$scope.$watch('vm.selectedProject', function(current, origin) {
if(current) {
vm.projectId = current.ProjectId;
}
});
vm.url = $location.url();
vm.clickTab = clickTab;
2016-05-01 19:46:50 +02:00
function clickTab() {
console.log("triggered clickTab of Controller.");
2016-04-19 19:20:07 +02:00
vm.isOpen = false;
2016-05-01 19:46:50 +02:00
$scope.$apply();
}
}
function navigationDetails() {
var directive = {
restrict: 'E',
templateUrl: '/static/ng/resources/js/layout/navigation/navigation-details.directive.html',
link: link,
scope: {
2016-04-27 12:29:55 +02:00
'isOpen': '=',
2016-05-01 19:46:50 +02:00
'selectedProject': '='
},
replace: true,
controller: NavigationDetailsController,
controllerAs: 'vm',
bindToController: true
}
return directive;
function link(scope, element, attrs, ctrl) {
2016-05-04 12:42:05 +02:00
var visited = ctrl.url.substring(1);
if(visited.indexOf('?') >= 0) {
visited = ctrl.url.substring(1, ctrl.url.indexOf('?') - 1);
}
2016-05-13 12:48:06 +02:00
element.find('a[tag*="' + visited + '"]').addClass('active');
element.on('click', click);
function click(event) {
element.find('a').removeClass('active');
$(event.target).not('span').addClass('active');
2016-04-28 19:36:39 +02:00
ctrl.clickTab();
}
}
}
})();