]> git.wh0rd.org - tt-rss.git/blobdiff - js/feedlist.js
Removing required attribute from database password field
[tt-rss.git] / js / feedlist.js
index 9d643142b09382d1be20e262e7971f0c03417a65..7c2e08052d41888afa630db048d5d36fc46f5a9d 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;
 
@@ -34,10 +35,7 @@ function loadMoreHeadlines() {
                } else if (_search_query) {
                        offset = num_all;
                } else if (view_mode == "adaptive") {
-                       if (num_unread > 0)
-                               offset = unread_in_buffer;
-                       else
-                               offset = num_all;
+                       offset = num_unread > 0 ? unread_in_buffer : num_all;
                } else {
                        offset = num_all;
                }
@@ -52,7 +50,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;
@@ -94,7 +92,7 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
 
                var toolbar_query = Form.serialize("main_toolbar_form");
 
-               var query = "?op=feeds&method=view&feed=" + feed + "&" +
+               var query = "?op=feeds&method=view&feed=" + param_escape(feed) + "&" +
                        toolbar_query;
 
                if (method) {
@@ -132,12 +130,24 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
 
                console.log(query);
 
-               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);
-                       } });
+               if (can_wait && _viewfeed_timeout) {
+                       setFeedExpandoIcon(getActiveFeedId(), activeFeedIsCat(), 'images/blank_icon.gif');
+                       clearTimeout(_viewfeed_timeout);
+               }
+
+               setActiveFeedId(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);
@@ -148,6 +158,8 @@ function feedlist_init() {
        try {
                console.log("in feedlist init");
 
+               loading_set_progress(50);
+
                document.onkeydown = hotkey_handler;
                setTimeout("hotkey_prefix_timeout()", 5*1000);
 
@@ -214,6 +226,7 @@ function parse_counters(elems, scheduled_call) {
                        var error = elems[l].error;
                        var has_img = elems[l].has_img;
                        var updated = elems[l].updated;
+                       var auxctr = parseInt(elems[l].auxcounter);
 
                        if (id == "global-unread") {
                                global_unread = ctr;
@@ -231,6 +244,7 @@ function parse_counters(elems, scheduled_call) {
                        }
 
                        setFeedUnread(id, (kind == "cat"), ctr);
+                       setFeedValue(id, (kind == "cat"), 'auxcounter', auxctr);
 
                        if (kind != "cat") {
                                setFeedValue(id, false, 'error', error);
@@ -380,20 +394,8 @@ function getNextUnreadFeed(feed, is_cat) {
        }
 }
 
-function catchupCurrentFeed(elem) {
-
-       if (elem) {
-               var toolbar = document.forms["main_toolbar_form"];
-               var catchup_feed = dijit.getEnclosingWidget(toolbar.catchup_feed);
-               var mode = catchup_feed.attr('value');
-
-               if (mode != 'default') {
-                       catchupFeed(getActiveFeedId(), activeFeedIsCat(), mode);
-                       catchup_feed.attr('value', 'default');
-               }
-       } else {
-               catchupFeed(getActiveFeedId(), activeFeedIsCat());
-       }
+function catchupCurrentFeed(mode) {
+       catchupFeed(getActiveFeedId(), activeFeedIsCat(), mode);
 }
 
 function catchupFeedInGroup(id) {
@@ -425,7 +427,7 @@ function catchupFeed(feed, is_cat, mode) {
                case "1week":
                        str = __("Mark all articles in %s older than 1 week as read?");
                        break;
-               case "2weeks":
+               case "2week":
                        str = __("Mark all articles in %s older than 2 weeks as read?");
                        break;
                default: