diff --git a/assets/eventregistration-ausbildung.js b/assets/eventregistration-ausbildung.js
index ac4e508..b7444a7 100644
--- a/assets/eventregistration-ausbildung.js
+++ b/assets/eventregistration-ausbildung.js
@@ -1,11 +1,11 @@
import scrollToElement from './scrollToElement.js';
var toastedOptions = {
- position: 'top-right',
- duration: 3000,
- fitToScreen: true,
- fullWidth: true,
- theme: 'material',
+ position: "bottom-right",
+ duration: 3000,
+ fitToScreen: false,
+ fullWidth: false,
+ theme: "material",
};
export default function (toasted) {
diff --git a/assets/eventregistration_old.js b/assets/eventregistration-bela.js
similarity index 97%
rename from assets/eventregistration_old.js
rename to assets/eventregistration-bela.js
index 149be4f..377cdd6 100644
--- a/assets/eventregistration_old.js
+++ b/assets/eventregistration-bela.js
@@ -1,10 +1,10 @@
import scrollToElement from './scrollToElement.js';
var toastedOptions = {
- position: 'top-right',
+ position: 'bottom-right',
duration: 3000,
- fitToScreen: true,
- fullWidth: true,
+ fitToScreen: false,
+ fullWidth: false,
theme: 'material',
};
@@ -36,6 +36,7 @@ export default function (toasted) {
parent: false,
vorteam: null,
},
+ loading: false,
finished: false,
submitRequest: null,
errorFields: [],
@@ -130,6 +131,7 @@ export default function (toasted) {
},
submit() {
var _self = this;
+ _self.loading = true;
var promise = fetch(window.location.href, {
method: 'POST',
headers: {
@@ -143,6 +145,7 @@ export default function (toasted) {
});
promise.then(function(response) {
+ _self.loading = false;
if (response.status === 422) {
response.json().then((errors) => {
_self.scrollToFirstError(errors);
diff --git a/assets/eventregistration-tdw.js b/assets/eventregistration-tdw.js
new file mode 100644
index 0000000..1649894
--- /dev/null
+++ b/assets/eventregistration-tdw.js
@@ -0,0 +1,163 @@
+import scrollToElement from "./scrollToElement.js";
+
+var toastedOptions = {
+ position: "bottom-right",
+ duration: 3000,
+ fitToScreen: false,
+ fullWidth: false,
+ theme: "material",
+};
+
+export default function (toasted) {
+ var toasted = new toasted(toastedOptions);
+
+ return {
+ data: {
+ event_id: null,
+ firstname: "",
+ lastname: "",
+ address: "",
+ zip: "",
+ location: "",
+ ticket: false,
+ essen: [],
+ food_preferences: [],
+ essen_misc: '',
+ gender: "",
+ email: "",
+ birthday: "",
+ group: "",
+ emergency_phone: "",
+ phone: "",
+ misc: "",
+ foto: false,
+ parent: false,
+ vorteam: null,
+ },
+ loading: false,
+ finished: false,
+ submitRequest: null,
+ errorFields: [],
+ active: 0,
+ slides: ["Persönliches", "Veranstaltung", "Sonstiges"],
+ activities: [
+ { id: "Orga", name: "Orga" },
+ { id: "Teilnehmer*in", name: "Teilnehmer*in" },
+ ],
+ genders: [
+ { id: "Männlich", name: "Männlich" },
+ { id: "Weiblich", name: "Weiblich" },
+ { id: "Divers", name: "Divers" },
+ ],
+ essens: [
+ { id: "Rohkost", name: "Rohkost" },
+ { id: "Pizzaschnecken", name: "Pizzaschnecken" },
+ { id: "Brot / Brötchen", name: "Brot / Brötchen" },
+ { id: "Muffins / Kuchen", name: "Muffins / Kuchen" },
+ { id: "Dips", name: "Dips" },
+ { id: "Frikadellen", name: "Frikadellen" },
+ { id: "Sandwiches", name: "Sandwiches" },
+ { id: "Zimtschnecken", name: "Zimtschnecken" },
+ { id: "Gummibärchen", name: "Gummibärchen" },
+ { id: "Obst", name: "Obst" },
+ { id: "Käse", name: "Käse" }
+ ],
+ groups: [
+ { id: "Gallier", name: "Gallier (Wuppertal)" },
+ { id: "Gandalf", name: "Gandalf (SG-Mangenberg)" },
+ { id: "Gravenrode", name: "Gravenrode (SG-Gräfrath)" },
+ { id: "Lennep", name: "Lennep (RS-Lennep)" },
+ { id: "Silva", name: "Silva (SG-Wald)" },
+ { id: "Sugambrer", name: "Sugambrer (SG-Höhscheid)" },
+ { id: "Tenkterer", name: "Tenkterer (SG-Löhdorf)" },
+ { id: "von Berg", name: "von Berg (SG-Ohligs)" },
+ ],
+ boolean: [
+ { id: "Ja", name: "Ja" },
+ { id: "Nein", name: "Nein" },
+ ],
+ foodPreferences: [
+ { id: "Fleisch", name: "Ich esse Fleisch" },
+ { id: "Vegan", name: "Ich ernähre mich vegan" },
+ { id: "Glutenfrei", name: "Ich vertrage kein Gluten" },
+ { id: "Laktosefrei", name: "Ich vertrage keine Laktose" },
+ ],
+ slideTo(e, index) {
+ if (e !== null) {
+ e.preventDefault();
+ }
+ if (index < 0 || index > this.slides.length - 1) {
+ return;
+ }
+ this.scrollForm(this.$refs.form);
+ this.active = index;
+ this.$refs.slider.scrollLeft =
+ (this.$refs.slider.scrollWidth / this.slides.length) * index;
+ this.$refs.mobileSlider.scrollLeft =
+ (this.$refs.mobileSlider.scrollWidth / this.slides.length) * index;
+ },
+ scrollForm(el) {
+ var margin = window.getComputedStyle(el).marginTop.replace("px", "");
+ scrollToElement(el, 300, (margin ? margin : 0) * -1);
+ },
+ submit() {
+ var _self = this;
+ _self.loading = true;
+ var promise = fetch(window.location.href, {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ Accept: "application/json",
+ "X-WINTER-REQUEST-HANDLER": this.submitRequest,
+ "X-WINTER-REQUEST-PARTIALS": [],
+ "X-Requested-With": "XMLHttpRequest",
+ },
+ body: JSON.stringify(this.data),
+ });
+
+ promise.then(function (response) {
+ _self.loading = false;
+ if (response.status === 422) {
+ response.json().then((errors) => {
+ _self.scrollToFirstError(errors);
+ Object.keys(errors).forEach((field) => {
+ toasted.error(errors[field].join("
"));
+ });
+ });
+ }
+ if (response.status === 201) {
+ _self.finished = true;
+ _self.scrollForm(_self.$refs.form);
+ }
+ });
+ },
+ scrollToFirstError(errors) {
+ if (Object.keys(errors).length === 0) {
+ return;
+ }
+
+ var firstField = Object.keys(errors)[0];
+ var field = this.$refs.form.querySelector('[name="' + firstField + '"]');
+
+ if (field === null) {
+ return;
+ }
+
+ var slideElement = field.closest(".slider-element");
+ this.slideTo(
+ null,
+ Array.from(slideElement.parentNode.children).indexOf(slideElement)
+ );
+ },
+ prevButton: {
+ [":class"]() {
+ return this.active == 0 ? "opacity-40" : "";
+ },
+ },
+ nextButton: {
+ [":class"]() {
+ return this.active == this.slides.length - 1 ? "opacity-40" : "";
+ },
+ },
+ };
+}
diff --git a/assets/eventregistration.js b/assets/eventregistration.js
index dbe7fae..1365ed6 100644
--- a/assets/eventregistration.js
+++ b/assets/eventregistration.js
@@ -1,10 +1,10 @@
import scrollToElement from "./scrollToElement.js";
var toastedOptions = {
- position: "top-right",
+ position: "bottom-right",
duration: 3000,
- fitToScreen: true,
- fullWidth: true,
+ fitToScreen: false,
+ fullWidth: false,
theme: "material",
};
@@ -130,15 +130,15 @@ export default function (toasted) {
without: [],
},
{
- id: "2e",
- name: "Baustein 2e",
- hint: "Präventionsschulung - Sonntag 10 - 13 Uhr",
+ id: "3c",
+ name: "Baustein 3c",
+ hint: "Finanzen, Haftung, Versicherung - Sonntag 10 - 13 Uhr",
without: ["s2"],
},
{
- id: "3c",
- name: "Baustein 3c",
- hint: "Finanzen, Haftung, Versicherung - Sonntag 14 - 17 Uhr",
+ id: "2e",
+ name: "Baustein 2e",
+ hint: "Präventionsschulung - Sonntag 14 - 17 Uhr",
without: ["s2"],
},
{
diff --git a/components/eventform/navigation.htm b/components/eventform/navigation.htm
index 33b9759..e6f395a 100644
--- a/components/eventform/navigation.htm
+++ b/components/eventform/navigation.htm
@@ -9,6 +9,11 @@
Weiter
{% else %}
-
+
{% endif %}