/* The URL to the ban form does not need any IDs or hidden inputs. We
* hardcode it here.
*/
- let resp = await fetch("./mcp.php?i=ban&mode=user");
+ let resp = await fetch(toAbsoluteURL("./mcp.php?i=ban&mode=user"));
if (!resp.ok) {
throw "Konnte Formular zum Sperren von Benutzern nicht laden.";
}
async function closeReport(post) {
const reportLink = post.querySelector(".post-notice.reported a");
- let resp = await fetch(reportLink.href);
+ let resp = await fetch(toAbsoluteURL(reportLink.href));
if (!resp.ok) {
throw "Konnte Meldung nicht öffnen.";
}
/* Have to use explicit getAttribute() below since there is an input with
* name="action" which would be accessed with `form.action` :-/
*/
- return fetch(form.getAttribute("action"),
+ return fetch(toAbsoluteURL(form.getAttribute("action")),
{ body: new URLSearchParams(formData), method: "POST" });
}
async function send_mcp_request_archival(post, reason) {
const splitLink = document.querySelector("#quickmod .dropdown-contents a[href*='action=split']");
- let resp = await fetch(splitLink.href);
+ let resp = await fetch(toAbsoluteURL(splitLink.href));
if (!resp.ok) {
throw "Konnte Formular zum Aufteilen des Themas nicht laden.";
}
}
}
+function toAbsoluteURL(relativeOrAbsoluteURL) {
+ return new URL(relativeOrAbsoluteURL, window.location);
+}
+
function updatePageAfterSplit(post) {
if (document.querySelectorAll(".post").length > 1) {
post.parentNode.removeChild(post);