summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--feedlist.js55
-rw-r--r--modules/backend-rpc.php5
-rw-r--r--tt-rss.js8
3 files changed, 63 insertions, 5 deletions
diff --git a/feedlist.js b/feedlist.js
index 4a892a907..d56f28d1e 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -32,7 +32,60 @@ function viewCategory(cat) {
function render_offline_feedlist() {
try {
- // FIXME
+ var tmp = "<ul class=\"feedList\" id=\"feedList\">";
+
+ var rs = db.execute("SELECT id,title,has_icon FROM offline_feeds ORDER BY title");
+
+ while (rs.isValidRow()) {
+
+ var id = rs.field(0);
+ var title = rs.field(1);
+ var has_icon = rs.field(2);
+
+ var rs_u = db.execute("SELECT SUM(unread) FROM offline_data WHERE feed_id = ?",
+ [id]);
+ var unread = 0;
+
+ if (rs.isValidRow()) {
+ unread = rs_u.field(0);
+ if (!unread) unread = 0;
+ }
+
+ var feed_icon = "";
+
+ if (has_icon) {
+ feed_icon = "<img id='FIMG-"+id+"' src='" + "icons/" + id + ".ico'>";
+ } else {
+ feed_icon = "<img id='FIMG-"+id+"' src='images/blank_icon.gif'>";
+ }
+
+ var row_class = "feed";
+
+ if (unread > 0) {
+ row_class += "Unread";
+ fctr_class = "feedCtrHasUnread";
+ } else {
+ fctr_class = "feedCtrNoUnread";
+ }
+
+ var link = "<a title=\"FIXME\" id=\"FEEDL-"+id+"\""+
+ "href=\"javascript:viewfeed('"+id+"', '', false, '', false, 0);\">"+
+ title + "</a>";
+
+ tmp += "<li id='FEEDR-"+id+"' class="+row_class+">" + feed_icon +
+ "<span id=\"FEEDN-"+id+"\">" + link + "</span>";
+
+ tmp += " <span class='"+fctr_class+"' id=\"FEEDCTR-"+id+"\">" +
+ "(<span id=\"FEEDU-"+id+"\">"+unread+"</span>)</span>";
+
+ tmp += "</li>";
+
+ rs.next();
+ }
+
+ tmp += "</ul>";
+
+ render_feedlist(tmp);
} catch (e) {
exception_error("render_offline_feedlist", e);
}
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index 751934f35..64e7df2f0 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -532,7 +532,10 @@
ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"]);
while ($line = db_fetch_assoc($result)) {
- print "<feed id=\"".$line["id"]."\"><![CDATA[";
+
+ $has_icon = (int) feed_has_icon($line["id"]);
+
+ print "<feed has_icon=\"$has_icon\" id=\"".$line["id"]."\"><![CDATA[";
print $line["title"];
print "]]></feed>";
}
diff --git a/tt-rss.js b/tt-rss.js
index e1ca160af..5089fcf27 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -1507,7 +1507,7 @@ function init_gears() {
db.execute("CREATE TABLE IF NOT EXISTS cache (id text, article text, param text, added text)");
- db.execute("CREATE TABLE if not exists offline_feeds (id integer, title text)");
+ db.execute("CREATE TABLE if not exists offline_feeds (id integer, title text, has_icon integer)");
db.execute("CREATE TABLE if not exists offline_data (id integer, feed_id integer, title text, link text, guid text, updated text, content text, tags text, unread text, marked text)");
@@ -1549,10 +1549,12 @@ function offline_download_parse(stage, transport) {
for (var i = 0; i < feeds.length; i++) {
var id = feeds[i].getAttribute("id");
+ var has_icon = feeds[i].getAttribute("has_icon");
var title = feeds[i].firstChild.nodeValue;
- db.execute("INSERT INTO offline_feeds (id,title) VALUES (?,?)",
- [id, title]);
+ db.execute("INSERT INTO offline_feeds (id,title,has_icon)"+
+ "VALUES (?,?,?)",
+ [id, title, has_icon]);
}
window.setTimeout("initiate_offline_download("+(stage+1)+")", 50);