summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/backend-rpc.php21
-rw-r--r--offline.js25
-rw-r--r--tt-rss.js7
3 files changed, 39 insertions, 14 deletions
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index dd6ea2694..54bf4a326 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -576,22 +576,25 @@
}
$result = db_query($link,
- "SELECT DISTINCT id,title,guid,link,
+ "SELECT DISTINCT id,title,guid,link,comments,
feed_id,content,updated,unread,marked FROM
ttrss_user_entries,ttrss_entries
WHERE $unread_qpart $cid_qpart $date_qpart
ref_id = id AND owner_uid = ".$_SESSION["uid"]."
ORDER BY updated DESC LIMIT $limit OFFSET $skip");
-
- while ($line = db_fetch_assoc($result)) {
- print "<article><![CDATA[";
- $line["marked"] = (int)sql_bool_to_bool($line["marked"]);
- $line["unread"] = (int)sql_bool_to_bool($line["unread"]);
- $line["tags"] = format_tags_string(get_article_tags($link, $id), $id);
+ if (function_exists('json_encode')) {
- print json_encode($line);
- print "]]></article>";
+ while ($line = db_fetch_assoc($result)) {
+ print "<article><![CDATA[";
+
+ $line["marked"] = (int)sql_bool_to_bool($line["marked"]);
+ $line["unread"] = (int)sql_bool_to_bool($line["unread"]);
+ $line["tags"] = format_tags_string(get_article_tags($link, $id), $id);
+
+ print json_encode($line);
+ print "]]></article>";
+ }
}
}
diff --git a/offline.js b/offline.js
index 80c4913fd..8358bc479 100644
--- a/offline.js
+++ b/offline.js
@@ -1,4 +1,4 @@
-var SCHEMA_VERSION = 2;
+var SCHEMA_VERSION = 3;
var offline_mode = false;
var store = false;
@@ -353,7 +353,14 @@ function init_offline() {
Element.hide(tb_form.update);
- init_params["theme"] = "";
+ var rs = db.execute("SELECT key, value FROM init_params");
+
+ while (rs.isValidRow()) {
+ init_params[rs.field(0)] = rs.field(1);
+ rs.next();
+ }
+
+ rs.close();
render_offline_feedlist();
remove_splash();
@@ -402,10 +409,11 @@ function offline_download_parse(stage, transport) {
db.execute("DELETE FROM articles WHERE id = ?", [a.id]);
db.execute("INSERT INTO articles "+
"(id, feed_id, title, link, guid, updated, content, "+
- "unread, marked, tags, added) "+
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+ "unread, marked, tags, added, comments) "+
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
[a.id, a.feed_id, a.title, a.link, a.guid, a.updated,
- a.content, a.unread, a.marked, a.tags, ts]);
+ a.content, a.unread, a.marked, a.tags, ts,
+ a.comments]);
}
}
@@ -577,14 +585,21 @@ function init_gears() {
version = rs.field(0);
}
+ rs.close();
+
if (version != SCHEMA_VERSION) {
+ db.execute("DROP TABLE IF EXISTS init_params");
db.execute("DROP TABLE IF EXISTS cache");
db.execute("DROP TABLE IF EXISTS feeds");
db.execute("DROP TABLE IF EXISTS articles");
+ db.execute("DROP TABLE IF EXISTS version");
+ db.execute("CREATE TABLE IF NOT EXISTS version (schema_version text)");
db.execute("INSERT INTO version (schema_version) VALUES (?)",
[SCHEMA_VERSION]);
}
+ db.execute("CREATE TABLE IF NOT EXISTS init_params (key text, value 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)");
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)");
diff --git a/tt-rss.js b/tt-rss.js
index 7bc093723..49db3aea0 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -170,6 +170,13 @@ function backend_sanity_check_callback(transport) {
var v = param.getAttribute("value");
debug(k + " => " + v);
init_params[k] = v;
+
+ if (db) {
+ db.execute("DELETE FROM init_params WHERE key = ?", [k]);
+ db.execute("INSERT INTO init_params (key,value) VALUES (?, ?)",
+ [k, v]);
+ }
+
param = param.nextSibling;
}
}