diff options
-rw-r--r-- | feedlist.js | 2 | ||||
-rw-r--r-- | functions.js | 226 | ||||
-rw-r--r-- | functions.php | 49 | ||||
-rw-r--r-- | tt-rss.js | 8 |
4 files changed, 114 insertions, 171 deletions
diff --git a/feedlist.js b/feedlist.js index 62fceca37..562b2ad9b 100644 --- a/feedlist.js +++ b/feedlist.js @@ -332,7 +332,7 @@ function feedlist_init() { debug("in feedlist init"); - hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); + hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); document.onkeydown = hotkey_handler; document.onmousemove = mouse_move_handler; document.onmousedown = mouse_down_handler; diff --git a/functions.js b/functions.js index a5c689b10..a27336d6d 100644 --- a/functions.js +++ b/functions.js @@ -205,34 +205,6 @@ function printLockingError() { notify_info("Please wait until operation finishes."); } -function cleanSelectedList(element) { - var content = document.getElementById(element); - - if (!document.getElementById("feedCatHolder")) { - for (i = 0; i < content.childNodes.length; i++) { - var child = content.childNodes[i]; - try { - child.className = child.className.replace("Selected", ""); - } catch (e) { - // - } - } - } else { - for (i = 0; i < content.childNodes.length; i++) { - var child = content.childNodes[i]; - if (child.id == "feedCatHolder") { - debug(child.id); - var fcat = child.lastChild; - for (j = 0; j < fcat.childNodes.length; j++) { - var feed = fcat.childNodes[j]; - feed.className = feed.className.replace("Selected", ""); - } - } - } - } -} - - function cleanSelected(element) { var content = document.getElementById(element); @@ -585,7 +557,7 @@ function parse_counters(reply, scheduled_call) { } } - hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); + hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); var feeds_stored = number_of_feeds; @@ -650,7 +622,7 @@ function parse_counters_reply(transport, scheduled_call) { resort_feedlist(); } - hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); + hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); } @@ -674,7 +646,7 @@ function get_feed_unread(id) { } } -function get_feed_entry_unread(doc, elem) { +function get_feed_entry_unread(elem) { var id = elem.id.replace("FEEDR-", ""); @@ -683,28 +655,28 @@ function get_feed_entry_unread(doc, elem) { } try { - return parseInt(doc.getElementById("FEEDU-" + id).innerHTML); + return parseInt(document.getElementById("FEEDU-" + id).innerHTML); } catch (e) { return -1; } } -function resort_category(doc, node) { +function resort_category(node) { debug("resort_category: " + node); if (node.hasChildNodes() && node.firstChild.nextSibling != false) { for (i = 0; i < node.childNodes.length; i++) { if (node.childNodes[i].nodeName != "LI") { continue; } - if (get_feed_entry_unread(doc, node.childNodes[i]) < 0) { + if (get_feed_entry_unread(node.childNodes[i]) < 0) { continue; } for (j = i+1; j < node.childNodes.length; j++) { if (node.childNodes[j].nodeName != "LI") { continue; } - var tmp_val = get_feed_entry_unread(doc, node.childNodes[i]); - var cur_val = get_feed_entry_unread(doc, node.childNodes[j]); + var tmp_val = get_feed_entry_unread(node.childNodes[i]); + var cur_val = get_feed_entry_unread(node.childNodes[j]); if (cur_val > tmp_val) { tempnode_i = node.childNodes[i].cloneNode(true); @@ -722,24 +694,18 @@ function resort_category(doc, node) { function resort_feedlist() { debug("resort_feedlist"); - var fd = document; - - if (fd.getElementById("feedCatHolder")) { + if (document.getElementById("FCATLIST--1")) { - var feeds = fd.getElementById("feedList"); - var child = feeds.firstChild; + var lists = document.getElementsByTagName("UL"); - while (child) { - - if (child.id == "feedCatHolder") { - resort_category(fd, child.firstChild); + for (var i = 0; i < lists.length; i++) { + if (lists[i].id && lists[i].id.match("FCATLIST-")) { + resort_category(lists[i]); } - - child = child.nextSibling; } } else { - resort_category(fd, fd.getElementById("feedList")); + resort_category(document.getElementById("feedList")); } } @@ -777,107 +743,123 @@ function resort_feedlist() { } -function hideOrShowFeeds(doc, hide) { +function hideOrShowFeeds(hide) { - debug("hideOrShowFeeds: " + doc + ", " + hide); - - var fd = document; + try { - var list = fd.getElementById("feedList"); + debug("hideOrShowFeeds: " + hide); - if (fd.getElementById("feedCatHolder")) { + if (document.getElementById("FCATLIST--1")) { - var feeds = fd.getElementById("feedList"); - var child = feeds.firstChild; + var lists = document.getElementsByTagName("UL"); - while (child) { + for (var i = 0; i < lists.length; i++) { + if (lists[i].id && lists[i].id.match("FCATLIST-")) { - if (child.id == "feedCatHolder") { - hideOrShowFeedsCategory(fd, child.firstChild, hide, child.previousSibling); + var id = lists[i].id.replace("FCATLIST-", ""); + hideOrShowFeedsCategory(id, hide); } - - child = child.nextSibling; } } else { - hideOrShowFeedsCategory(fd, fd.getElementById("feedList"), hide); + hideOrShowFeedsCategory(null, hide); } -} - -function hideOrShowFeedsCategory(doc, node, hide, cat_node) { -// debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")"); - - var cat_unread = 0; - - if (!node) { - debug("hideOrShowFeeds: passed node is null, aborting"); - return; + } catch (e) { + exception_error("hideOrShowFeeds", e); } +} -// debug("cat: " + node.id); +function hideOrShowFeedsCategory(id, hide) { - if (node.hasChildNodes() && node.firstChild.nextSibling != false) { - for (i = 0; i < node.childNodes.length; i++) { - if (node.childNodes[i].nodeName != "LI") { continue; } + try { + + var node = null; + var cat_node = null; - if (node.childNodes[i].style != undefined) { + if (id) { + node = document.getElementById("FCATLIST-" + id); + cat_node = document.getElementById("FCAT-" + id); + } else { + node = document.getElementById("feedList"); // no categories + } - var has_unread = (node.childNodes[i].className != "feed" && - node.childNodes[i].className != "label" && - !(!getInitParam("hide_read_shows_special") && - node.childNodes[i].className == "virt") && - node.childNodes[i].className != "error" && - node.childNodes[i].className != "tag"); + // debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")"); -// debug(node.childNodes[i].id + " --> " + has_unread); + var cat_unread = 0; - if (hide && !has_unread) { - //node.childNodes[i].style.display = "none"; - var id = node.childNodes[i].id; - Effect.Fade(node.childNodes[i], {duration : 0.3, - queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }}); - } + if (!node) { + debug("hideOrShowFeeds: passed node is null, aborting"); + return; + } - if (!hide) { - node.childNodes[i].style.display = "list-item"; - //Effect.Appear(node.childNodes[i], {duration : 0.3}); - } + // debug("cat: " + node.id); + + if (node.hasChildNodes() && node.firstChild.nextSibling != false) { + for (i = 0; i < node.childNodes.length; i++) { + if (node.childNodes[i].nodeName != "LI") { continue; } - if (has_unread) { - node.childNodes[i].style.display = "list-item"; - cat_unread++; - //Effect.Appear(node.childNodes[i], {duration : 0.3}); - //Effect.Highlight(node.childNodes[i]); + if (node.childNodes[i].style != undefined) { + + var has_unread = (node.childNodes[i].className != "feed" && + node.childNodes[i].className != "label" && + !(!getInitParam("hide_read_shows_special") && + node.childNodes[i].className == "virt") && + node.childNodes[i].className != "error" && + node.childNodes[i].className != "tag"); + + // debug(node.childNodes[i].id + " --> " + has_unread); + + if (hide && !has_unread) { + //node.childNodes[i].style.display = "none"; + var id = node.childNodes[i].id; + Effect.Fade(node.childNodes[i], {duration : 0.3, + queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }}); + } + + if (!hide) { + node.childNodes[i].style.display = "list-item"; + //Effect.Appear(node.childNodes[i], {duration : 0.3}); + } + + if (has_unread) { + node.childNodes[i].style.display = "list-item"; + cat_unread++; + //Effect.Appear(node.childNodes[i], {duration : 0.3}); + //Effect.Highlight(node.childNodes[i]); + } } } - } - } - -// debug("end cat: " + node.id + " unread " + cat_unread); - - if (cat_unread == 0) { - if (cat_node.style == undefined) { - debug("ERROR: supplied cat_node " + cat_node + - " has no styles. WTF?"); - return; - } - if (hide) { - //cat_node.style.display = "none"; - Effect.Fade(cat_node, {duration : 0.3, - queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }}); + } + + // debug("end cat: " + node.id + " unread " + cat_unread); + + if (cat_unread == 0) { + if (cat_node.style == undefined) { + debug("ERROR: supplied cat_node " + cat_node + + " has no styles. WTF?"); + return; + } + if (hide) { + //cat_node.style.display = "none"; + Effect.Fade(cat_node, {duration : 0.3, + queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }}); + } else { + cat_node.style.display = "list-item"; + } } else { - cat_node.style.display = "list-item"; - } - } else { - try { - cat_node.style.display = "list-item"; - } catch (e) { - debug(e); + try { + cat_node.style.display = "list-item"; + } catch (e) { + debug(e); + } } - } // debug("unread for category: " + cat_unread); + + } catch (e) { + exception_error("hideOrShowFeedsCategory", e); + } } function selectTableRow(r, do_select) { diff --git a/functions.php b/functions.php index 42b21a465..100a1306e 100644 --- a/functions.php +++ b/functions.php @@ -4065,7 +4065,7 @@ print "</li>"; - print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>"; + print "<ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>"; } @@ -4085,19 +4085,6 @@ $cat_hidden = false; } -# print "<li class=\"feedCat\">".__('Special')."</li>"; -# print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\">"; -# print "<li class=\"feedCat\">". -# "<a id=\"FCATN--1\" href=\"javascript:toggleCollapseCat(-1)\">". -# __('Special')."</a> <span id='FCAP--1'>$ellipsis</span></li>"; -# -# print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"> -# <ul class=\"feedCatList\" id='FCATLIST--1' style='$holder_style'>"; - -# $cat_unread = getCategoryUnread($link, -1); -# $tmp_category = __("Special"); -# $catctr_class = ($cat_unread > 0) ? "catCtrHasUnread" : "catCtrNoUnread"; - printCategoryHeader($link, -1, $cat_hidden, false); } @@ -4161,11 +4148,6 @@ printCategoryHeader($link, -2, $cat_hidden, false); -# print "<li class=\"feedCat\">". -# "<a id=\"FCATN--2\" href=\"javascript:toggleCollapseCat(-2)\">". -# __('Labels')."</a> <span id='FCAP--2'>$ellipsis</span></li>"; -# -# print "<li id=\"feedCatHolder\" class=\"feedCatHolder\"><ul class=\"feedCatList\" id='FCATLIST--2' style='$holder_style'>"; } else { print "<li><hr></li>"; } @@ -4317,7 +4299,7 @@ if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) { if ($category) { - print "</ul></li>"; + print "</ul>"; } $category = $tmp_category; @@ -4331,35 +4313,10 @@ } } -/* if ($collapsed == "t" || $collapsed == "1") { - $holder_class = "feedCatHolder"; - $holder_style = "display:none;"; - $ellipsis = "…"; - } else { - $holder_class = "feedCatHolder"; - $holder_style = ""; - $ellipsis = ""; - } */ - $cat_id = sprintf("%d", $cat_id); printCategoryHeader($link, $cat_id, $collapsed, true); - -/* $cat_unread = getCategoryUnread($link, $cat_id); - - $catctr_class = ($cat_unread > 0) ? "catCtrHasUnread" : "catCtrNoUnread"; - - print "<li class=\"feedCat\" id=\"FCAT-$cat_id\"> - <a id=\"FCATN-$cat_id\" href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category</a> - <a href=\"#\" onclick=\"javascript:viewCategory($cat_id)\" id=\"FCAP-$cat_id\"> - <span id=\"FCATCTR-$cat_id\" - class=\"$catctr_class\">($cat_unread)</span> $ellipsis - </a></li>"; - - print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\" id=\"FCATLIST-$cat_id\" style='$holder_style'>"; */ - - } printFeedEntry($feed_id, $class, $feed, $unread, @@ -4388,7 +4345,7 @@ if (get_pref($link, 'ENABLE_FEED_CATS')) { print "<li class=\"feedCat\">".__('Tags')."</li>"; - print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">"; + print "<ul class=\"feedCatList\">"; } $age_qpart = getMaxAgeSubquery(); @@ -622,7 +622,7 @@ function toggleDispRead() { debug("toggle_disp_read => " + hide_read_feeds); - hideOrShowFeeds(getFeedsContext().document, hide_read_feeds); + hideOrShowFeeds(hide_read_feeds); storeInitParam("hide_read_feeds", hide_read_feeds, true); @@ -1035,7 +1035,7 @@ function hotkey_handler(e) { } return false; } - + if (keycode == 191 || keychar == '/') { // / displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat()); return false; @@ -1219,6 +1219,10 @@ function hotkey_handler(e) { } } + if (keycode == 87) { // w + return resort_feedlist(); + } + } /* Prefix c */ |