]> git.aero2k.de Git - dfde/quickmods.git/commitdiff
Move subject prefixing into separate function
authorJTH <JTH@debianforum.de>
Fri, 30 Sep 2022 11:43:07 +0000 (13:43 +0200)
committerThorsten <mail@aero2k.de>
Mon, 3 Oct 2022 21:24:23 +0000 (23:24 +0200)
quickmod.user.js

index 32e3984f46b81a4e6bc6bcbeccd738b93392ae2d..8307483c482d05ee5db1301391e94543336d32bc 100644 (file)
@@ -97,6 +97,23 @@ async function postForm(form, formData, submitName, requiresConfirmation = false
     }
 }
 
+function prefixSubject(input, reason) {
+    let subject = input.value;
+
+    if (!reason) {
+        return subject;
+    }
+
+    const prefix = `[${reason}]`;
+    if (subject.toLowerCase().includes(prefix.toLowerCase())) {
+        return subject;
+    }
+
+    subject = `${prefix} ${subject}`;
+    const maxLen = input.getAttribute("maxlength") ?? subject.length;
+    return subject.slice(0, maxLen);
+}
+
 async function remove_post_handler(event) {
     const post = event.currentTarget.closest('.post');
     const usernameElem = post.querySelector(".author .username,.author .username-coloured");
@@ -174,16 +191,8 @@ async function send_mcp_request_archival(post, reason) {
     }
 
     const post_id = post.id.slice(1);
-    const thread_title = (() => {
-        const prefix = `[${reason}]`;
-        let title = formData.get("subject");
-        if (reason && !title.toLowerCase().includes(prefix.toLowerCase())) {
-            title = `${prefix} ${title}`;
-        }
-        return title.slice(0, form.elements["subject"].maxLength);
-    })();
     formData.set("post_id_list[]", post_id);
-    formData.set("subject", thread_title);
+    formData.set("subject", prefixSubject(form.elements["subject"], reason));
     formData.set("to_forum_id", ARCHIVFORUMID);
 
     try {