summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-19 11:28:14 +0300
committerAndrew Dolgov <[email protected]>2021-02-19 11:28:14 +0300
commitbb4e4282f46824308aebc2eaeac29fa29f8687ad (patch)
tree8355547f2cf4baefc4a41146d27dcbd3240f724a
parent6b43b788d909ce20f07f29f9f3ccd2f6a8715616 (diff)
migrate a bunch of xhrPost invocations
-rw-r--r--classes/pref/system.php4
-rw-r--r--js/App.js30
-rw-r--r--js/Article.js6
-rw-r--r--js/CommonDialogs.js21
-rw-r--r--js/CommonFilters.js6
-rw-r--r--js/Feeds.js6
-rw-r--r--js/PrefFeedTree.js22
-rw-r--r--js/PrefFilterTree.js8
-rw-r--r--js/PrefHelpers.js18
-rw-r--r--js/PrefLabelTree.js10
-rw-r--r--js/PrefUsers.js6
-rwxr-xr-xjs/common.js1
12 files changed, 64 insertions, 74 deletions
diff --git a/classes/pref/system.php b/classes/pref/system.php
index a4a072ea9..bc519a321 100644
--- a/classes/pref/system.php
+++ b/classes/pref/system.php
@@ -165,8 +165,8 @@ class Pref_System extends Handler_Administrative {
<script type='dojo/method' event='onSelected' args='evt'>
if (this.domNode.querySelector('.loading'))
window.setTimeout(() => {
- xhrPost("backend.php", {op: 'pref-system', method: 'getphpinfo'}, (transport) => {
- this.attr('content', `<div class='phpinfo'>${transport.responseText}</div>`);
+ xhr.post("backend.php", {op: 'pref-system', method: 'getphpinfo'}, (reply) => {
+ this.attr('content', `<div class='phpinfo'>${reply}</div>`);
});
}, 200);
</script>
diff --git a/js/App.js b/js/App.js
index 0c12c7e6f..1b0fa7c65 100644
--- a/js/App.js
+++ b/js/App.js
@@ -2,7 +2,7 @@
/* eslint-disable new-cap */
/* global __, Article, Headlines, Filters, fox */
-/* global xhrPost, xhrJson, dojo, dijit, PluginHost, Notify, Feeds, Cookie */
+/* global xhrPost, xhr, dojo, dijit, PluginHost, Notify, Feeds, Cookie */
/* global CommonDialogs, Plugins */
const App = {
@@ -362,10 +362,10 @@ const App = {
}
},
hotkeyHelp: function() {
- xhrPost("backend.php", {op: "rpc", method: "hotkeyHelp"}, (transport) => {
+ xhr.post("backend.php", {op: "rpc", method: "hotkeyHelp"}, (reply) => {
const dialog = new fox.SingleUseDialog({
title: __("Keyboard shortcuts"),
- content: transport.responseText,
+ content: reply,
});
dialog.show();
@@ -474,11 +474,9 @@ const App = {
PluginHost.run(PluginHost.HOOK_RUNTIME_INFO_LOADED, data);
},
- backendSanityCallback: function(transport) {
- const reply = JSON.parse(transport.responseText);
-
+ backendSanityCallback: function(reply) {
if (!reply) {
- this.Error.fatal(ERRORS[3], {info: transport.responseText});
+ this.Error.fatal(ERRORS[3]);
return;
}
@@ -559,14 +557,14 @@ const App = {
const message = params.message ? params.message : error.toString();
try {
- xhrPost("backend.php",
+ xhr.post("backend.php",
{op: "rpc", method: "log",
file: params.filename ? params.filename : error.fileName,
line: params.lineno ? params.lineno : error.lineNumber,
msg: message,
context: error.stack},
- (transport) => {
- console.warn("[Error.report] log response", transport.responseText);
+ (reply) => {
+ console.warn("[Error.report] log response", reply);
});
} catch (re) {
console.error("[Error.report] exception while saving logging error on server", re);
@@ -645,9 +643,9 @@ const App = {
hasSandbox: "sandbox" in document.createElement("iframe")
};
- xhrPost("backend.php", params, (transport) => {
+ xhr.json("backend.php", params, (reply) => {
try {
- this.backendSanityCallback(transport);
+ this.backendSanityCallback(reply);
} catch (e) {
this.Error.report(e);
}
@@ -862,7 +860,7 @@ const App = {
if (article_id) Article.view(article_id);
- xhrPost("backend.php", {op: "rpc", method: "setpanelmode", wide: wide ? 1 : 0});
+ xhr.post("backend.php", {op: "rpc", method: "setpanelmode", wide: wide ? 1 : 0});
},
initHotkeyActions: function() {
if (this.is_prefs) {
@@ -1058,7 +1056,7 @@ const App = {
Headlines.reverse();
};
this.hotkey_actions["feed_toggle_vgroup"] = () => {
- xhrPost("backend.php", {op: "rpc", method: "togglepref", key: "VFEED_GROUP_BY_FEED"}, () => {
+ xhr.post("backend.php", {op: "rpc", method: "togglepref", key: "VFEED_GROUP_BY_FEED"}, () => {
Feeds.reloadCurrent();
})
};
@@ -1133,7 +1131,7 @@ const App = {
this.hotkey_actions["toggle_combined_mode"] = () => {
const value = this.isCombinedMode() ? "false" : "true";
- xhrPost("backend.php", {op: "rpc", method: "setpref", key: "COMBINED_DISPLAY_MODE", value: value}, () => {
+ xhr.post("backend.php", {op: "rpc", method: "setpref", key: "COMBINED_DISPLAY_MODE", value: value}, () => {
this.setInitParam("combined_display_mode",
!this.getInitParam("combined_display_mode"));
@@ -1144,7 +1142,7 @@ const App = {
this.hotkey_actions["toggle_cdm_expanded"] = () => {
const value = this.getInitParam("cdm_expanded") ? "false" : "true";
- xhrPost("backend.php", {op: "rpc", method: "setpref", key: "CDM_EXPANDED", value: value}, () => {
+ xhr.post("backend.php", {op: "rpc", method: "setpref", key: "CDM_EXPANDED", value: value}, () => {
this.setInitParam("cdm_expanded", !this.getInitParam("cdm_expanded"));
Headlines.renderAgain();
});
diff --git a/js/Article.js b/js/Article.js
index 379e05644..339d26266 100644
--- a/js/Article.js
+++ b/js/Article.js
@@ -1,7 +1,7 @@
'use strict'
/* eslint-disable no-new */
-/* global __, ngettext, App, Headlines, xhrPost, xhrJson, dojo, dijit, PluginHost, Notify, fox */
+/* global __, ngettext, App, Headlines, xhr, dojo, dijit, PluginHost, Notify, fox */
const Article = {
_scroll_reset_timeout: false,
@@ -331,13 +331,11 @@ const Article = {
if (this.validate()) {
Notify.progress("Saving article tags...", true);
- xhrPost("backend.php", this.attr('value'), (transport) => {
+ xhr.json("backend.php", this.attr('value'), (data) => {
try {
Notify.close();
dialog.hide();
- const data = JSON.parse(transport.responseText);
-
if (data) {
const id = data.id;
diff --git a/js/CommonDialogs.js b/js/CommonDialogs.js
index 3acd2b577..516da5c98 100644
--- a/js/CommonDialogs.js
+++ b/js/CommonDialogs.js
@@ -3,7 +3,7 @@
/* eslint-disable new-cap */
/* eslint-disable no-new */
-/* global __, dojo, dijit, Notify, App, Feeds, xhrPost, xhrJson, Tables, fox */
+/* global __, dojo, dijit, Notify, App, Feeds, xhrPost, xhr, Tables, fox */
/* exported CommonDialogs */
const CommonDialogs = {
@@ -17,7 +17,7 @@ const CommonDialogs = {
const query = {op: "pref-feeds", method: "removeicon", feed_id: id};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
Notify.info("Feed icon removed.");
if (App.isPrefs())
@@ -180,17 +180,12 @@ const CommonDialogs = {
Element.show("feed_add_spinner");
Element.hide("fadd_error_message");
- xhrPost("backend.php", this.attr('value'), (transport) => {
+ xhr.json("backend.php", this.attr('value'), (reply) => {
try {
- let reply;
-
- try {
- reply = JSON.parse(transport.responseText);
- } catch (e) {
+ if (!reply) {
Element.hide("feed_add_spinner");
alert(__("Failed to parse output. This can indicate server timeout and/or network issues. Backend output was logged to browser console."));
- console.log('subscribeToFeed, backend returned:' + transport.responseText);
return;
}
@@ -285,7 +280,7 @@ const CommonDialogs = {
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
Notify.close();
dialog.hide();
@@ -359,7 +354,7 @@ const CommonDialogs = {
Notify.progress("Loading, please wait...", true);
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
if (dijit.byId("labelTree")) {
dijit.byId("labelTree").reload();
} else {
@@ -377,7 +372,7 @@ const CommonDialogs = {
const query = {op: "pref-feeds", quiet: 1, method: "remove", ids: feed_id};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
if (App.isPrefs()) {
dijit.byId("feedTree").reload();
} else {
@@ -415,7 +410,7 @@ const CommonDialogs = {
if (this.validate()) {
Notify.progress("Saving data...", true);
- xhrPost("backend.php", dialog.attr('value'), () => {
+ xhr.post("backend.php", dialog.attr('value'), () => {
dialog.hide();
Notify.close();
diff --git a/js/CommonFilters.js b/js/CommonFilters.js
index 3fa100b9e..9cc93d7b8 100644
--- a/js/CommonFilters.js
+++ b/js/CommonFilters.js
@@ -3,7 +3,7 @@
/* eslint-disable no-new */
/* global __, App, Article, Lists, fox */
-/* global xhrPost, dojo, dijit, Notify, Feeds */
+/* global xhr, dojo, dijit, Notify, Feeds */
const Filters = {
filterDlgCheckAction: function(sender) {
@@ -275,7 +275,7 @@ const Filters = {
const query = {op: "pref-filters", method: "remove", ids: this.attr('value').id};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
const tree = dijit.byId("filterTree");
if (tree) tree.reload();
@@ -303,7 +303,7 @@ const Filters = {
Notify.progress("Saving data...", true);
- xhrPost("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), () => {
dialog.hide();
const tree = dijit.byId("filterTree");
diff --git a/js/Feeds.js b/js/Feeds.js
index 7cefe2235..e9681953e 100644
--- a/js/Feeds.js
+++ b/js/Feeds.js
@@ -1,6 +1,6 @@
'use strict'
-/* global __, App, Headlines, xhrPost, xhrJson, dojo, dijit, Form, fox, PluginHost, Notify, $$, fox */
+/* global __, App, Headlines, xhrPost, xhr, dojo, dijit, fox, PluginHost, Notify, fox */
const Feeds = {
counters_last_request: 0,
@@ -299,7 +299,7 @@ const Feeds = {
toggleUnread: function() {
const hide = !App.getInitParam("hide_read_feeds");
- xhrPost("backend.php", {op: "rpc", method: "setpref", key: "HIDE_READ_FEEDS", value: hide}, () => {
+ xhr.post("backend.php", {op: "rpc", method: "setpref", key: "HIDE_READ_FEEDS", value: hide}, () => {
this.hideOrShowFeeds(hide);
App.setInitParam("hide_read_feeds", hide);
});
@@ -393,7 +393,7 @@ const Feeds = {
Notify.progress("Marking all feeds as read...");
- xhrPost("backend.php", {op: "feeds", method: "catchupAll"}, () => {
+ xhr.post("backend.php", {op: "feeds", method: "catchupAll"}, () => {
this.requestCounters(true);
this.reloadCurrent();
});
diff --git a/js/PrefFeedTree.js b/js/PrefFeedTree.js
index c7228e6ff..d3a4cd33d 100644
--- a/js/PrefFeedTree.js
+++ b/js/PrefFeedTree.js
@@ -1,5 +1,5 @@
/* eslint-disable prefer-rest-params */
-/* global __, lib, dijit, define, dojo, CommonDialogs, Notify, Tables, xhrPost, xhrJson, fox, App */
+/* global __, lib, dijit, define, dojo, CommonDialogs, Notify, Tables, xhrPost, xhr, fox, App */
define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_base/array", "dojo/cookie"],
function (declare, domConstruct, checkBoxTree, array, cookie) {
@@ -164,14 +164,14 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
resetFeedOrder: function() {
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", {op: "pref-feeds", method: "feedsortreset"}, () => {
+ xhr.post("backend.php", {op: "pref-feeds", method: "feedsortreset"}, () => {
this.reload();
});
},
resetCatOrder: function() {
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", {op: "pref-feeds", method: "catsortreset"}, () => {
+ xhr.post("backend.php", {op: "pref-feeds", method: "catsortreset"}, () => {
this.reload();
});
},
@@ -179,7 +179,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
if (confirm(__("Remove category %s? Any nested feeds would be placed into Uncategorized.").replace("%s", item.name))) {
Notify.progress("Removing category...");
- xhrPost("backend.php", {op: "pref-feeds", method: "removeCat", ids: id}, () => {
+ xhr.post("backend.php", {op: "pref-feeds", method: "removeCat", ids: id}, () => {
Notify.close();
this.reload();
});
@@ -198,7 +198,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
this.reload();
});
}
@@ -247,7 +247,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
this.reload();
});
}
@@ -338,7 +338,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Saving data...", true);
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
dialog.hide();
const tree = dijit.byId("feedTree");
@@ -367,7 +367,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", { op: 'pref-feeds', method: 'renamecat', id: id, title: new_name }, () => {
+ xhr.post("backend.php", { op: 'pref-feeds', method: 'renamecat', id: id, title: new_name }, () => {
this.reload();
});
}
@@ -378,7 +378,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
if (title) {
Notify.progress("Creating category...");
- xhrPost("backend.php", {op: "pref-feeds", method: "addCat", cat: title}, () => {
+ xhr.post("backend.php", {op: "pref-feeds", method: "addCat", cat: title}, () => {
Notify.close();
this.reload();
});
@@ -393,7 +393,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
if (this.validate()) {
Notify.progress(__("Subscribing to feeds..."), true);
- xhrPost("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), () => {
Notify.close();
const tree = dijit.byId("feedTree");
@@ -478,7 +478,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
Notify.close();
const tree = dijit.byId("feedTree");
diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js
index 3d00c730c..cc37808be 100644
--- a/js/PrefFilterTree.js
+++ b/js/PrefFilterTree.js
@@ -1,5 +1,5 @@
/* eslint-disable prefer-rest-params */
-/* global __, define, lib, dijit, dojo, xhrPost, Notify */
+/* global __, define, lib, dijit, dojo, xhr, Notify */
define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], function (declare, domConstruct) {
@@ -99,7 +99,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
resetFilterOrder: function() {
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", {op: "pref-filters", method: "filtersortreset"}, () => {
+ xhr.post("backend.php", {op: "pref-filters", method: "filtersortreset"}, () => {
this.reload();
});
},
@@ -114,7 +114,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
if (confirm(__("Combine selected filters?"))) {
Notify.progress("Joining filters...");
- xhrPost("backend.php", {op: "pref-filters", method: "join", ids: rows.toString()}, () => {
+ xhr.post("backend.php", {op: "pref-filters", method: "join", ids: rows.toString()}, () => {
this.reload();
});
}
@@ -131,7 +131,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
this.reload();
});
}
diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js
index c17966291..abf5fff51 100644
--- a/js/PrefHelpers.js
+++ b/js/PrefHelpers.js
@@ -1,7 +1,7 @@
'use strict';
/* eslint-disable no-new */
-/* global __, dijit, dojo, Tables, xhrPost, Notify, xhrJson, App, fox */
+/* global __, dijit, dojo, Tables, xhrPost, Notify, xhr, App, fox */
const Helpers = {
AppPasswords: {
@@ -45,7 +45,7 @@ const Helpers = {
if (confirm(__("This will invalidate all previously generated feed URLs. Continue?"))) {
Notify.progress("Clearing URLs...");
- xhrPost("backend.php", {op: "pref-feeds", method: "clearKeys"}, () => {
+ xhr.post("backend.php", {op: "pref-feeds", method: "clearKeys"}, () => {
Notify.info("Generated URLs cleared.");
});
}
@@ -82,7 +82,7 @@ const Helpers = {
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", {op: "pref-system", method: "clearLog"}, () => {
+ xhr.post("backend.php", {op: "pref-system", method: "clearLog"}, () => {
Helpers.EventLog.refresh();
});
}
@@ -108,7 +108,7 @@ const Helpers = {
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
Notify.close();
dialog.refresh();
});
@@ -124,7 +124,7 @@ const Helpers = {
const query = {op: "pref-prefs", method: "addprofile", title: dialog.attr('value').newprofile};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
Notify.close();
dialog.refresh();
});
@@ -194,7 +194,7 @@ const Helpers = {
if (confirm(__("Activate selected profile?"))) {
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", {op: "pref-prefs", method: "activateprofile", id: sel_rows.toString()}, () => {
+ xhr.post("backend.php", {op: "pref-prefs", method: "activateprofile", id: sel_rows.toString()}, () => {
window.location.reload();
});
}
@@ -217,7 +217,7 @@ const Helpers = {
const dialog = new fox.SingleUseDialog({
title: __("Customize stylesheet"),
apply: function() {
- xhrPost("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), () => {
Element.show("css_edit_apply_msg");
App.byId("user_css_style").innerText = this.attr('value');
});
@@ -225,7 +225,7 @@ const Helpers = {
execute: function () {
Notify.progress('Saving data...', true);
- xhrPost("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), () => {
window.location.reload();
});
},
@@ -277,7 +277,7 @@ const Helpers = {
if (confirm(__("Clear stored data for this plugin?"))) {
Notify.progress("Loading, please wait...");
- xhrPost("backend.php", {op: "pref-prefs", method: "clearplugindata", name: name}, () => {
+ xhr.post("backend.php", {op: "pref-prefs", method: "clearplugindata", name: name}, () => {
Helpers.Prefs.refresh();
});
}
diff --git a/js/PrefLabelTree.js b/js/PrefLabelTree.js
index 9d16a147c..5e024afde 100644
--- a/js/PrefLabelTree.js
+++ b/js/PrefLabelTree.js
@@ -1,5 +1,5 @@
/* eslint-disable prefer-rest-params */
-/* global __, define, lib, dijit, dojo, xhrPost, Notify, fox, App */
+/* global __, define, lib, dijit, dojo, xhr, Notify, fox, App */
define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/form/DropDownButton"], function (declare, domConstruct) {
@@ -98,7 +98,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
ids: id, fg: fg, bg: bg, color: color
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
const tree = dijit.byId("filterTree");
if (tree) tree.reload(); // maybe there's labels in there
});
@@ -114,7 +114,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
this.setLabelColor(id, fg_color, bg_color);
this.hide();
- xhrPost("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), () => {
const tree = dijit.byId("filterTree");
if (tree) tree.reload(); // maybe there's labels in there
});
@@ -196,7 +196,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
ids: labels.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
this.reload();
});
}
@@ -217,7 +217,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
this.reload();
});
}
diff --git a/js/PrefUsers.js b/js/PrefUsers.js
index 5b490a2a5..9b9c1deaf 100644
--- a/js/PrefUsers.js
+++ b/js/PrefUsers.js
@@ -1,7 +1,7 @@
'use strict'
/* global __ */
-/* global xhrPost, xhrJson, dijit, Notify, Tables, App, fox */
+/* global xhrPost, xhr, dijit, Notify, Tables, App, fox */
const Users = {
reload: function(sort) {
@@ -38,7 +38,7 @@ const Users = {
if (this.validate()) {
Notify.progress("Saving data...", true);
- xhrPost("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), () => {
dialog.hide();
Users.reload();
});
@@ -160,7 +160,7 @@ const Users = {
ids: sel_rows.toString()
};
- xhrPost("backend.php", query, () => {
+ xhr.post("backend.php", query, () => {
this.reload();
});
}
diff --git a/js/common.js b/js/common.js
index f3fcdd905..1c9a0453c 100755
--- a/js/common.js
+++ b/js/common.js
@@ -140,7 +140,6 @@ String.prototype.stripTags = function() {
}
/* exported xhr */
-
const xhr = {
post: function(url, params = {}, complete = undefined) {
console.log('xhr.post', '>>>', params);