From 731b05f4a236cbdf7043464d5aa9eee1bee95114 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 11 Aug 2007 04:29:51 +0100 Subject: simplify getRelativeFeedId --- feedlist.js | 8 ++++++++ functions.js | 49 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/feedlist.js b/feedlist.js index 8c0420d0e..eca867870 100644 --- a/feedlist.js +++ b/feedlist.js @@ -208,6 +208,14 @@ function toggleCollapseCat(cat) { } */ + if (cat == 0) { + if (Element.visible("FCATLIST-" + cat)) { + setCookie("ttrss_vf_uclps", "1"); + } else { + setCookie("ttrss_vf_uclps", "0"); + } + } + Effect.toggle('FCATLIST-' + cat, 'blind', { duration: 0.5 }); new Ajax.Request("backend.php?op=feeds&subop=collapse&cid=" + diff --git a/functions.js b/functions.js index 0a65903c4..15ebdb816 100644 --- a/functions.js +++ b/functions.js @@ -1208,7 +1208,44 @@ function openExternalUrl(url) { } function getRelativeFeedId(list, id, direction, unread_only) { + var rows = list.getElementsByTagName("LI"); + var feeds = new Array(); + + for (var i = 0; i < rows.length; i++) { + if (rows[i].id.match("FEEDR-")) { + + if (Element.visible(rows[i]) && Element.visible(rows[i].parentNode)) { + + if (!unread_only || + (rows[i].className.match("Unread") || rows[i].id == "FEEDR-" + id)) { + feeds.push(rows[i].id.replace("FEEDR-", "")); + } + } + } + } + if (!id) { + if (direction == "next") { + return feeds.shift(); + } else { + return feeds.pop(); + } + } else { + if (direction == "next") { + var idx = feeds.indexOf(id); + if (idx != -1 && idx < feeds.length) { + return feeds[idx+1]; + } + } else { + var idx = feeds.indexOf(id); + if (idx > 0) { + return feeds[idx-1]; + } + } + + } + +/* if (!id) { if (direction == "next") { for (i = 0; i < list.childNodes.length; i++) { var child = list.childNodes[i]; @@ -1228,7 +1265,7 @@ function getRelativeFeedId(list, id, direction, unread_only) { if (direction == "prev") { for (i = list.childNodes.length-1; i >= 0; i--) { var child = list.childNodes[i]; - if (child.id == "feedCatHolder" && child.className != "invisible") { + if (child.id == "feedCatHolder" && Element.visible(child)) { if (child.firstChild) { var cr = getRelativeFeedId(child.firstChild, id, direction); if (cr) return cr; @@ -1286,8 +1323,8 @@ function getRelativeFeedId(list, id, direction, unread_only) { if (e) { if (!unread_only || (unread_only && e.className != "feed" && e.className.match("feed"))) { - if (e.parentNode.parentNode && e.parentNode.parentNode.className - != "invisible") { + if (e.parentNode.parentNode && + Element.visible(e.parentNode.parentNode)) { return e.id.replace("FEEDR-", ""); } } @@ -1326,15 +1363,15 @@ function getRelativeFeedId(list, id, direction, unread_only) { if (e) { if (!unread_only || (unread_only && e.className != "feed" && e.className.match("feed"))) { - if (e.parentNode.parentNode && e.parentNode.parentNode.className - != "invisible") { + if (e.parentNode.parentNode && + Element.visible(e.parentNode.parentNode)) { return e.id.replace("FEEDR-", ""); } } } } } - } + } */ } function showBlockElement(id, h_id) { -- cgit v1.2.3