diff options
Diffstat (limited to 'js/Feeds.js')
-rw-r--r-- | js/Feeds.js | 72 |
1 files changed, 45 insertions, 27 deletions
diff --git a/js/Feeds.js b/js/Feeds.js index 33a1fa3dc..befd7e46e 100644 --- a/js/Feeds.js +++ b/js/Feeds.js @@ -113,7 +113,7 @@ const Feeds = { this.hideOrShowFeeds(App.getInitParam("hide_read_feeds")); this._counters_prev = elems; - PluginHost.run(PluginHost.HOOK_COUNTERS_PROCESSED); + PluginHost.run(PluginHost.HOOK_COUNTERS_PROCESSED, elems); }, reloadCurrent: function(method) { if (this.getActive() != undefined) { @@ -133,9 +133,10 @@ const Feeds = { return Feeds.reloadCurrent(''); }, openNextUnread: function() { - const is_cat = this.activeIsCat(); - const nuf = this.getNextUnread(this.getActive(), is_cat); - if (nuf) this.open({feed: nuf, is_cat: is_cat}); + const [feed, is_cat] = this.getNextUnread(this.getActive(), this.activeIsCat()); + + if (feed !== false) + this.open({feed: feed, is_cat: is_cat}); }, toggle: function() { Element.toggle("feeds-holder"); @@ -311,18 +312,22 @@ const Feeds = { setActive: function(id, is_cat) { console.log('setActive', id, is_cat); - if ('requestIdleCallback' in window) - window.requestIdleCallback(() => { - App.Hash.set({f: id, c: is_cat ? 1 : 0}); - }); - else + window.requestIdleCallback(() => { App.Hash.set({f: id, c: is_cat ? 1 : 0}); + }); this._active_feed_id = id; this._active_feed_is_cat = is_cat; - App.byId("headlines-frame").setAttribute("feed-id", id); - App.byId("headlines-frame").setAttribute("is-cat", is_cat ? 1 : 0); + const container = App.byId("headlines-frame"); + + // TODO @deprecated: these two should be removed (replaced with data- attributes below) + container.setAttribute("feed-id", id); + container.setAttribute("is-cat", is_cat ? 1 : 0); + // ^ + + container.setAttribute("data-feed-id", id); + container.setAttribute("data-is-cat", is_cat ? "true" : "false"); this.select(id, is_cat); @@ -395,21 +400,20 @@ const Feeds = { query.m = "ForceUpdate"; } - if (!delayed) - if (!this.setExpando(feed, is_cat, - (is_cat) ? 'images/indicator_tiny.gif' : 'images/indicator_white.gif')) - Notify.progress("Loading, please wait...", true); - query.cat = is_cat; this.setActive(feed, is_cat); window.clearTimeout(this._viewfeed_wait_timeout); this._viewfeed_wait_timeout = window.setTimeout(() => { + + this.showLoading(feed, is_cat, true); + //Notify.progress("Loading, please wait...", true);*/ + xhr.json("backend.php", query, (reply) => { try { window.clearTimeout(this._infscroll_timeout); - this.setExpando(feed, is_cat, 'images/blank_icon.gif'); + this.showLoading(feed, is_cat, false); Headlines.onLoaded(reply, offset, append); PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]); } catch (e) { @@ -475,10 +479,10 @@ const Feeds = { // only select next unread feed if catching up entirely (as opposed to last week etc) if (show_next_feed && !mode) { - const nuf = this.getNextUnread(feed, is_cat); + const [next_feed, next_is_cat] = this.getNextUnread(feed, is_cat); - if (nuf) { - this.open({feed: nuf, is_cat: is_cat}); + if (next_feed !== false) { + this.open({feed: next_feed, is_cat: next_is_cat}); } } else if (feed == this.getActive() && is_cat == this.activeIsCat()) { this.reloadCurrent(); @@ -522,7 +526,7 @@ const Feeds = { const tree = dijit.byId("feedTree"); if (tree && tree.model) - return tree._cat_of_feed(feed); + return tree.getFeedCategory(feed); } catch (e) { // @@ -570,21 +574,35 @@ const Feeds = { setIcon: function(feed, is_cat, src) { const tree = dijit.byId("feedTree"); - if (tree) return tree.setFeedIcon(feed, is_cat, src); + if (tree) return tree.setIcon(feed, is_cat, src); }, - setExpando: function(feed, is_cat, src) { + showLoading: function(feed, is_cat, show) { const tree = dijit.byId("feedTree"); - if (tree) return tree.setFeedExpandoIcon(feed, is_cat, src); + if (tree) return tree.showLoading(feed, is_cat, show); return false; }, + getNextFeed: function(feed, is_cat) { + const tree = dijit.byId("feedTree"); + + if (tree) return tree.getNextFeed(feed, is_cat, false); + + return [false, false]; + }, + getPreviousFeed: function(feed, is_cat) { + const tree = dijit.byId("feedTree"); + + if (tree) return tree.getPreviousFeed(feed, is_cat); + + return [false, false]; + }, getNextUnread: function(feed, is_cat) { const tree = dijit.byId("feedTree"); - const nuf = tree.model.getNextUnreadFeed(feed, is_cat); - if (nuf) - return tree.model.store.getValue(nuf, 'bare_id'); + if (tree) return tree.getNextUnread(feed, is_cat); + + return [false, false]; }, search: function() { xhr.json("backend.php", |