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:
parent
e24e1abc35
commit
ae6d2fe614
2 changed files with 46 additions and 39 deletions
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue