From fa7c9e65f16086918adde001ed2531c488bd4ce8 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 17 Feb 2010 16:38:51 +0300 Subject: [PATCH] notifier: support showing fresh articles in the badge --- utils/notifier/background.html | 37 +++++++++++++++++++++++++--------- utils/notifier/manifest.json | 2 +- utils/notifier/options.html | 17 ++++++++++++++++ 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/utils/notifier/background.html b/utils/notifier/background.html index 8a3acb2b..fdca37e9 100644 --- a/utils/notifier/background.html +++ b/utils/notifier/background.html @@ -16,7 +16,7 @@ function update() { var login = localStorage["login"]; var requestUrl = localStorage["site_url"] + "/backend.php"; - var params = "op=getUnread&login=" + param_escape(login); + var params = "op=getUnread&fresh=1&login=" + param_escape(login); var xhr = new XMLHttpRequest(); @@ -31,17 +31,36 @@ function update() { var icon = new Object(); var title = new Object(); var badge = new Object(); + var badge_color = new Object(); - var showBadge = localStorage["show_badge"]; - + var show_badge = localStorage["show_badge"] == "1"; + var show_fresh = localStorage["show_fresh"] == "1"; + if (xhr.status == 200) { - var unread = parseInt(xhr.responseText); - - if (unread > 0) { + var response = xhr.responseText.split(";"); + + var unread = parseInt(response[0]); + + var fresh; + + if (response.length == 2) + fresh = parseInt(response[1]); + else + fresh = 0; + if (unread > 0) { icon.path = "images/alert.png"; title.title = "You have %s unread articles.".replace("%s", unread); - badge.text = unread + ""; + + if (show_fresh) { + badge.text = fresh + ""; + badge_color.color = [0, 200, 0, 255]; + + } else { + badge.text = unread + ""; + badge_color.color = [255, 0, 0, 255]; + } + } else if (unread == -1) { icon.path = "images/error.png"; @@ -65,10 +84,10 @@ function update() { title.title = "Error (%s) while updating.".replace("%s", xhr.status); } - if (showBadge !== "1") badge.text = ""; + if (!show_badge) badge.text = ""; + chrome.browserAction.setBadgeBackgroundColor(badge_color); chrome.browserAction.setBadgeText(badge); - chrome.browserAction.setTitle(title); chrome.browserAction.setIcon(icon); diff --git a/utils/notifier/manifest.json b/utils/notifier/manifest.json index 206dffd4..9142910c 100644 --- a/utils/notifier/manifest.json +++ b/utils/notifier/manifest.json @@ -1,7 +1,7 @@ { "name": "Tiny Tiny RSS Notifier", "background_page": "background.html", - "version": "0.2.1", + "version": "0.3", "description": "This extension displays the number of unread articles in your Tiny Tiny RSS installation", "options_page": "options.html", "icons": { "48": "images/icon.png", "128": "images/icon.png" }, diff --git a/utils/notifier/options.html b/utils/notifier/options.html index d7becf22..2988f41c 100644 --- a/utils/notifier/options.html +++ b/utils/notifier/options.html @@ -38,6 +38,7 @@ function save() { } localStorage['show_badge'] = (f.show_badge.checked) ? "1" : "0"; + localStorage['show_fresh'] = (f.show_fresh.checked) ? "1" : "0"; var d = new Date(); @@ -71,6 +72,11 @@ function init() { else f.show_badge.checked = true; + if (localStorage['show_fresh']) + f.show_fresh.checked = localStorage['show_fresh'] == "1"; + else + f.show_fresh.checked = false; + var last_updated = $('last_updated'); var d = new Date(); @@ -106,6 +112,11 @@ label { p.last-updated { color : gray; } +fieldset span.note { + color : gray; + font-style : italic; +} + @@ -140,6 +151,12 @@ p.last-updated { +
+ + + (requires Tiny Tiny RSS 1.4.1 or trunk) +
+ -- 2.39.5