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();
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";
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);
{
"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" },
}
localStorage['show_badge'] = (f.show_badge.checked) ? "1" : "0";
+ localStorage['show_fresh'] = (f.show_fresh.checked) ? "1" : "0";
var d = new Date();
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();
p.last-updated {
color : gray;
}
+fieldset span.note {
+ color : gray;
+ font-style : italic;
+}
+
</style>
<body onload="init()">
<input name="show_badge" type="checkbox" value="1"/>
</fieldset>
+ <fieldset>
+ <label>Badge shows fresh articles:</label>
+ <input name="show_fresh" type="checkbox" value="1"/>
+ <span class="note">(requires Tiny Tiny RSS 1.4.1 or trunk)</span>
+ </fieldset>
+
<input type="submit" value="Save"/>
</form>