1. //'use strict';
  2.  
  3. angular.module('tt.ui.controls.menu', [
  4.     'tt.services.pathService',
  5.     'tt.services.shoppingCart',
  6.     'tt.utils.locale',
  7.     '$strap.directives'
  8. ])
  9.  
  10.     .directive('mainmenu', function() {
  11.         return {
  12.             require: ['^navbar'],
  13.             restrict: 'E',
  14.             transclude: true,
  15.             scope: false,
  16.             templateUrl: 'tt/ui/controls/menu/mainmenu.tpl.html',
  17.             replace: true
  18.         };
  19.     })
  20.            
  21.     .directive('menuItem', ['pathService', function(pathService) {
  22.         return {
  23.             require: ['^mainmenu'],
  24.             restrict: 'E',
  25.             transclude: true,
  26.             scope: {name: '@', title: '@'},
  27.             templateUrl: 'tt/ui/controls/menu/menuitem.tpl.html',
  28.             controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {
  29.                 var url = $scope.name, title = $scope.title;
  30.  
  31.                 this.getUrl = function(name) {
  32.                     return url + '/' + name;
  33.                 };
  34.                 this.getName = function() {
  35.                     return url;
  36.                 };
  37.                 this.getTitle = function() {
  38.                     return title;
  39.                 };
  40.                
  41.                 pathService.addParentTree($scope.name, $scope.title);
  42.             }],
  43.             replace: true
  44.         };
  45.     }])
  46.            
  47.     .directive('submenu', ['pathService', function(pathService) {
  48.         var linkFn = function($scope, element, $attrs, $controller) {
  49.             var $ctrl = $controller[0];
  50.            
  51.             $scope.url = $ctrl.getUrl($scope.name);
  52.             $scope.menu = $ctrl.getName();
  53.            
  54.             pathService.addChildTree($scope.menu, $scope.name, $scope.title);
  55.         };
  56.         linkFn.$inject = ['$scope', '$element', 'attrs', 'menuItem'];
  57.         return {
  58.             require: ['^menuItem'],
  59.             restrict: 'E',
  60.             transclude: true,
  61.             scope: { name: '@', title: '@', type: '@', icon: '@' },
  62.             templateUrl: 'tt/ui/controls/menu/submenu.tpl.html',
  63.             controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {
  64.                 $scope.url = '';
  65.                 $scope.menu = '';
  66.             }],
  67.             link: linkFn,
  68.             replace: true
  69.         };
  70.     }]);