forked from I2P_Developers/i2p.i2p
71 lines
2.6 KiB
JavaScript
71 lines
2.6 KiB
JavaScript
function initTables() {
|
|
|
|
var hideableTables = document.querySelectorAll("table.tunnelConfig th");
|
|
|
|
hideableTables.forEach(function(configTable) {
|
|
function lookupTableRow() {
|
|
for (var i = 0, row; (row = configTable.offsetParent.rows[i]); i++) {
|
|
if (configTable.parentNode == row) {
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
configTable.onclick = function() {
|
|
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;
|
|
}
|
|
}
|
|
row.querySelectorAll("th").forEach(function(configRow) {
|
|
configRow.classList.toggle('tunnelConfigExpanded');
|
|
});
|
|
configTable.classList.remove('tunnelConfigExpanded');
|
|
} else {
|
|
row.style.visibility = "visible";
|
|
row.querySelectorAll("th").forEach(function(configRow) {
|
|
configRow.classList.add('tunnelConfigExpanded');
|
|
});
|
|
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";
|
|
row.querySelectorAll("th").forEach(function(configRow) {
|
|
configRow.classList.add('tunnelConfigExpanded');
|
|
});
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
initTables();
|
|
}, true);
|