diff --git a/js/dos/ext/vis/docs/js/toggleTable.js b/js/dos/ext/vis/docs/js/toggleTable.js new file mode 100644 index 0000000..6fbe9f6 --- /dev/null +++ b/js/dos/ext/vis/docs/js/toggleTable.js @@ -0,0 +1,81 @@ +/** + * Created by Alex on 4/21/2015. + */ + +/** + * it works like this: + * + * the toggle row has the onclick with the table id, the parent name and this. The function will look through all trs with matching parent and check the class + * if hidden, it shows them, else it hides them. + * + * The caret is also flipped and the toggle class is changed. + * + * + barnesHut + barnesHut.gravitationalConstant + barnesHut.centralGravity + barnesHut.springLength + barnesHut.springConstant + barnesHut.damping + * + * + * @param tableId + * @param parent + * @param clickedRow + */ +function toggleTable(tableId, parent, clickedRow) { + var table = document.getElementById(tableId); + var wasOpen = false; + for (var i = 0, row; row = table.rows[i]; i++) { + if (row.getAttribute('parent') === parent) { + if (row.className.indexOf('hidden') !== -1) { + row.className = row.className.replace(' hidden','').replace('hidden',''); + row.className += ' visible'; + } + else { + row.className = row.className.replace(' visible','').replace('visible','');; + row.className += ' hidden'; + wasOpen = true; + } + } + } + + var spans; + if (wasOpen === true) { + spans = document.getElementsByClassName('caret'); + clickedRow.className += ' collapsible'; + } + else { + spans = document.getElementsByClassName('right-caret') + clickedRow.className = clickedRow.className.replace(' collapsible','').replace('collapsible','');; + } + + for (var i = 0; i < spans.length; i++) { + if (spans[i].getAttribute('parent') === parent) { + spans[i].className = wasOpen === true ? 'right-caret' : 'caret'; + } + } +} + +function toggleTab(tabThis) { + var parentNode = tabThis.parentNode; + var active = tabThis.className.indexOf('active') !== -1; + for (var i = 0; i < parentNode.children.length; i++) { + var child = parentNode.children[i]; + var targetNodeId = child.getAttribute('targetNode'); + if (targetNodeId) { + var targetNode = document.getElementById(child.getAttribute('targetNode')); + targetNode.className = targetNode.className.replace(' hidden', '').replace('hidden', '') + ' hidden'; + } + child.className = child.className.replace(' active','').replace('active',''); + } + + // activate the tab + tabThis.className += ' active'; + var ownTargetNodeId = tabThis.getAttribute('targetNode'); + if (ownTargetNodeId) { + var ownTargetNode = document.getElementById(ownTargetNodeId); + ownTargetNode.className = ownTargetNode.className.replace(' hidden','').replace('hidden',''); + } + +} \ No newline at end of file