summaryrefslogtreecommitdiff
path: root/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'javascript')
-rw-r--r--javascript/treeview.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/javascript/treeview.js b/javascript/treeview.js
index e9edbdd..5047966 100644
--- a/javascript/treeview.js
+++ b/javascript/treeview.js
@@ -72,12 +72,91 @@ function Toggle(node)
if (imgChild != null)
setImages(imgChild, "img/minus.png", "img/folder_open.png");
sibling.style.display = 'block';
+ updateCookieOnExpand( sibling.id );
}
// Collapse the branch if it IS visible
else
{
+ updateCookieOnCollapse( sibling.id );
if (imgChild != null)
setImages(imgChild, "img/plus.png", "img/folder_closed.png");
sibling.style.display = 'none';
}
}
+
+function updateCookieOnExpand( id ){
+ var openNodes = readCookie( cookieNameRec );
+ if (openNodes == null || openNodes == "")
+ openNodes = id;
+ else
+ openNodes += "," + id;
+ createCookie( cookieNameRec, openNodes, 14 );
+}
+
+function updateCookieOnCollapse( id ){
+ var openNodes = readCookie( cookieNameRec );
+ if (openNodes != null)
+ openNodes = openNodes.split(",");
+ else
+ openNodes = [];
+ for (var z=0; z<openNodes.length; z++){
+ if (openNodes[z] === sibling.id){
+ openNodes.splice(z,1);
+ break;
+ }
+ }
+ openNodes = openNodes.join(",");
+ createCookie( cookieNameRec, openNodes, 14 );
+}
+
+function openNodesOnPageLoad(){
+ var openNodes = readCookie( cookieNameRec );
+ if (openNodes != null && openNodes !== "")
+ openNodes = openNodes.split(",.,");
+ else
+ openNodes = [];
+ for (var z=0; z<openNodes.length; z++){
+ var ul = document.getElementById(openNodes[z]);
+ if (ul){
+ ul.style.display = 'block';
+ //var imgChild = findChildNode(ul.parentNode, "recording_imgs");
+ var imgChild = ul.parentNode.children[0].children[0];
+ if (imgChild != null)
+ setImages(imgChild, "img/minus.png", "img/folder_open.png");
+ }
+ }
+}
+
+var cookieNameRec = "VDR-Live-Recordings-Tree-Open-Nodes";
+
+window.addEvent('domready', function(){
+ openNodesOnPageLoad();
+});
+
+
+//The following cookie functions are taken from http://www.quirksmode.org/js/cookies.html
+
+function createCookie(name,value,days) {
+ if (days) {
+ var date = new Date();
+ date.setTime(date.getTime()+(days*24*60*60*1000));
+ var expires = "; expires="+date.toGMTString();
+ }
+ else var expires = "";
+ document.cookie = name+"="+value+expires+"; path=/";
+}
+
+function readCookie(name) {
+ var nameEQ = name + "=";
+ var ca = document.cookie.split(';');
+ for(var i=0;i < ca.length;i++) {
+ var c = ca[i];
+ while (c.charAt(0)==' ') c = c.substring(1,c.length);
+ if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+ }
+ return null;
+}
+
+function eraseCookie(name) {
+ createCookie(name,"",-1);
+}