feedlist-related code cleanup

This commit is contained in:
Andrew Dolgov 2008-05-20 12:46:40 +01:00
parent 7abee14fd0
commit 60ea23775a
4 changed files with 118 additions and 175 deletions

View File

@ -332,7 +332,7 @@ function feedlist_init() {
debug("in feedlist init"); debug("in feedlist init");
hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
document.onkeydown = hotkey_handler; document.onkeydown = hotkey_handler;
document.onmousemove = mouse_move_handler; document.onmousemove = mouse_move_handler;
document.onmousedown = mouse_down_handler; document.onmousedown = mouse_down_handler;

View File

@ -205,34 +205,6 @@ function printLockingError() {
notify_info("Please wait until operation finishes."); 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) { function cleanSelected(element) {
var content = document.getElementById(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; var feeds_stored = number_of_feeds;
@ -650,7 +622,7 @@ function parse_counters_reply(transport, scheduled_call) {
resort_feedlist(); 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-", ""); var id = elem.id.replace("FEEDR-", "");
@ -683,28 +655,28 @@ function get_feed_entry_unread(doc, elem) {
} }
try { try {
return parseInt(doc.getElementById("FEEDU-" + id).innerHTML); return parseInt(document.getElementById("FEEDU-" + id).innerHTML);
} catch (e) { } catch (e) {
return -1; return -1;
} }
} }
function resort_category(doc, node) { function resort_category(node) {
debug("resort_category: " + node); debug("resort_category: " + node);
if (node.hasChildNodes() && node.firstChild.nextSibling != false) { if (node.hasChildNodes() && node.firstChild.nextSibling != false) {
for (i = 0; i < node.childNodes.length; i++) { for (i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeName != "LI") { continue; } 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; continue;
} }
for (j = i+1; j < node.childNodes.length; j++) { for (j = i+1; j < node.childNodes.length; j++) {
if (node.childNodes[j].nodeName != "LI") { continue; } if (node.childNodes[j].nodeName != "LI") { continue; }
var tmp_val = get_feed_entry_unread(doc, node.childNodes[i]); var tmp_val = get_feed_entry_unread(node.childNodes[i]);
var cur_val = get_feed_entry_unread(doc, node.childNodes[j]); var cur_val = get_feed_entry_unread(node.childNodes[j]);
if (cur_val > tmp_val) { if (cur_val > tmp_val) {
tempnode_i = node.childNodes[i].cloneNode(true); tempnode_i = node.childNodes[i].cloneNode(true);
@ -722,24 +694,18 @@ function resort_category(doc, node) {
function resort_feedlist() { function resort_feedlist() {
debug("resort_feedlist"); debug("resort_feedlist");
var fd = document; if (document.getElementById("FCATLIST--1")) {
if (fd.getElementById("feedCatHolder")) { var lists = document.getElementsByTagName("UL");
var feeds = fd.getElementById("feedList"); for (var i = 0; i < lists.length; i++) {
var child = feeds.firstChild; if (lists[i].id && lists[i].id.match("FCATLIST-")) {
resort_category(lists[i]);
while (child) {
if (child.id == "feedCatHolder") {
resort_category(fd, child.firstChild);
} }
child = child.nextSibling;
} }
} else { } 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); try {
var fd = document; debug("hideOrShowFeeds: " + hide);
var list = fd.getElementById("feedList"); if (document.getElementById("FCATLIST--1")) {
if (fd.getElementById("feedCatHolder")) { var lists = document.getElementsByTagName("UL");
var feeds = fd.getElementById("feedList"); for (var i = 0; i < lists.length; i++) {
var child = feeds.firstChild; if (lists[i].id && lists[i].id.match("FCATLIST-")) {
while (child) { var id = lists[i].id.replace("FCATLIST-", "");
hideOrShowFeedsCategory(id, hide);
if (child.id == "feedCatHolder") {
hideOrShowFeedsCategory(fd, child.firstChild, hide, child.previousSibling);
} }
child = child.nextSibling;
} }
} else { } else {
hideOrShowFeedsCategory(fd, fd.getElementById("feedList"), hide); hideOrShowFeedsCategory(null, hide);
}
} catch (e) {
exception_error("hideOrShowFeeds", e);
} }
} }
function hideOrShowFeedsCategory(doc, node, hide, cat_node) { function hideOrShowFeedsCategory(id, hide) {
// debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")"); try {
var cat_unread = 0; var node = null;
var cat_node = null;
if (!node) { if (id) {
debug("hideOrShowFeeds: passed node is null, aborting"); node = document.getElementById("FCATLIST-" + id);
return; cat_node = document.getElementById("FCAT-" + id);
} } else {
node = document.getElementById("feedList"); // no categories
}
// debug("cat: " + node.id); // debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")");
if (node.hasChildNodes() && node.firstChild.nextSibling != false) { var cat_unread = 0;
for (i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeName != "LI") { continue; }
if (node.childNodes[i].style != undefined) { if (!node) {
debug("hideOrShowFeeds: passed node is null, aborting");
return;
}
var has_unread = (node.childNodes[i].className != "feed" && // debug("cat: " + node.id);
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 (node.hasChildNodes() && node.firstChild.nextSibling != false) {
for (i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeName != "LI") { continue; }
if (hide && !has_unread) { if (node.childNodes[i].style != undefined) {
//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) { var has_unread = (node.childNodes[i].className != "feed" &&
node.childNodes[i].style.display = "list-item"; node.childNodes[i].className != "label" &&
//Effect.Appear(node.childNodes[i], {duration : 0.3}); !(!getInitParam("hide_read_shows_special") &&
} node.childNodes[i].className == "virt") &&
node.childNodes[i].className != "error" &&
node.childNodes[i].className != "tag");
if (has_unread) { // debug(node.childNodes[i].id + " --> " + has_unread);
node.childNodes[i].style.display = "list-item";
cat_unread++; if (hide && !has_unread) {
//Effect.Appear(node.childNodes[i], {duration : 0.3}); //node.childNodes[i].style.display = "none";
//Effect.Highlight(node.childNodes[i]); 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); // debug("end cat: " + node.id + " unread " + cat_unread);
if (cat_unread == 0) { if (cat_unread == 0) {
if (cat_node.style == undefined) { if (cat_node.style == undefined) {
debug("ERROR: supplied cat_node " + cat_node + debug("ERROR: supplied cat_node " + cat_node +
" has no styles. WTF?"); " has no styles. WTF?");
return; return;
} }
if (hide) { if (hide) {
//cat_node.style.display = "none"; //cat_node.style.display = "none";
Effect.Fade(cat_node, {duration : 0.3, Effect.Fade(cat_node, {duration : 0.3,
queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }}); queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }});
} else {
cat_node.style.display = "list-item";
}
} else { } else {
cat_node.style.display = "list-item"; try {
cat_node.style.display = "list-item";
} catch (e) {
debug(e);
}
} }
} else {
try {
cat_node.style.display = "list-item";
} catch (e) {
debug(e);
}
}
// debug("unread for category: " + cat_unread); // debug("unread for category: " + cat_unread);
} catch (e) {
exception_error("hideOrShowFeedsCategory", e);
}
} }
function selectTableRow(r, do_select) { function selectTableRow(r, do_select) {

View File

@ -4065,7 +4065,7 @@
print "</li>"; 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; $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); printCategoryHeader($link, -1, $cat_hidden, false);
} }
@ -4161,11 +4148,6 @@
printCategoryHeader($link, -2, $cat_hidden, false); 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 { } else {
print "<li><hr></li>"; print "<li><hr></li>";
} }
@ -4317,7 +4299,7 @@
if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) { if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) {
if ($category) { if ($category) {
print "</ul></li>"; print "</ul>";
} }
$category = $tmp_category; $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); $cat_id = sprintf("%d", $cat_id);
printCategoryHeader($link, $cat_id, $collapsed, true); 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, printFeedEntry($feed_id, $class, $feed, $unread,
@ -4388,7 +4345,7 @@
if (get_pref($link, 'ENABLE_FEED_CATS')) { if (get_pref($link, 'ENABLE_FEED_CATS')) {
print "<li class=\"feedCat\">".__('Tags')."</li>"; print "<li class=\"feedCat\">".__('Tags')."</li>";
print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">"; print "<ul class=\"feedCatList\">";
} }
$age_qpart = getMaxAgeSubquery(); $age_qpart = getMaxAgeSubquery();

View File

@ -622,7 +622,7 @@ function toggleDispRead() {
debug("toggle_disp_read => " + hide_read_feeds); 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); storeInitParam("hide_read_feeds", hide_read_feeds, true);
@ -1219,6 +1219,10 @@ function hotkey_handler(e) {
} }
} }
if (keycode == 87) { // w
return resort_feedlist();
}
} }
/* Prefix c */ /* Prefix c */