summaryrefslogtreecommitdiff
path: root/functions.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2008-05-20 13:04:30 +0100
committerAndrew Dolgov <[email protected]>2008-05-20 13:04:30 +0100
commit61a20560f235c85c2ffc9d1556908a4421ab31e6 (patch)
tree8806b8ffe1af8844912bcafd61ab76e315a4b365 /functions.js
parent60ea23775a256bef5f3712bab9535d5405621bc1 (diff)
add hotkey f w: resort feedlist by name or unread count
Diffstat (limited to 'functions.js')
-rw-r--r--functions.js19
1 files changed, 15 insertions, 4 deletions
diff --git a/functions.js b/functions.js
index a27336d6d..962ddc652 100644
--- a/functions.js
+++ b/functions.js
@@ -618,9 +618,9 @@ function parse_counters_reply(transport, scheduled_call) {
parse_runtime_info(runtime_info);
- if (getInitParam("feeds_sort_by_unread") == 1) {
- resort_feedlist();
- }
+ if (feedsSortByUnread()) {
+ resort_feedlist();
+ }
hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
@@ -661,9 +661,17 @@ function get_feed_entry_unread(elem) {
}
}
+function get_feed_entry_name(elem) {
+ var id = elem.id.replace("FEEDR-", "");
+ return getFeedName(id);
+}
+
+
function resort_category(node) {
debug("resort_category: " + node);
+ var by_unread = feedsSortByUnread();
+
if (node.hasChildNodes() && node.firstChild.nextSibling != false) {
for (i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeName != "LI") { continue; }
@@ -678,7 +686,10 @@ function resort_category(node) {
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) {
+ var tmp_name = get_feed_entry_name(node.childNodes[i]);
+ var cur_name = get_feed_entry_name(node.childNodes[j]);
+
+ if ((by_unread && (cur_val > tmp_val)) || (!by_unread && (cur_name < tmp_name))) {
tempnode_i = node.childNodes[i].cloneNode(true);
tempnode_j = node.childNodes[j].cloneNode(true);
node.replaceChild(tempnode_i, node.childNodes[j]);