X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=js%2Ffeedlist.js;h=4aa70a36175978669aeee4e86d58cb97e8d118c0;hb=7e8be97b660be63ff3515dfd6f61b252eef9a130;hp=10be5126b12a4308f076ebda56f6c1380049ec3e;hpb=8572e0108aa76838da20d7d4ea21d6cd4b931f56;p=tt-rss.git diff --git a/js/feedlist.js b/js/feedlist.js index 10be5126..4aa70a36 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -61,21 +61,14 @@ function cleanup_memory(root) { function viewfeed(params) { const feed = params.feed; - let is_cat = params.is_cat; - let offset = params.offset; - let background = params.background; - let infscroll_req = params.infscroll_req; + let is_cat = !!params.is_cat || false; + let offset = params.offset || 0; + let background = params.background || false; + let infscroll_req = params.infscroll_req || false; const can_wait = params.can_wait; const viewfeed_debug = params.viewfeed_debug; const method = params.method; - if (is_cat == undefined) - is_cat = false; - else - is_cat = !!is_cat; - - if (offset == undefined) offset = 0; - if (background == undefined) background = false; if (infscroll_req == undefined) infscroll_req = false; last_requested_article = 0; @@ -109,34 +102,31 @@ function viewfeed(params) { Form.enable("main_toolbar_form"); - const toolbar_query = Form.serialize("main_toolbar_form"); - - let query = "?op=feeds&method=view&feed=" + param_escape(feed) + "&" + - toolbar_query; + let query = Object.assign({op: "feeds", method: "view", feed: feed}, + dojo.formToObject("main_toolbar_form")); - 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"); @@ -146,9 +136,7 @@ function viewfeed(params) { notify_progress("Loading, please wait...", true); } - query += "&cat=" + is_cat; - - console.log(query); + query.cat = is_cat; if (can_wait && _viewfeed_timeout) { setFeedExpandoIcon(getActiveFeedId(), activeFeedIsCat(), 'images/blank_icon.gif'); @@ -158,23 +146,25 @@ 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(function() { - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(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); - } - } }); + _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); + } + }); + }, timeout_ms); // Wait 250ms } @@ -185,7 +175,7 @@ function feedlist_init() { loading_set_progress(50); document.onkeydown = hotkey_handler; - setTimeout(hotkey_prefix_timeout, 5*1000); + setInterval(hotkey_prefix_timeout, 5*1000); if (!getActiveFeedId()) { viewfeed({feed: -3}); @@ -235,18 +225,14 @@ function request_counters(force) { counters_last_request = timestamp; - let query = "?op=rpc&method=getAllCounters&seq=" + next_seq(); + let query = {op: "rpc", method: "getAllCounters", seq: next_seq()}; if (!force) - query = query + "&last_article_id=" + getInitParam("last_article_id"); - - console.log(query); + query.last_article_id = getInitParam("last_article_id"); - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); - } }); + xhrPost("backend.php", query, (transport) => { + handle_rpc_json(transport); + }); } else { console.log("request_counters: rate limit reached: " + (timestamp - counters_last_request)); @@ -481,21 +467,11 @@ function catchupFeedInGroup(id) { updateFloatingTitle(true); } - const catchup_query = "?op=rpc&method=catchupFeed&feed_id=" + - id + "&is_cat=false"; - - console.log(catchup_query); - notify_progress("Loading, please wait...", true); - new Ajax.Request("backend.php", { - parameters: catchup_query, - onComplete: function (transport) { - handle_rpc_json(transport); - } - } ); - - //return viewCurrentFeed('MarkAllReadGR:' + id); + xhrPost("backend.php", { op: "rpc", method: "catchupFeed", feed_id: id, is_cat: false}, (transport) => { + handle_rpc_json(transport); + }); } } @@ -532,30 +508,25 @@ function catchupFeed(feed, is_cat, mode) { is_cat: is_cat, mode: mode, search_query: last_search_query[0], search_lang: last_search_query[1]}; - console.log(catchup_query); - notify_progress("Loading, please wait...", true); - new Ajax.Request("backend.php", { - parameters: catchup_query, - onComplete: function(transport) { - handle_rpc_json(transport); + xhrPost("backend.php", catchup_query, (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(); - } - - notify(""); - } }); + if (nuf) { + viewfeed({feed: nuf, is_cat: is_cat}); + } + } else if (feed == getActiveFeedId() && is_cat == activeFeedIsCat()) { + viewCurrentFeed(); + } + notify(""); + }); } function decrementFeedCounter(feed, is_cat) {