summaryrefslogtreecommitdiff
path: root/feedlist.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2009-02-04 09:51:31 +0300
committerAndrew Dolgov <[email protected]>2009-02-04 09:51:31 +0300
commitc8a9fe5b07aebbc7120599606c7740e840d15562 (patch)
tree637482651bd397cfd0bb7b2630f1857ec3552001 /feedlist.js
parent2a0dc5f90275d68dc167db9c299e510fae09fed8 (diff)
properly update local vfeed counters
Diffstat (limited to 'feedlist.js')
-rw-r--r--feedlist.js88
1 files changed, 52 insertions, 36 deletions
diff --git a/feedlist.js b/feedlist.js
index 4609a2338..6ee3de1cc 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -1013,8 +1013,54 @@ function request_counters() {
}
}
-function update_feedlist_counters() {
+function set_feedlist_counter(id, ctr) {
try {
+
+ var feedctr = document.getElementById("FEEDCTR-" + id);
+ var feedu = document.getElementById("FEEDU-" + id);
+ var feedr = document.getElementById("FEEDR-" + id);
+
+ if (feedctr && feedu && feedr) {
+
+ var row_needs_hl = (ctr > 0 && ctr > parseInt(feedu.innerHTML));
+
+ feedu.innerHTML = ctr;
+
+ if (ctr > 0) {
+ feedctr.className = "feedCtrHasUnread";
+ if (!feedr.className.match("Unread")) {
+ var is_selected = feedr.className.match("Selected");
+
+ feedr.className = feedr.className.replace("Selected", "");
+ feedr.className = feedr.className.replace("Unread", "");
+
+ feedr.className = feedr.className + "Unread";
+
+ if (is_selected) {
+ feedr.className = feedr.className + "Selected";
+ }
+
+ }
+
+ if (row_needs_hl) {
+ new Effect.Highlight(feedr, {duration: 1, startcolor: "#fff7d5",
+ queue: { position:'end', scope: 'EFQ-' + id, limit: 1 } } );
+ }
+ } else {
+ feedctr.className = "feedCtrNoUnread";
+ feedr.className = feedr.className.replace("Unread", "");
+ }
+ }
+
+ } catch (e) {
+ exception_error("set_feedlist_counter", e);
+ }
+}
+
+function update_local_feedlist_counters() {
+ try {
+ if (!db) return;
+
var rs = db.execute("SELECT feeds.id,COUNT(articles.id) "+
"FROM feeds LEFT JOIN articles ON (feed_id = feeds.id) "+
"WHERE unread = 1 OR unread IS NULL GROUP BY feeds.id "+
@@ -1024,50 +1070,20 @@ function update_feedlist_counters() {
var id = rs.field(0);
var ctr = rs.field(1);
- var feedctr = document.getElementById("FEEDCTR-" + id);
- var feedu = document.getElementById("FEEDU-" + id);
- var feedr = document.getElementById("FEEDR-" + id);
-
- if (feedctr && feedu && feedr) {
+ set_feedlist_counter(id, ctr);
- var row_needs_hl = (ctr > 0 && ctr > parseInt(feedu.innerHTML));
-
- feedu.innerHTML = ctr;
-
- if (ctr > 0) {
- feedctr.className = "feedCtrHasUnread";
- if (!feedr.className.match("Unread")) {
- var is_selected = feedr.className.match("Selected");
-
- feedr.className = feedr.className.replace("Selected", "");
- feedr.className = feedr.className.replace("Unread", "");
-
- feedr.className = feedr.className + "Unread";
-
- if (is_selected) {
- feedr.className = feedr.className + "Selected";
- }
-
- }
-
- if (row_needs_hl) {
- new Effect.Highlight(feedr, {duration: 1, startcolor: "#fff7d5",
- queue: { position:'end', scope: 'EFQ-' + id, limit: 1 } } );
- }
- } else {
- feedctr.className = "feedCtrNoUnread";
- feedr.className = feedr.className.replace("Unread", "");
- }
- }
rs.next();
}
+ set_feedlist_counter(-4, get_local_feed_unread(-4));
+ set_feedlist_counter(-1, get_local_feed_unread(-1));
+
hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
global_unread = get_local_feed_unread(-4);
updateTitle();
} catch (e) {
- exception_error("update_feedlist_counters", e);
+ exception_error("update_local_feedlist_counters", e);
}
}