summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2009-02-05 22:29:34 +0300
committerAndrew Dolgov <[email protected]>2009-02-05 22:29:34 +0300
commit75aa83ec611ed0af80232ababbef26363a498310 (patch)
tree84c8e194d01682f5edc0f3be35aa692f58bcf8cf
parentd8781c912dc0476af3ac7b858aedf6f3089e604e (diff)
offline: store category collapsed state
-rw-r--r--modules/backend-rpc.php9
-rw-r--r--offline.js24
2 files changed, 26 insertions, 7 deletions
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index edc167695..8905012f6 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -547,15 +547,18 @@
print "<feed-categories>";
- $result = db_query($link, "SELECT id, title FROM
+ $result = db_query($link, "SELECT id, title, collapsed FROM
ttrss_feed_categories WHERE owner_uid = ".$_SESSION["uid"]);
- print "<category id=\"0\"><![CDATA[";
+ print "<category id=\"0\" collapsed=\"".
+ (int)$_COOKIE["ttrss_vf_uclps"]."\"><![CDATA[";
print __("Uncategorized");
print "]]></category>";
while ($line = db_fetch_assoc($result)) {
- print "<category id=\"".$line["id"]."\"><![CDATA[";
+ print "<category
+ id=\"".$line["id"]."\"
+ collapsed=\"".(int)sql_bool_to_bool($line["collapsed"])."\"><![CDATA[";
print $line["title"];
print "]]></category>";
}
diff --git a/offline.js b/offline.js
index ff65a76d9..fd3e7ef77 100644
--- a/offline.js
+++ b/offline.js
@@ -1,4 +1,4 @@
-var SCHEMA_VERSION = 4;
+var SCHEMA_VERSION = 5;
var offline_mode = false;
var store = false;
@@ -546,10 +546,26 @@ function offline_download_parse(stage, transport) {
var cat_id = feeds[i].getAttribute("cat_id");
db.execute("INSERT INTO feeds (id,title,has_icon,cat_id)"+
- "VALUES (?,?,?, ?)",
+ "VALUES (?,?,?,?)",
[id, title, has_icon, cat_id]);
}
-
+
+ var cats = transport.responseXML.getElementsByTagName("category");
+
+ if (feeds.length > 0) {
+ db.execute("DELETE FROM categories");
+ }
+
+ for (var i = 0; i < cats.length; i++) {
+ var id = cats[i].getAttribute("id");
+ var collapsed = cats[i].getAttribute("collapsed");
+ var title = cats[i].firstChild.nodeValue;
+
+ db.execute("INSERT INTO categories (id,title,collapsed)"+
+ "VALUES (?,?,?)",
+ [id, title, collapsed]);
+ }
+
window.setTimeout("update_offline_data("+(stage+1)+")", 10*1000);
} else {
@@ -790,7 +806,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 feeds (id integer, title text, has_icon integer, cat_id integer)");
- db.execute("CREATE TABLE IF NOT EXISTS categories (id integer, title text)");
+ db.execute("CREATE TABLE IF NOT EXISTS categories (id integer, title text, collapsed integer)");
db.execute("CREATE TABLE IF NOT EXISTS articles (id integer, feed_id integer, title text, link text, guid text, updated text, content text, tags text, unread text, marked text, added text, comments text)");
db.execute("DELETE FROM cache WHERE id LIKE 'F:%' OR id LIKE 'C:%'");