formData.set("ban", username);
formData.set("banreason", reason);
//formData.set("bangivereason", reason);
- const resp = await postForm(form, formData, "bansubmit");
- if (!resp.ok) {
- throw "Konnte Sperrung des Benutzers nicht anfragen.";
- }
-
try {
- await confirmAction(resp);
+ await postForm(form, formData, "bansubmit", true);
} catch (err) {
- throw `Konnte Sperrung des Benutzers nicht bestätigen: ${err}`;
+ throw `Konnte Benutzer nicht sperren: ${err}`;
}
}
throw `Konnte Formular zum Schließen der Meldung nicht öffnen: ${err}`;
}
- const resp = await postForm(form, formData, "action[close]");
- if (!resp.ok) {
- throw "Konnte Schließen der Meldung nicht anfragen.";
- }
-
try {
- await confirmAction(resp);
+ await postForm(form, formData, "action[close]", true);
} catch (err) {
- throw `Konnte Schließen der Meldung nicht bestätigen: ${err}`;
+ throw `Konnte Meldung nicht schließen: ${err}`;
}
}
async function confirmAction(response) {
const [form, formData] = await openForm(response, "form#confirm");
-
- const resp = await postForm(form, formData, "confirm");
- if (!resp.ok) {
- throw `${resp.url}: ${resp.status}`;
- }
- return resp.text();
+ await postForm(form, formData, "confirm");
}
function ellipsify(str, maxlen) {
return [form, new FormData(form)];
}
-function postForm(form, formData, submitName) {
+async function postForm(form, formData, submitName, requiresConfirmation = false) {
/* "Press" the right submit button. */
const submitBtn = form.elements[submitName];
formData.set(submitBtn.name, submitBtn.value);
/* Have to use explicit getAttribute() below since there is an input with
* name="action" which would be accessed with `form.action` :-/
*/
- return fetch(toAbsoluteURL(form.getAttribute("action")),
+ const resp = await fetch(toAbsoluteURL(form.getAttribute("action")),
{ body: new URLSearchParams(formData), method: "POST" });
+ if (!resp.ok) {
+ throw `${resp.url}: ${resp.status}`;
+ }
+
+ if (requiresConfirmation) {
+ await confirmAction(resp);
+ }
}
async function remove_post_handler(event) {
formData.set("subject", thread_title);
formData.set("to_forum_id", ARCHIVFORUMID);
- const resp = await postForm(form, formData, "mcp_topic_submit");
- if (!resp.ok) {
- throw "Konnte Aufteilen des Themas nicht anfragen.";
- }
-
try {
- await confirmAction(resp);
+ await postForm(form, formData, "mcp_topic_submit", true);
} catch (err) {
- throw `Konnte Aufteilen des Themas nicht bestätigen: ${err}`;
+ throw `Konnte Thema nicht aufteilen: ${err}`;
}
}