]> git.wh0rd.org - tt-rss.git/commitdiff
Merge pull request #223 from mhaley/patches-viewfeed-timeout
authorAndrew Dolgov <fox+ttrss@fakecake.org>
Mon, 17 Jun 2013 20:13:32 +0000 (13:13 -0700)
committerAndrew Dolgov <fox+ttrss@fakecake.org>
Mon, 17 Jun 2013 20:13:32 +0000 (13:13 -0700)
Load selected feed after a short timeout

js/feedlist.js
js/tt-rss.js

index 84b561227578c82b6b62dafb782c61a6520331e7..222fbcbe06bc8683ddf8c2ccfd9f24cf92d21572 100644 (file)
@@ -2,6 +2,7 @@ var _infscroll_disable = 0;
 var _infscroll_request_sent = 0;
 var _search_query = false;
 var _viewfeed_last = 0;
+var _viewfeed_timeout = false;
 
 var counters_last_request = 0;
 
@@ -52,7 +53,7 @@ function loadMoreHeadlines() {
 }
 
 
-function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
+function viewfeed(feed, method, is_cat, offset, background, infscroll_req, can_wait) {
        try {
                if (is_cat == undefined)
                        is_cat = false;
@@ -132,15 +133,24 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
 
                console.log(query);
 
+               if (can_wait && _viewfeed_timeout) {
+                       setFeedExpandoIcon(getActiveFeedId(), activeFeedIsCat(), 'images/blank_icon.gif');
+                       clearTimeout(_viewfeed_timeout);
+               }
+
                setActiveFeedId(feed, is_cat);
 
-               new Ajax.Request("backend.php", {
-                       parameters: query,
-                       onComplete: function(transport) {
-                               setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
-                               headlines_callback2(transport, offset, background, infscroll_req);
-                               PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
-                       } });
+               timeout_ms = can_wait ? 250 : 0;
+               _viewfeed_timeout = setTimeout(function() {
+
+                       new Ajax.Request("backend.php", {
+                               parameters: query,
+                               onComplete: function(transport) {
+                                       setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
+                                       headlines_callback2(transport, offset, background, infscroll_req);
+                                       PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
+                               } });
+               }, timeout_ms); // Wait 250ms
 
        } catch (e) {
                exception_error("viewfeed", e);
index ee3156c2887c3b216e2c5ec2cbbaf3cf500642e3..cc04a454a1413b21f585f35d83f134e7bf49b8ea 100644 (file)
@@ -272,13 +272,13 @@ function init() {
                                var rv = dijit.byId("feedTree").getNextFeed(
                                                getActiveFeedId(), activeFeedIsCat());
 
-                               if (rv) viewfeed(rv[0], '', rv[1]);
+                               if (rv) viewfeed(rv[0], '', rv[1], null, null, null, true);
                };
                hotkey_actions["prev_feed"] = function() {
                                var rv = dijit.byId("feedTree").getPreviousFeed(
                                                getActiveFeedId(), activeFeedIsCat());
 
-                               if (rv) viewfeed(rv[0], '', rv[1]);
+                               if (rv) viewfeed(rv[0], '', rv[1], null, null, null, true);
                };
                hotkey_actions["next_article"] = function() {
                                moveToPost('next');