further label/vfeed/feed behaviour unification

This commit is contained in:
Andrew Dolgov 2005-09-09 03:47:39 +01:00
parent 392d45635b
commit 8073cce71e
5 changed files with 32 additions and 22 deletions

View File

@ -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 "<feed id=\"$id\" counter=\"$count\"/>";
}
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 "<rpc-reply>";
getLabelCounters($link);
if ($aid) {
getFeedCounter($link, $aid);
}
print "</rpc-reply>";
}
@ -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 "</div>";
print "<script type=\"text/javascript\">
update_label_counters();
update_label_counters($feed_id);
</script>";
}
@ -587,7 +603,7 @@
feedctr.className = 'invisible';
}
update_label_counters();
update_label_counters($feed);
// p_notify(\"\");

View File

@ -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);

View File

@ -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 {

View File

@ -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);
}
}
*/

View File

@ -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);
}