//'use strict'; angular.module('tt.ui.controls.menu', [ 'tt.services.pathService', 'tt.services.shoppingCart', 'tt.utils.locale', '$strap.directives' ]) .directive('mainmenu', function() { return { require: ['^navbar'], restrict: 'E', transclude: true, scope: false, templateUrl: 'tt/ui/controls/menu/mainmenu.tpl.html', replace: true }; }) .directive('menuItem', ['pathService', function(pathService) { return { require: ['^mainmenu'], restrict: 'E', transclude: true, scope: {name: '@', title: '@'}, templateUrl: 'tt/ui/controls/menu/menuitem.tpl.html', controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) { var url = $scope.name, title = $scope.title; this.getUrl = function(name) { return url + '/' + name; }; this.getName = function() { return url; }; this.getTitle = function() { return title; }; pathService.addParentTree($scope.name, $scope.title); }], replace: true }; }]) .directive('submenu', ['pathService', function(pathService) { var linkFn = function($scope, element, $attrs, $controller) { var $ctrl = $controller[0]; $scope.url = $ctrl.getUrl($scope.name); $scope.menu = $ctrl.getName(); pathService.addChildTree($scope.menu, $scope.name, $scope.title); }; linkFn.$inject = ['$scope', '$element', 'attrs', 'menuItem']; return { require: ['^menuItem'], restrict: 'E', transclude: true, scope: { name: '@', title: '@', type: '@', icon: '@' }, templateUrl: 'tt/ui/controls/menu/submenu.tpl.html', controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) { $scope.url = ''; $scope.menu = ''; }], link: linkFn, replace: true }; }]);