forked from I2P_Developers/i2p.i2p
Re-organize the I2PTunnel UI and, in javascript-enabled browsers, turn advanced options onto accordion-menus.
This commit is contained in:
53
apps/routerconsole/jsp/js/tableSlider.js
Normal file
53
apps/routerconsole/jsp/js/tableSlider.js
Normal file
@ -0,0 +1,53 @@
|
||||
var hideableTables = document.querySelectorAll("table.tunnelConfig th");
|
||||
|
||||
hideableTables.forEach(function(configTable) {
|
||||
configTable.onclick = function() {
|
||||
function lookupTableRow() {
|
||||
for (var i = 0, row; (row = configTable.offsetParent.rows[i]); i++) {
|
||||
if (configTable.parentNode == row) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
var collapseme = false;
|
||||
for (var i = 0, row; (row = configTable.offsetParent.rows[i]); i++) {
|
||||
var l = lookupTableRow();
|
||||
if (i > l) {
|
||||
if (collapseme) {
|
||||
if (row.firstElementChild.localName != "th") {
|
||||
if (
|
||||
!row.firstElementChild.classList.contains("buttons")
|
||||
) {
|
||||
row.style.visibility = "collapse";
|
||||
}
|
||||
}
|
||||
} else if (row.style.visibility == "visible") {
|
||||
if (row.firstElementChild.localName != "th") {
|
||||
if (
|
||||
!row.firstElementChild.classList.contains("buttons")
|
||||
) {
|
||||
row.style.visibility = "collapse";
|
||||
collapseme = true;
|
||||
configTable.classList.remove("tunnelConfigExpanded");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
row.style.visibility = "visible";
|
||||
configTable.classList.add("tunnelConfigExpanded");
|
||||
}
|
||||
}
|
||||
}
|
||||
configTable.parentNode.style.visibility = "visible";
|
||||
};
|
||||
for (var i = 0, row; (row = configTable.offsetParent.rows[i]); i++) {
|
||||
if (row.firstElementChild.localName != "th") {
|
||||
if (!row.firstElementChild.classList.contains("buttons")) {
|
||||
row.style.visibility = "collapse";
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = 0, row; (row = hideableTables[0].offsetParent.rows[i]); i++) {
|
||||
row.style.visibility = "visible";
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user