feed_id = reply['headlines']['id'];
last_search_query = reply['headlines']['search_query'];
- console.log(feed_id, getActiveFeedId(), is_cat, activeFeedIsCat());
-
if (feed_id != -7 && (feed_id != getActiveFeedId() || is_cat != activeFeedIsCat()))
return;
function article_callback2(transport, id) {
console.log("article_callback2 " + id);
- handle_rpc_json(transport);
-
- let reply = false;
-
- try {
- reply = JSON.parse(transport.responseText);
- } catch (e) {
- console.error(e);
- }
+ const reply = handle_rpc_json(transport);
if (reply) {
cache_set("article:" + article['id'], article['content']);
});
-// if (id != last_requested_article) {
-// console.log("requested article id is out of sequence, aborting");
-// return;
-// }
-
} else {
console.error("Invalid object received: " + transport.responseText);
__('Could not display article (invalid object received - see error console for details)') + "</div>");
}
- const unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length
+ const unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length;
request_counters(unread_in_buffer == 0);
notify("");
console.log("cache check result: " + (cached_article != false));
- let query = "?op=article&method=view&id=" + param_escape(id);
+ const query = {op: "article", method: "view", id: id};
const neighbor_ids = getRelativePostIds(id);
console.log("additional ids: " + cids_to_request.toString());
- query = query + "&cids=" + cids_to_request.toString();
+ query.cids = cids_to_request.toString();
const article_is_unread = crow.hasClassName("Unread");
showArticleInHeadlines(id);
if (cached_article && article_is_unread) {
-
- query = query + "&mode=prefetch";
-
+ query.mode = "prefetch";
render_article(cached_article);
-
} else if (cached_article) {
-
- query = query + "&mode=prefetch_old";
+ query.mode = "prefetch_old";
render_article(cached_article);
// if we don't need to request any relative ids, we might as well skip
decrementFeedCounter(getActiveFeedId(), activeFeedIsCat());
}
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- article_callback2(transport, id);
- } });
+ xhrPost("backend.php", query, (transport) => {
+ article_callback2(transport, id);
+ })
return false;
}
function toggleMark(id, client_only) {
- let query = "?op=rpc&id=" + id + "&method=mark";
+ const query = { op: "rpc", id: id, method: "mark" };
const row = $("RROW-" + id);
if (!row) return;
const row_imgs = row.getElementsByClassName("markedPic");
- for (var i = 0; i < row_imgs.length; i++)
+ for (let i = 0; i < row_imgs.length; i++)
imgs.push(row_imgs[i]);
const ft = $("floatingTitle");
if (!row.hasClassName("marked")) {
img.src = img.src.replace("mark_unset", "mark_set");
- query = query + "&mark=1";
+ query.mark = 1;
} else {
img.src = img.src.replace("mark_set", "mark_unset");
- query = query + "&mark=0";
+ query.mark = 0;
}
}
row.toggleClassName("marked");
- if (!client_only) {
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function (transport) {
- handle_rpc_json(transport);
- }
+ if (!client_only)
+ xhrPost("backend.php", query, (transport) => {
+ handle_rpc_json(transport);
});
}
-}
function togglePub(id, client_only, no_effects, note) {
- let query = "?op=rpc&id=" + id + "&method=publ";
+ const query = { op: "rpc", id: id, method: "publ" };
if (note != undefined) {
- query = query + "¬e=" + param_escape(note);
+ query.note = note;
} else {
- query = query + "¬e=undefined";
+ query.note = "undefined";
}
const row = $("RROW-" + id);
const row_imgs = row.getElementsByClassName("pubPic");
- for (var i = 0; i < row_imgs.length; i++)
+ for (let i = 0; i < row_imgs.length; i++)
imgs.push(row_imgs[i]);
const ft = $("floatingTitle");
if (ft && ft.getAttribute("data-article-id") == id) {
const fte = ft.getElementsByClassName("pubPic");
- for (var i = 0; i < fte.length; i++)
+ for (let i = 0; i < fte.length; i++)
imgs.push(fte[i]);
}
- for (var i = 0; i < imgs.length; i++) {
+ for (let i = 0; i < imgs.length; i++) {
const img = imgs[i];
if (!row.hasClassName("published") || note != undefined) {
img.src = img.src.replace("pub_unset", "pub_set");
- query = query + "&pub=1";
+ query.pub = 1;
} else {
img.src = img.src.replace("pub_set", "pub_unset");
- query = query + "&pub=0";
+ query.pub = 0;
}
}
else
row.toggleClassName("published");
- if (!client_only) {
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
+ if (!client_only)
+ xhrPost("backend.php", query, (transport) => {
handle_rpc_json(transport);
- } });
- }
-
+ });
}
function moveToPost(mode, noscroll, noexpand) {
}
-function toggleUnread(id, cmode, effect) {
+function toggleUnread(id, cmode) {
const row = $("RROW-" + id);
if (row) {
const tmpClassName = row.className;
row.addClassName("Unread");
}
- if (cmode == undefined) cmode = 2;
-
- const query = "?op=rpc&method=catchupSelected" +
- "&cmode=" + param_escape(cmode) + "&ids=" + param_escape(id);
+ if (tmpClassName != row.className) {
+ if (cmode == undefined) cmode = 2;
-// notify_progress("Loading, please wait...");
+ const query = {op: "rpc", method: "catchupSelected",
+ cmode: cmode, ids: id};
- if (tmpClassName != row.className) {
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function (transport) {
+ xhrPost("backend.php", query, (transport) => {
handle_rpc_json(transport);
- }
+
});
}
-
}
}
return;
}
- const query = "?op=article&method=removeFromLabel&ids=" +
- param_escape(ids.toString()) + "&lid=" + param_escape(id);
-
- console.log(query);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
- show_labels_in_headlines(transport);
- } });
+ const query = { op: "article", method: "removeFromLabel",
+ ids: ids.toString(), lid: id };
+ xhrPost("backend.php", query, (transport) => {
+ handle_rpc_json(transport);
+ show_labels_in_headlines(transport);
+ });
}
function selectionAssignLabel(id, ids) {
return;
}
- const query = "?op=article&method=assignToLabel&ids=" +
- param_escape(ids.toString()) + "&lid=" + param_escape(id);
-
- console.log(query);
+ const query = { op: "article", method: "assignToLabel",
+ ids: ids.toString(), lid: id };
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
- show_labels_in_headlines(transport);
- } });
+ xhrPost("backend.php", query, (transport) => {
+ handle_rpc_json(transport);
+ show_labels_in_headlines(transport);
+ });
}
function selectionToggleUnread(set_state, callback, no_error, ids) {
cmode = "0";
}
- const query = "?op=rpc&method=catchupSelected" +
- "&cmode=" + cmode + "&ids=" + param_escape(rows.toString());
+ const query = {op: "rpc", method: "catchupSelected",
+ cmode: cmode, ids: rows.toString() };
notify_progress("Loading, please wait...");
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
- if (callback) callback(transport);
- } });
+ xhrPost("backend.php", query, (transport) => {
+ handle_rpc_json(transport);
+ if (callback) callback(transport);
+ });
}
}
}
if (rows.length > 0) {
+ const query = { op: "rpc", method: "markSelected",
+ ids: rows.toString(), cmode: 2 };
- const query = "?op=rpc&method=markSelected&ids=" +
- param_escape(rows.toString()) + "&cmode=2";
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
- if (callback) callback(transport);
- } });
-
+ xhrPost("backend.php", query, (transport) => {
+ handle_rpc_json(transport);
+ if (callback) callback(transport);
+ });
}
}
}
if (rows.length > 0) {
+ const query = { op: "rpc", method: "publishSelected",
+ ids: rows.toString(), cmode: 2 };
- const query = "?op=rpc&method=publishSelected&ids=" +
- param_escape(rows.toString()) + "&cmode=2";
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
- } });
-
+ xhrPost("backend.php", query, (transport) => {
+ handle_rpc_json(transport);
+ if (callback) callback(transport);
+ });
}
}
const children = $$(query);
children.each(function(child) {
- const id = child.getAttribute("data-article-id");
+ //const id = child.getAttribute("data-article-id");
const cb = dijit.getEnclosingWidget(
child.getElementsByClassName("rchk")[0]);