1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 19:42:01 +02:00

Fixed remote control menu highlighting.

This commit is contained in:
Gunther Brunner 2014-05-29 13:17:57 +09:00
parent e24e1abc35
commit ae6d2fe614
2 changed files with 46 additions and 39 deletions

View file

@ -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)
}
}
}

View file

@ -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')