UNPKG

thalassa-aqueduct

Version:

Dynamic haproxy load balancer and configuration. Part of Thalassa

52 lines (47 loc) 1.55 kB
/* * dropdownToggle - Provides dropdown menu functionality in place of bootstrap js * @restrict class or attribute * @example: <li class="dropdown"> <a class="dropdown-toggle">My Dropdown Menu</a> <ul class="dropdown-menu"> <li ng-repeat="choice in dropChoices"> <a ng-href="{{choice.href}}">{{choice.text}}</a> </li> </ul> </li> */ angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', '$location', function ($document, $location) { var openElement = null, closeMenu = angular.noop; return { restrict: 'CA', link: function(scope, element, attrs) { scope.$watch('$location.path', function() { closeMenu(); }); element.parent().bind('click', function() { closeMenu(); }); element.bind('click', function (event) { var elementWasOpen = (element === openElement); event.preventDefault(); event.stopPropagation(); if (!!openElement) { closeMenu(); } if (!elementWasOpen) { element.parent().addClass('open'); openElement = element; closeMenu = function (event) { if (event) { event.preventDefault(); event.stopPropagation(); } $document.unbind('click', closeMenu); element.parent().removeClass('open'); closeMenu = angular.noop; openElement = null; }; $document.bind('click', closeMenu); } }); } }; }]);