summaryrefslogtreecommitdiff
path: root/www/lib/vis/docs/js/toggleTable.js
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2017-09-21 12:49:18 -0400
committerPliable Pixels <pliablepixels@gmail.com>2017-09-21 12:49:18 -0400
commitb28028ac4082842143b0f528d6bc539da6ccb419 (patch)
tree1e26ea969a781ed8e323fca4e3c76345113fc694 /www/lib/vis/docs/js/toggleTable.js
parent676270d21beed31d767a06c89522198c77d5d865 (diff)
mega changes, including updates and X
Diffstat (limited to 'www/lib/vis/docs/js/toggleTable.js')
-rw-r--r--www/lib/vis/docs/js/toggleTable.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/www/lib/vis/docs/js/toggleTable.js b/www/lib/vis/docs/js/toggleTable.js
new file mode 100644
index 00000000..6fbe9f6d
--- /dev/null
+++ b/www/lib/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.
+ *
+ *
+ <tr class='toggle collapsible' onclick="toggleTable('physicsTable','barnesHut', this);"><td><span parent="barnesHut" class="right-caret"></span> barnesHut</td></tr>
+ <tr parent="barnesHut" class="hidden"><td>barnesHut.gravitationalConstant</td></tr>
+ <tr parent="barnesHut" class="hidden"><td>barnesHut.centralGravity</td></tr>
+ <tr parent="barnesHut" class="hidden"><td>barnesHut.springLength</td></tr>
+ <tr parent="barnesHut" class="hidden"><td>barnesHut.springConstant</td></tr>
+ <tr parent="barnesHut" class="hidden"><td>barnesHut.damping</td></tr>
+ *
+ *
+ * @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