From 3034277ab5895723f10addad06d157d54bf188fa Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 4 Feb 2009 14:15:58 +0300 Subject: [PATCH] restore init params from DB in offline mode --- modules/backend-rpc.php | 23 +++++++++++++---------- offline.js | 25 ++++++++++++++++++++----- tt-rss.js | 7 +++++++ 3 files changed, 40 insertions(+), 15 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"); + + if (function_exists('json_encode')) { + + while ($line = db_fetch_assoc($result)) { + print "
"; + $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 "]]>"; + } } } 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; } }