From 8073cce71eb6120bac0e21adb670fdfc6f05fad1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 9 Sep 2005 03:47:39 +0100 Subject: [PATCH] further label/vfeed/feed behaviour unification --- backend.php | 26 +++++++++++++++++++++----- functions.js | 6 +++--- tt-rss.js | 2 +- view.js | 2 ++ viewfeed.js | 18 +++++------------- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/backend.php b/backend.php index 572fb092..9993d88a 100644 --- a/backend.php +++ b/backend.php @@ -21,7 +21,7 @@ function getLabelCounters($link) { $result = db_query($link, "SELECT count(id) as count FROM ttrss_entries - WHERE marked = true"); + WHERE marked = true AND unread = true"); $count = db_fetch_result($result, 0, "count"); @@ -48,8 +48,19 @@ } } - function getFeedCounters($link) { + function getFeedCounter($link, $id) { + + $result = db_query($link, "SELECT + count(id) as count FROM ttrss_entries + WHERE feed_id = '$id' AND unread = true"); + + $count = db_fetch_result($result, 0, "count"); + + print ""; + } + function getFeedCounters($link) { + $result = db_query($link, "SELECT id, (SELECT count(id) FROM ttrss_entries WHERE feed_id = ttrss_feeds.id AND unread = true) as count @@ -79,7 +90,7 @@ /* virtual feeds */ $result = db_query($link, "SELECT count(id) as num_starred - FROM ttrss_entries WHERE marked = true"); + FROM ttrss_entries WHERE marked = true AND unread = true"); $num_starred = db_fetch_result($result, 0, "num_starred"); printFeedEntry(-1, "odd", "Starred articles", $num_starred, "images/mark_set.png"); @@ -172,8 +183,12 @@ $subop = $_GET["subop"]; if ($subop == "getLabelCounters") { + $aid = $_GET["aid"]; print ""; getLabelCounters($link); + if ($aid) { + getFeedCounter($link, $aid); + } print ""; } @@ -260,6 +275,7 @@ if ($op == "view") { $id = $_GET["id"]; + $feed_id = $_GET["feed"]; $result = db_query($link, "UPDATE ttrss_entries SET unread = false,last_read = NOW() WHERE id = '$id'"); @@ -315,7 +331,7 @@ print ""; print ""; } @@ -587,7 +603,7 @@ feedctr.className = 'invisible'; } - update_label_counters(); + update_label_counters($feed); // p_notify(\"\"); diff --git a/functions.js b/functions.js index 8e7b9995..909d34e1 100644 --- a/functions.js +++ b/functions.js @@ -318,7 +318,7 @@ function label_counters_callback() { if (ctr > 0) { feedctr.className = "odd"; - if (!feedr.className.match("Unread") && id != -1) { + if (!feedr.className.match("Unread")) { feedr.className = feedr.className + "Unread"; } } else { @@ -329,9 +329,9 @@ function label_counters_callback() { } } -function update_label_counters() { +function update_label_counters(feed) { if (xmlhttp_ready(xmlhttp_rpc)) { - var query = "backend.php?op=rpc&subop=getLabelCounters"; + var query = "backend.php?op=rpc&subop=getLabelCounters&aid=" + feed; xmlhttp_rpc.open("GET", query, true); xmlhttp_rpc.onreadystatechange=label_counters_callback; xmlhttp_rpc.send(null); diff --git a/tt-rss.js b/tt-rss.js index ae16052c..31f5b29c 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -70,7 +70,7 @@ function refetch_callback() { if (ctr > 0) { feedctr.className = "odd"; - if (id != -1 && !feedr.className.match("Unread")) { + if (!feedr.className.match("Unread")) { feedr.className = feedr.className + "Unread"; } } else { diff --git a/view.js b/view.js index 6450a0b7..1d258488 100644 --- a/view.js +++ b/view.js @@ -19,6 +19,7 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') { xmlhttp_rpc = new XMLHttpRequest(); } +/* function label_counters_callback() { if (xmlhttp_rpc.readyState == 4) { var reply = xmlhttp_rpc.responseXML.firstChild; @@ -51,3 +52,4 @@ function update_label_counters() { xmlhttp_rpc.send(null); } } +*/ diff --git a/viewfeed.js b/viewfeed.js index 4bded276..9d891ec6 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -34,7 +34,7 @@ function view(id, feed_id) { var crow = h_document.getElementById("RROW-" + id); - if (crow.className.match("Unread")) { +/* if (crow.className.match("Unread")) { var umark = f_document.getElementById("FEEDU-" + feed_id); umark.innerHTML = umark.innerHTML - 1; @@ -52,8 +52,9 @@ function view(id, feed_id) { } total_unread--; - } + } */ + crow.className = crow.className.replace("Unread", ""); cleanSelected("headlinesList"); @@ -63,23 +64,14 @@ function view(id, feed_id) { upd_img_pic.src = "images/blank_icon.gif"; } - var unread_rows = getVisibleUnreadHeadlines(); - - if (unread_rows.length == 0) { - var button = h_document.getElementById("btnCatchupPage"); - if (button) { - button.className = "disabledButton"; - button.href = ""; - } - } - active_post_id = id; setActiveFeedId(feed_id); var content = m_document.getElementById("content-frame"); if (content) { - content.src = "backend.php?op=view&addheader=true&id=" + param_escape(id); + content.src = "backend.php?op=view&addheader=true&id=" + param_escape(id) + + "&feed=" + param_escape(feed_id); markHeadline(active_post_id); } -- 2.39.2