catchupFeedInGroup: overhaul

1. less hacky way to catchup actually unread headlines
2. don't fade rows away because it's inconsistent with different mark-as-read functions
3. fix stuck progress alert
This commit is contained in:
Andrew Dolgov 2018-12-09 13:52:21 +03:00
parent fa538a6c86
commit dc84e10ba1
2 changed files with 6 additions and 29 deletions

View File

@ -480,40 +480,17 @@ define(["dojo/_base/declare"], function (declare) {
if (App.getInitParam("confirm_feed_catchup") != 1 || confirm(str)) {
const rows = $$("#headlines-frame > div[id*=RROW][data-orig-feed-id='" + id + "']");
const rows = $$("#headlines-frame > div[id*=RROW][class*=Unread][data-orig-feed-id='" + id + "']");
if (rows.length > 0) {
rows.each(function (row) {
row.removeClassName("Unread");
if (row.getAttribute("data-article-id") != Article.getActive()) {
new Effect.Fade(row, {duration: 0.5});
}
for (let i = 0; i < rows.length; i++)
Headlines.catchup_id_batch.push(rows[i].getAttribute("data-article-id"));
Headlines.catchupBatched(() => {
Headlines.updateFloatingTitle(true);
});
const feedTitles = $$("#headlines-frame > div[class='feed-title']");
for (let i = 0; i < feedTitles.length; i++) {
if (feedTitles[i].getAttribute("data-feed-id") == id) {
if (i < feedTitles.length - 1) {
new Effect.Fade(feedTitles[i], {duration: 0.5});
}
break;
}
}
Headlines.updateFloatingTitle(true);
}
Notify.progress("Loading, please wait...", true);
xhrPost("backend.php", {op: "rpc", method: "catchupFeed", feed_id: id, is_cat: false}, (transport) => {
App.handleRpcJson(transport);
});
}
},
getUnread: function(feed, is_cat) {

View File

@ -255,7 +255,7 @@ define(["dojo/_base/declare"], function (declare) {
let vgrhdr = `<div data-feed-id='${hl.feed_id}' class='feed-title'>
<div style='float : right'>${hl.feed_icon}</div>
<a class="title" href="#" onclick="Feeds.open({feed:${hl.feed_id}})">${hl.feed_title}
<a class="catchup" onclick="Feeds.catchupFeedInGroup(${hl.feed_id})" href="#">${__('mark feed as read')}</a>
<a class="catchup" title="${__('mark feed as read')}" onclick="Feeds.catchupFeedInGroup(${hl.feed_id})" href="#"><i class="material-icons">check_circle</i></a>
</div>`
const tmp = document.createElement("div");