1
0
Fork 0
mirror of synced 2024-07-01 04:30:59 +12:00
appwrite/public/scripts/views/ui/highlight.js

54 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-06-06 20:40:33 +12:00
(function (window) {
window.ls.container.get("view").add({
selector: "data-ui-highlight",
2020-06-06 20:40:33 +12:00
controller: function (element, expression, document) {
let check = function () {
let links = element.getElementsByTagName("a");
let selected = null;
let list = [];
2020-06-06 20:40:33 +12:00
for (let i = 0; i < links.length; i++) {
list.push(links[i]);
}
2019-05-09 18:54:39 +12:00
2020-06-06 20:40:33 +12:00
list.sort(function (a, b) {
return a.pathname.length - b.pathname.length;
});
2019-05-09 18:54:39 +12:00
2020-06-06 20:40:33 +12:00
if(selected && list[selected].dataset["selected"]) {
let parent = element.querySelector("a[href='"+list[selected].dataset["selected"]+"']");
if(parent) {
parent.classList.remove("selected");
}
}
for (let i = 0; i < list.length; i++) {
2020-06-06 20:40:33 +12:00
let path = list[i].pathname;
2020-06-06 18:48:52 +12:00
2020-06-06 20:40:33 +12:00
if (path === window.location.pathname.substring(0, path.length)) {
list[i].classList.add("selected");
2019-05-09 18:54:39 +12:00
if (selected !== null) {
2020-06-06 20:40:33 +12:00
list[selected].classList.remove("selected");
}
selected = i;
} else {
list[i].classList.remove("selected");
}
}
2019-05-09 18:54:39 +12:00
2020-06-06 20:40:33 +12:00
if(selected && list[selected].dataset["selected"]) {
let parent = element.querySelector("a[href='"+list[selected].dataset["selected"]+"']");
2019-05-09 18:54:39 +12:00
2020-06-06 20:40:33 +12:00
if(parent) {
parent.classList.add("selected");
}
}
};
document.addEventListener("state-changed", check);
check();
2020-06-06 20:40:33 +12:00
},
});
2020-06-06 20:40:33 +12:00
})(window);