From 6a2034f9ffb51c96ceb8e5bfacb7497ffe6f0820 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 3 Feb 2009 18:43:44 +0300 Subject: [PATCH] add viewfeed_offline(); misc fixes --- feedlist.js | 12 ++++++++++++ modules/backend-rpc.php | 2 ++ modules/popup-dialog.php | 6 +++--- tt-rss.js | 28 +++++++++++++++++++--------- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/feedlist.js b/feedlist.js index 6e26a92fc..fbf3d9270 100644 --- a/feedlist.js +++ b/feedlist.js @@ -129,9 +129,21 @@ function viewNextFeedPage() { } } +function viewfeed_offline(feed, subop, is_cat, subop_param, skip_history, offset) { + try { + + + } catch (e) { + exception_error("viewfeed_offline", e); + } +} + function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) { try { + if (offline_mode) return viewfeed_offline(feed, subop, is_cat, subop_param, + skip_history, offset); + // if (!offset) page_offset = 0; last_requested_article = 0; diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 4212c1b8c..3b5b2d63f 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -579,6 +579,8 @@ $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/modules/popup-dialog.php b/modules/popup-dialog.php index d7e786684..8a1b20209 100644 --- a/modules/popup-dialog.php +++ b/modules/popup-dialog.php @@ -479,7 +479,7 @@ print_select_hash("amount", 50, $amount); - print " " . __("newest articles for offline reading."); + print " " . __("latest articles for offline reading."); print "
"; @@ -491,8 +491,8 @@ print ""; print "
- +
"; diff --git a/tt-rss.js b/tt-rss.js index 666476778..b8b36e095 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -24,6 +24,7 @@ var store = false; var localServer = false; var db = false; var download_progress_last = 0; +var offline_dl_max_id = 0; function activeFeedIsCat() { return _active_feed_is_cat; @@ -1570,39 +1571,48 @@ function offline_download_parse(stage, transport) { if (a) { db.execute("DELETE FROM articles WHERE id = ?", [a.id]); db.execute("INSERT INTO articles "+ - "(id, feed_id, title, link, guid, updated, content, unread, marked) "+ - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", + "(id, feed_id, title, link, guid, updated, content, "+ + "unread, marked, tags) "+ + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", [a.id, a.feed_id, a.title, a.link, a.guid, a.updated, - a.content, a.unread, a.marked]); + a.content, a.unread, a.marked, a.tags]); } } if (articles_found > 0) { window.setTimeout("initiate_offline_download("+(stage+1)+")", 50); + } else { + notify_info("All done."); + closeInfoBox(); } } - notify_info("All done."); - } } catch (e) { exception_error("offline_download_parse", e); } } -function initiate_offline_download(stage) { +function initiate_offline_download(stage, caller) { try { if (!stage) stage = 0; + if (caller) caller.disabled = true; notify_progress("Loading, please wait... (" + stage +")", true); var query = "backend.php?op=rpc&subop=download&stage=" + stage; - var rs = db.execute("SELECT MAX(id) FROM articles"); - if (rs.isValidRow()) { - query = query + "&cid=" + rs.field(0); + if (stage == 0) { + var rs = db.execute("SELECT MAX(id) FROM articles"); + if (rs.isValidRow() && rs.field(0)) { + offline_dl_max_id = rs.field(0); + } + } + + if (offline_dl_max_id) { + query = query + "&cid=" + offline_dl_max_id; } if (document.getElementById("download_ops_form")) {