offline: add progress indicator; tweak download intervals and amount of articles

This commit is contained in:
Andrew Dolgov 2009-02-11 13:35:24 +03:00
parent acac8448a4
commit 048701937d
3 changed files with 22 additions and 7 deletions

BIN
images/offline-sync.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

View File

@ -516,14 +516,14 @@
if ($subop == "download") { if ($subop == "download") {
$stage = (int) $_REQUEST["stage"]; $stage = (int) $_REQUEST["stage"];
$cidt = db_escape_string($_REQUEST["cidt"]); $cidt = (int)db_escape_string($_REQUEST["cidt"]);
$cidb = db_escape_string($_REQUEST["cidb"]); $cidb = (int)db_escape_string($_REQUEST["cidb"]);
$sync = db_escape_string($_REQUEST["sync"]); $sync = db_escape_string($_REQUEST["sync"]);
//$amount = (int) $_REQUEST["amount"]; //$amount = (int) $_REQUEST["amount"];
//$unread_only = db_escape_string($_REQUEST["unread_only"]); //$unread_only = db_escape_string($_REQUEST["unread_only"]);
//if (!$amount) $amount = 50; //if (!$amount) $amount = 50;
$amount = 100; $amount = 2000;
$unread_only = true; $unread_only = true;
print "<rpc-reply>"; print "<rpc-reply>";
@ -653,7 +653,7 @@
if ($stage > 0) { if ($stage > 0) {
print "<articles>"; print "<articles>";
$limit = 50; $limit = 200;
$skip = $limit*($stage-1); $skip = $limit*($stage-1);
print "<limit value=\"$limit\"/>"; print "<limit value=\"$limit\"/>";
@ -669,7 +669,7 @@
} }
if ($cidt && $cidb) { if ($cidt && $cidb) {
$cid_qpart = "(id > $cidt OR id < $cidb) AND "; $cid_qpart = "(ttrss_entries.id > $cidt OR ttrss_entries.id < $cidb) AND ";
} }
if (DB_TYPE == "pgsql") { if (DB_TYPE == "pgsql") {

View File

@ -679,7 +679,7 @@ function offline_download_parse(stage, transport) {
[id, caption, fg_color, bg_color]); [id, caption, fg_color, bg_color]);
} }
window.setTimeout("update_offline_data("+(stage+1)+")", 10*1000); window.setTimeout("update_offline_data("+(stage+1)+")", 5*1000);
} else { } else {
var articles = transport.responseXML.getElementsByTagName("article"); var articles = transport.responseXML.getElementsByTagName("article");
@ -723,13 +723,20 @@ function offline_download_parse(stage, transport) {
var has_sync_data = has_local_sync_data(); var has_sync_data = has_local_sync_data();
if (articles_found >= limit || has_sync_data) { if (articles_found >= limit || has_sync_data) {
window.setTimeout("update_offline_data("+(stage+1)+")", 10*1000); window.setTimeout("update_offline_data("+(stage+1)+")", 5*1000);
debug("<b>update_offline_data: done " + stage + " HSD: " + debug("<b>update_offline_data: done " + stage + " HSD: " +
has_sync_data + "</b>"); has_sync_data + "</b>");
} else { } else {
window.setTimeout("update_offline_data(0)", 180*1000); window.setTimeout("update_offline_data(0)", 180*1000);
debug("update_offline_data: finished"); debug("update_offline_data: finished");
var pic = $("restartOfflinePic");
if (pic) {
pic.src = "images/offline.png";
pic.title = __("Restart in offline mode");
}
db.execute("DELETE FROM articles WHERE "+ db.execute("DELETE FROM articles WHERE "+
"updated < DATETIME('NOW', 'localtime', '-31 days')"); "updated < DATETIME('NOW', 'localtime', '-31 days')");
@ -738,6 +745,7 @@ function offline_download_parse(stage, transport) {
update_local_sync_data(); update_local_sync_data();
// notify(''); // notify('');
} }
@ -778,6 +786,13 @@ function update_offline_data(stage) {
debug(query + "/" + to_sync); debug(query + "/" + to_sync);
var pic = $("restartOfflinePic");
if (pic) {
pic.src = "images/offline-sync.gif";
pic.title = __("Synchronizing offline data...");
}
new Ajax.Request(query, { new Ajax.Request(query, {
parameters: to_sync, parameters: to_sync,
onComplete: function(transport) { onComplete: function(transport) {