offline: implement local catchup

This commit is contained in:
Andrew Dolgov 2009-02-07 11:10:08 +03:00
parent 6b6842996c
commit 6762574509
1 changed files with 29 additions and 0 deletions

View File

@ -103,6 +103,10 @@ function viewfeed_offline(feed_id, subop, is_cat, subop_param, skip_history, off
}
}
if (subop == "MarkAllRead") {
catchup_local_feed(feed_id, is_cat);
}
disableContainerChildren("headlinesToolbar", false);
Form.enable("main_toolbar_form");
@ -1266,3 +1270,28 @@ function update_local_sync_data() {
exception_error("update_local_sync_data", e);
}
}
function catchup_local_feed(id, is_cat) {
try {
if (!is_cat) {
if (id >= 0) {
db.execute("UPDATE articles SET unread = 0 WHERE feed_id = ?", [id]);
} else if (id == -1) {
db.execute("UPDATE articles SET unread = 0 WHERE marked = 1");
} else if (id == -4) {
db.execute("UPDATE articles SET unread = 0");
} else if (id < -10) {
var label_id = -11-id;
db.execute("UPDATE articles SET unread = 0 WHERE "+
"(SELECT COUNT(*) FROM article_labels WHERE "+
"article_labels.id = articles.id AND label_id = ?) > 0", [label_id]);
}
}
update_local_feedlist_counters();
} catch (e) {
exception_error("catchup_local_feed", e);
}
}