summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js
blob: 64da0a493aeb1e7809027d01d114d606d3122975 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
appDS2.directive('leftMenuEcomp', function () {
   	/*
   	 * Custom version of b2b-left-navigation directive:
   	 * 1. Make parent menu a link if no child menus.
   	 * 2. Add unique IDs to all items.
   	 * 3. Hide icon if no child menus.
   	 * 4. Arrow toggle button.
   	 * 5. Adjust the page on collapse/expand.
   	 */
    return {
        restrict: 'EA',
        templateUrl: 'app/fusion/scripts/DS2-view-models/b2b-leftnav-ext.html',
        scope: {
            menuData: '='
        },
        link: function (scope, element, attrs, ctrl) {
            scope.idx = -1;
            scope.itemIdx = -1;
            scope.navIdx = -1;
            /*assuming menu is expanded when page loads*/
            scope.showmenu=true;
            scope.leftMenuClass= ""; 
            scope.leftMenuArrowClass="leftmenu-arrow-expand";
            scope.toggleNav = function (val,link,menuStatus) {
            	
            	if(!menuStatus){
            		scope.toggleDrawer(menuStatus);
            		return;
            	}
            	if(link!=null && link!=''){
            		location.href = link;
            		return;
            	}
           		if (val === scope.idx) {
                    scope.idx = -1;
                    return;
                }
                scope.idx = val;
            };
            scope.toggleDrawer = function(menuStatus){
            	scope.idx=-1; /*hide the sub menus*/
        		if(menuStatus){     
        			//Collapse Menu
        			scope.showmenu=false;
        			scope.leftMenuClass = "left-menu-collapsed";
        			scope.leftMenuArrowClass="leftmenu-arrow-collapse";
        			document.getElementById('page-content').style.marginLeft = "50px";
        		}else{
        			//Expand Menu
        			scope.showmenu=true;
        			scope.leftMenuClass = "";
        			scope.leftMenuArrowClass="leftmenu-arrow-expand";
        			document.getElementById('page-content').style.marginLeft = "250px";           	
        		}
        			
            };
            scope.liveLink = function (evt, val1, val2) {
                scope.itemIdx = val1;
                scope.navIdx = val2;
                evt.stopPropagation();
            };
        }
    };
});