summaryrefslogtreecommitdiff
path: root/javascript
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-01-06 21:48:26 +0000
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-01-06 21:48:26 +0000
commit46af948c42ad440f62ad931eef65e33c7e863ff2 (patch)
tree7d6ea83b9b3bdd020b6f888db9db4a85ec9e52fd /javascript
parent3155e0fa9b133aa5c296e324de2c1f657b1bd31d (diff)
downloadvdr-plugin-live-46af948c42ad440f62ad931eef65e33c7e863ff2.tar.gz
vdr-plugin-live-46af948c42ad440f62ad931eef65e33c7e863ff2.tar.bz2
Collapsable treeview of recordings working
Diffstat (limited to 'javascript')
-rw-r--r--javascript/treeview.js80
1 files changed, 50 insertions, 30 deletions
diff --git a/javascript/treeview.js b/javascript/treeview.js
index d0041a8..7adbc5b 100644
--- a/javascript/treeview.js
+++ b/javascript/treeview.js
@@ -4,43 +4,63 @@
// --- Adapted: Dieter Hametner --
// --- Version: 0.2 Date: 13-6-2001 --
// ---------------------------------------------
-function Toggle(node)
+
+function findSibling(node, name)
{
- // Unfold the branch if it isn't visible
- if (node.nextSibling.style.display == 'none')
- {
- // Change the image (if there is an image)
- if (node.childNodes.length > 0)
- {
- if (node.childNodes.item(0).nodeName == "IMG")
- {
- node.childNodes.item(0).src = "minus.png";
- }
- if (node.childNodes.item(1).nodeName == "IMG")
- {
- node.childNodes.item(1).src = "folder_open.png";
+ while ((node.nextSibling.nodeType != Node.ELEMENT_NODE)
+ || (node.nextSibling.nodeName != name)) {
+ node = node.nextSibling;
+ }
+ if (node.nextSibling.nodeName == name)
+ return node.nextSibling;
+
+ return null;
+}
+
+function findImageNode(node, className)
+{
+ for (var idx = 0; idx < node.childNodes.length; idx++) {
+ var n = node.childNodes.item(idx);
+ if ((n.nodeType == Node.ELEMENT_NODE) && (n.nodeName == "IMG")) {
+ attr = n.getAttributeNode("class");
+ if ((attr != null) && (attr.nodeValue == className)) {
+ return n;
}
}
+ }
+ return null;
+}
- node.nextSibling.style.display = 'block';
+function setImages(node, expand, folder)
+{
+ // Change the image (if there is an image)
+ if (node.childNodes.length > 0)
+ {
+ expandNode = findImageNode(node, "recording_expander");
+ if (expandNode != null)
+ expandNode.src = expand;
+ folderNode = findImageNode(node, "recording_folder");
+ if (folderNode != null)
+ folderNode.src = folder;
+ }
+}
+
+function Toggle(node)
+{
+ // Unfold the branch if it isn't visible
+ sibling = findSibling(node, "UL");
+ if (sibling == null)
+ return;
+
+ if (sibling.style.display == 'none')
+ {
+ setImages(node, "minus.png", "folder_open.png");
+ sibling.style.display = 'block';
}
// Collapse the branch if it IS visible
else
{
- // Change the image (if there is an image)
- if (node.childNodes.length > 0)
- {
- if (node.childNodes.item(0).nodeName == "IMG")
- {
- node.childNodes.item(0).src = "plus.png";
- }
- if (node.childNodes.item(1).nodeName == "IMG")
- {
- node.childNodes.item(1).src = "folder_closed.png";
- }
- }
-
- node.nextSibling.style.display = 'none';
+ setImages(node, "plus.png", "folder_closed.png");
+ sibling.style.display = 'none';
}
-
}