offline: implement local catchup
This commit is contained in:
parent
6b6842996c
commit
6762574509
1 changed files with 29 additions and 0 deletions
29
offline.js
29
offline.js
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue