1
0
Fork 0
mirror of synced 2024-07-02 21:20:58 +12:00
appwrite/public/scripts/views/ui/highlight.js
2019-08-20 22:21:24 +03:00

40 lines
1.4 KiB
JavaScript

(function (window) {
window.ls.container.get('view').add({
selector: 'data-ui-highlight',
controller: function(element, expression, document) {
let check = function () {
let links = element.getElementsByTagName('a');
let selected = null;
let list = [];
for (let i = 0; i < links.length; i++) {
links[i].href = links[i].href || expression.parse(links[i].dataset['lsHref'] || '');
list.push(links[i]);
}
list.sort(function(a, b){
return a.pathname.length - b.pathname.length;
});
for (let i = 0; i < list.length; i++) {
if (list[i].pathname === window.location.pathname.substring(0, list[i].pathname.length)) {
list[i].classList.add('selected');
if(selected !== null) {
list[selected].classList.remove('selected');
}
selected = i;
}
else {
list[i].classList.remove('selected');
}
}
};
document.addEventListener('state-changed', check);
check();
}
});
})(window);