about summary refs log tree commit diff
path: root/src/frontend/onboarding.js
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2021-05-17 09:38:40 +0300
committerVika <vika@fireburn.ru>2021-05-17 09:38:40 +0300
commit0fbe373fcb716fbc6eb344022ab72de00512fc68 (patch)
treece1529b27973599f84cb68d3e14c01ba956e28d7 /src/frontend/onboarding.js
parent9d90a72131153d53d751505aab883047cd0645c7 (diff)
Onboarding - initial feature
Diffstat (limited to 'src/frontend/onboarding.js')
-rw-r--r--src/frontend/onboarding.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/frontend/onboarding.js b/src/frontend/onboarding.js
new file mode 100644
index 0000000..5bb08a1
--- /dev/null
+++ b/src/frontend/onboarding.js
@@ -0,0 +1,45 @@
+const firstOnboardingCard = "intro";
+
+function switchOnboardingCard(card) {
+    Array.from(document.querySelectorAll("form.onboarding > fieldset")).map(node => {
+        if (node.id == card) {
+            node.style.display = "block";
+        } else {
+            node.style.display = "none";
+        }
+    });
+
+    Array.from(document.querySelectorAll("form.onboarding > ul#progressbar > li")).map(node => {
+        if (node.id == card) {
+            node.classList.add("active")
+        } else {
+            node.classList.remove("active")
+        }
+    })
+};
+
+window.kittybox_onboarding = {
+    switchOnboardingCard
+};
+
+document.querySelector("form.onboarding > ul#progressbar").style.display = "";
+switchOnboardingCard(firstOnboardingCard);
+
+function switchCardOnClick(event) {
+    switchOnboardingCard(event.target.dataset.card)
+}
+
+function multiInputAddMore(event) {
+    let parent = event.target.parentElement;
+    let template = event.target.parentElement.querySelector("template").content.cloneNode(true);
+    parent.prepend(template);
+}
+
+Array.from(document.querySelectorAll("form.onboarding > fieldset button.switch_card")).map(button => {
+    button.addEventListener("click", switchCardOnClick)
+})
+
+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