]> git.wh0rd.org - tt-rss.git/blobdiff - js/feedlist.js
pngcrush.sh
[tt-rss.git] / js / feedlist.js
index b3082bad00e00d708199eea41ba497c248b80752..41916d5c649275939513f5de88c5e0c9ba64e69c 100644 (file)
@@ -102,34 +102,31 @@ function viewfeed(params) {
 
        Form.enable("main_toolbar_form");
 
-       const toolbar_query = Form.serialize("main_toolbar_form");
+       let query = Object.assign({op: "feeds", method: "view", feed: feed},
+               dojo.formToObject("main_toolbar_form"));
 
-       let query = "?op=feeds&method=view&feed=" + param_escape(feed) + "&" +
-               toolbar_query;
-
-       if (method) query += "&m=" + param_escape(method);
+       if (method) query.m = method;
 
        if (offset > 0) {
                if (current_first_id) {
-                       query = query + "&fid=" + param_escape(current_first_id);
+                       query.fid = current_first_id;
                }
        }
 
        if (!background) {
                if (_search_query) {
-                       query = query + "&" + _search_query;
-                       //_search_query = false;
+                       query = Object.assign(query, _search_query);
                }
 
                if (offset != 0) {
-                       query = query + "&skip=" + offset;
+                       query.skip = offset;
 
                        // to prevent duplicate feed titles when showing grouped vfeeds
                        if (vgroup_last_feed) {
-                               query = query + "&vgrlf=" + param_escape(vgroup_last_feed);
+                               query.vgrlf = vgroup_last_feed;
                        }
                } else if (!is_cat && feed == getActiveFeedId() && !params.method) {
-                               query = query + "&m=ForceUpdate";
+                               query.m = "ForceUpdate";
                        }
 
                Form.enable("main_toolbar_form");
@@ -139,7 +136,7 @@ function viewfeed(params) {
                                notify_progress("Loading, please wait...", true);
        }
 
-       query += "&cat=" + is_cat;
+       query.cat = is_cat;
 
        if (can_wait && _viewfeed_timeout) {
                setFeedExpandoIcon(getActiveFeedId(), activeFeedIsCat(), 'images/blank_icon.gif');
@@ -149,20 +146,23 @@ function viewfeed(params) {
        setActiveFeedId(feed, is_cat);
 
        if (viewfeed_debug) {
-               window.open("backend.php" + query + "&debug=1&csrf_token=" + getInitParam("csrf_token"));
+               window.open("backend.php?" +
+                       dojo.objectToQuery(
+                               Object.assign({debug: 1, csrf_token: getInitParam("csrf_token")}, query)
+                       ));
        }
 
        const timeout_ms = can_wait ? 250 : 0;
        _viewfeed_timeout = setTimeout(() => {
 
                xhrPost("backend.php", query, (transport) => {
-            try {
-                setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
-                headlines_callback2(transport, offset, background, infscroll_req);
-                PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
-            } catch (e) {
-                exception_error(e);
-            }
+                       try {
+                               setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
+                               headlines_callback2(transport, offset, background, infscroll_req);
+                               PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
+                       } catch (e) {
+                               exception_error(e);
+                       }
                });
 
        }, timeout_ms); // Wait 250ms
@@ -175,7 +175,8 @@ function feedlist_init() {
        loading_set_progress(50);
 
        document.onkeydown = hotkey_handler;
-       setTimeout(hotkey_prefix_timeout, 5*1000);
+       setInterval(hotkey_prefix_timeout, 5*1000);
+       setInterval(catchupBatchedArticles, 3*1000);
 
        if (!getActiveFeedId()) {
                viewfeed({feed: -3});
@@ -208,11 +209,11 @@ function feedlist_init() {
        }
 
        // bw_limit disables timeout() so we request initial counters separately
-    if (getInitParam("bw_limit") == "1") {
+       if (getInitParam("bw_limit") == "1") {
                request_counters(true);
-    } else {
-       setTimeout(timeout, 250);
-    }
+       } else {
+               setTimeout(timeout, 250);
+       }
 }
 
 
@@ -231,7 +232,7 @@ function request_counters(force) {
                        query.last_article_id = getInitParam("last_article_id");
 
                xhrPost("backend.php", query, (transport) => {
-            handle_rpc_json(transport);
+                       handle_rpc_json(transport);
                });
 
        } else {
@@ -451,7 +452,7 @@ function catchupFeedInGroup(id) {
 
                        });
 
-                       const feedTitles = $$("#headlines-frame > div[class='cdmFeedTitle']");
+                       const feedTitles = $$("#headlines-frame > div[class='feed-title']");
 
                        for (let i = 0; i < feedTitles.length; i++) {
                                if (feedTitles[i].getAttribute("data-feed-id") == id) {
@@ -470,7 +471,7 @@ function catchupFeedInGroup(id) {
                notify_progress("Loading, please wait...", true);
 
                xhrPost("backend.php", { op: "rpc", method: "catchupFeed", feed_id: id, is_cat: false}, (transport) => {
-            handle_rpc_json(transport);
+                       handle_rpc_json(transport);
                });
        }
 }
@@ -511,21 +512,21 @@ function catchupFeed(feed, is_cat, mode) {
        notify_progress("Loading, please wait...", true);
 
        xhrPost("backend.php", catchup_query, (transport) => {
-        handle_rpc_json(transport);
+               handle_rpc_json(transport);
 
-        const show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
+               const show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
 
-        if (show_next_feed) {
-            const nuf = getNextUnreadFeed(feed, is_cat);
+               if (show_next_feed) {
+                       const nuf = getNextUnreadFeed(feed, is_cat);
 
-            if (nuf) {
-                viewfeed({feed: nuf, is_cat: is_cat});
-            }
-        } else if (feed == getActiveFeedId() && is_cat == activeFeedIsCat()) {
-            viewCurrentFeed();
-        }
+                       if (nuf) {
+                               viewfeed({feed: nuf, is_cat: is_cat});
+                       }
+               } else if (feed == getActiveFeedId() && is_cat == activeFeedIsCat()) {
+                       viewCurrentFeed();
+               }
 
-        notify("");
+               notify("");
        });
 }