diff --git a/res/app/components/stf/nav-menu/nav-menu-directive.js b/res/app/components/stf/nav-menu/nav-menu-directive.js index 9284e307..6c0997c5 100644 --- a/res/app/components/stf/nav-menu/nav-menu-directive.js +++ b/res/app/components/stf/nav-menu/nav-menu-directive.js @@ -1,52 +1,59 @@ /* Based on https://ryankaskel.com/blog/2013/05/27/ - a-different-approach-to-angularjs-navigation-menus */ + a-different-approach-to-angularjs-navigation-menus */ module.exports = function ($location) { - return function (scope, element, attrs) { - var links = element.find('a') - var onClass = attrs.navMenu || 'current' - var routePattern - var link - var url - var currentLink - var urlMap = [] - var i + return { + restrict: 'EA', + scope: {}, + link: function (scope, element, attrs) { + var links = element.find('a') + var onClass = attrs.navMenu || 'current' + var routePattern + var link + var url + var currentLink + var urlMap = [] + var i - if (!$location.$$html5) { - routePattern = /\/#[^/]*/ - } + // TODO: links doesnt find 'a' + //console.log(links) - for (i = 0; i < links.length; i++) { - link = angular.element(links[i]) - url = link.attr('ng-href') - - if ($location.$$html5) { - urlMap.push({url: url, link: link}) - } else { - urlMap.push({url: url.replace(routePattern, ''), link: link}) + if (!$location.$$html5) { + routePattern = /\/#[^/]*/ } - } - function activateLink() { - var location = $location.path() - var pathLink = '' + for (i = 0; i < links.length; i++) { + link = angular.element(links[i]) + url = link.attr('ng-href') - for (i = 0; i < urlMap.length; ++i) { - if (urlMap[i].url == location) { - pathLink = urlMap[i].link + if ($location.$$html5) { + urlMap.push({url: url, link: link}) + } else { + urlMap.push({url: url.replace(routePattern, ''), link: link}) } } - if (pathLink) { - if (currentLink) { - currentLink.removeClass(onClass); - } - currentLink = pathLink; - currentLink.addClass(onClass); - } - } + function activateLink() { + var location = $location.path() + var pathLink = '' - activateLink() - scope.$on('$routeChangeStart', activateLink) + for (i = 0; i < urlMap.length; ++i) { + if (location.search(urlMap[i].url) !== -1) { + pathLink = urlMap[i].link + } + } + + if (pathLink) { + if (currentLink) { + currentLink.removeClass(onClass); + } + currentLink = pathLink; + currentLink.addClass(onClass); + } + } + + activateLink() + scope.$on('$routeChangeStart', activateLink) + } } } diff --git a/res/app/menu/menu.jade b/res/app/menu/menu.jade index 455c7cb9..70ad531e 100644 --- a/res/app/menu/menu.jade +++ b/res/app/menu/menu.jade @@ -3,7 +3,7 @@ a.stf-logo(href="/") STF 2 ul.nav.stf-nav(nav-menu='current') li(ng-cloak) - a(ng-href='/#!/control') + a(ng-href='/#!/control', ng-click='$event.preventDefault()').cursor span.fa.fa-mobile | {{ !$root.basicMode ? "Control" : '' | translate }} a(ng-href='/#!/devices')