about summary refs log tree commit diff
path: root/src/frontend/onboarding.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/onboarding.js')
-rw-r--r--src/frontend/onboarding.js44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/frontend/onboarding.js b/src/frontend/onboarding.js
index 5bb08a1..7f9aa32 100644
--- a/src/frontend/onboarding.js
+++ b/src/frontend/onboarding.js
@@ -42,4 +42,46 @@ Array.from(document.querySelectorAll("form.onboarding > fieldset button.switch_c
 Array.from(document.querySelectorAll("form.onboarding > fieldset div.multi_input > button.add_more")).map(button => {
     button.addEventListener("click", multiInputAddMore)
     multiInputAddMore({ target: button });
-})
\ No newline at end of file
+})
+
+const form = document.querySelector("form.onboarding");
+console.log(form);
+form.onsubmit = async (event) => {
+    console.log(event);
+    event.preventDefault();
+    const form = event.target;
+    const json = {
+        user: {
+            type: ["h-card"],
+            properties: {
+                name: [form.querySelector("#hcard_name").value],
+                pronoun: Array.from(form.querySelectorAll("#hcard_pronouns")).map(input => input.value).filter(i => i != ""),
+                url: Array.from(form.querySelectorAll("#hcard_url")).map(input => input.value).filter(i => i != ""),
+                note: [form.querySelector("#hcard_note").value]
+            }
+        },
+        first_post: {
+            type: ["h-entry"],
+            properties: {
+                content: [form.querySelector("#first_post_content").value]
+            }
+        },
+        blog_name: form.querySelector("#blog_name").value,
+        feeds: Array.from(form.querySelectorAll(".multi_input#custom_feeds > fieldset.feed")).map(form => {
+            return {
+                name: form.querySelector("#feed_name").value,
+                slug: form.querySelector("#feed_slug").value
+            }
+        }).filter(feed => feed.name == "" || feed.slug == "")
+    };
+
+    await fetch("/", {
+        method: "POST",
+        body: JSON.stringify(json),
+        headers: { "Content-Type": "application/json" }
+    }).then(response => {
+        if (response.status == 201) {
+            window.location.href = window.location.href;
+        }
+    })
+}
\ No newline at end of file