blob: daccb2fa4d2c76138b81af99f2afb43034a39ab4 [file] [log] [blame]
Iftekharul Islam99d199f2017-03-24 15:28:25 -05001window.angular && (function (angular) {
2 'use strict';
3
4 angular
5 .module('app.common.directives')
6 .directive('appNavigation', function () {
7 return {
8 'restrict': 'E',
9 'templateUrl': 'common/directives/app-navigation.html',
10 'scope': {
11 'path': '=',
12 'showNavigation': '='
13 },
Iftekharul Islamcd789502017-04-19 14:37:55 -050014 'controller': ['$scope', '$location', 'dataService', function($scope, $location, dataService){
Iftekharul Islam34714092017-09-06 10:45:27 -050015 $scope.dataService = dataService;
Iftekharul Islam685fe752017-05-05 09:17:54 -050016 $scope.showSubMenu = false;
Iftekharul Islamcd789502017-04-19 14:37:55 -050017 $scope.change = function(firstLevel){
Iftekharul Islam685fe752017-05-05 09:17:54 -050018 if(firstLevel != $scope.firstLevel) {
19 $scope.firstLevel = firstLevel;
20 $scope.showSubMenu = true;
21 }else{
22 $scope.showSubMenu = !$scope.showSubMenu;
23 }
Michael Davis272297b2017-04-24 12:11:53 -050024 };
25 $scope.closeSubnav = function(){
Iftekharul Islam685fe752017-05-05 09:17:54 -050026 $scope.showSubMenu = false;
Michael Davis272297b2017-04-24 12:11:53 -050027 };
Iftekharul Islam34714092017-09-06 10:45:27 -050028 $scope.$watch('path', function(){
29 var urlRoot = $location.path().split("/")[1];
30 if(urlRoot != ""){
31 $scope.firstLevel = urlRoot;
32 }else{
33 $scope.firstLevel = 'overview';
34 }
35 $scope.showSubMenu = false;
36 });
Iftekharul Islam99d199f2017-03-24 15:28:25 -050037 $scope.$watch('showNavigation', function(){
38 var paddingTop = 0;
Iftekharul Islam685fe752017-05-05 09:17:54 -050039 var urlRoot = $location.path().split("/")[1];
40 if(urlRoot != ""){
41 $scope.firstLevel = urlRoot;
42 }else{
43 $scope.firstLevel = 'overview';
44 }
Iftekharul Islamcd789502017-04-19 14:37:55 -050045
Iftekharul Islam99d199f2017-03-24 15:28:25 -050046 if($scope.showNavigation){
47 paddingTop = document.getElementById('header__wrapper').offsetHeight;
48 }
49 dataService.bodyStyle = {'padding-top': paddingTop + 'px'};
50 $scope.navStyle = {'top': paddingTop + 'px'};
51 });
52 }]
53 };
54 });
55})(window.angular);