From fc69e64169acac42622be2fcf3fba14711b11768 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 23 Oct 2005 16:40:55 +0100 Subject: [PATCH] start work on showing number of unread articles in title --- backend.php | 10 +++++++++- tt-rss.js | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/backend.php b/backend.php index 6f5e2dd59..495cebe72 100644 --- a/backend.php +++ b/backend.php @@ -28,6 +28,13 @@ /* FIXME this needs reworking */ + function getGlobalCounters($link) { + $result = db_query($link, "SELECT count(id) as c_id FROM ttrss_entries + WHERE unread = true"); + $c_id = db_fetch_result($result, 0, "c_id"); + print ""; + } + function getTagCounters($link) { $result = db_query($link, "SELECT tag_name,count(ttrss_entries.id) AS count FROM ttrss_tags,ttrss_entries WHERE @@ -276,8 +283,8 @@ getLabelCounters($link); getFeedCounters($link); getTagCounters($link); + getGlobalCounters($link); print ""; - } if ($subop == "mark") { @@ -321,6 +328,7 @@ if (strchr($omode, "l")) getLabelCounters($link); if (strchr($omode, "f")) getFeedCounters($link); if (strchr($omode, "t")) getTagCounters($link); + getGlobalCounters($link); print ""; } diff --git a/tt-rss.js b/tt-rss.js index a760c4c12..a27e8dee5 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -13,6 +13,8 @@ var search_mode = ""; var display_tags = false; +var global_unread = 0; + /*@cc_on @*/ /*@if (@_jscript_version >= 5) // JScript gives us Conditional compilation, we can cope with old IE versions. @@ -68,8 +70,7 @@ function feedlist_callback() { function refetch_callback() { if (xmlhttp.readyState == 4) { - document.title = "Tiny Tiny RSS"; - notify("All feeds updated."); +// document.title = "Tiny Tiny RSS"; if (!xmlhttp.responseXML) { notify("refetch_callback: backend did not return valid XML"); @@ -93,6 +94,13 @@ function refetch_callback() { var feedu = f_document.getElementById("FEEDU-" + id); var feedr = f_document.getElementById("FEEDR-" + id); +/* TODO figure out how to update this from viewfeed.js->view() + disabled for now... + + if (id == "global-unread") { + global_unread = ctr; + } */ + if (feedctr && feedu && feedr) { feedu.innerHTML = ctr; @@ -108,6 +116,10 @@ function refetch_callback() { } } } + + updateTitle(""); + notify("All feeds updated."); + } } @@ -129,7 +141,9 @@ function scheduleFeedUpdate(force) { notify("Updating feeds in background..."); - document.title = "Tiny Tiny RSS - Updating..."; +// document.title = "Tiny Tiny RSS - Updating..."; + + updateTitle("Updating..."); var query_str = "backend.php?op=rpc&subop="; @@ -181,6 +195,9 @@ function catchupAllFeeds() { feeds_frame.src = query_str; + global_unread = 0; + updateTitle(); + } function viewCurrentFeed(skip, subop) { @@ -341,6 +358,19 @@ function localHotkeyHandler(keycode) { } +function updateTitle(s) { + var tmp = "Tiny Tiny RSS"; + + if (global_unread > 0) { + tmp = tmp + " (" + global_unread + ")"; + } + + if (s) { + tmp = tmp + " - " + s; + } + document.title = tmp; +} + function genericSanityCheck() { if (!xmlhttp) {