offline: store category collapsed state

This commit is contained in:
Andrew Dolgov 2009-02-05 22:29:34 +03:00
parent d8781c912d
commit 75aa83ec61
2 changed files with 26 additions and 7 deletions

View file

@ -547,15 +547,18 @@
print "<feed-categories>"; 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"]); 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 __("Uncategorized");
print "]]></category>"; print "]]></category>";
while ($line = db_fetch_assoc($result)) { 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 $line["title"];
print "]]></category>"; print "]]></category>";
} }

View file

@ -1,4 +1,4 @@
var SCHEMA_VERSION = 4; var SCHEMA_VERSION = 5;
var offline_mode = false; var offline_mode = false;
var store = false; var store = false;
@ -550,6 +550,22 @@ function offline_download_parse(stage, transport) {
[id, title, has_icon, cat_id]); [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); window.setTimeout("update_offline_data("+(stage+1)+")", 10*1000);
} else { } 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 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 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("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:%'"); db.execute("DELETE FROM cache WHERE id LIKE 'F:%' OR id LIKE 'C:%'");