//'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
};
}]);