summaryrefslogtreecommitdiff
path: root/public/js/modules/group-edit.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/js/modules/group-edit.js')
-rw-r--r--public/js/modules/group-edit.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/public/js/modules/group-edit.js b/public/js/modules/group-edit.js
new file mode 100644
index 0000000..1a2c1db
--- /dev/null
+++ b/public/js/modules/group-edit.js
@@ -0,0 +1,72 @@
+$(document).ready(function () {
+ $.uploadPreview({
+ input_field: "#group-image-upload",
+ preview_box: "#group-image-preview",
+ label_field: "#group-image-label",
+ label_default: "Choose file",
+ label_selected: "Change file",
+ no_label: false,
+ });
+ autosize($("textarea"));
+ if (window.groupData.image) {
+ $("#group-image-preview").css(
+ "background-image",
+ `url('/events/${window.groupData.image}')`,
+ );
+ $("#group-image-preview").css("background-size", "cover");
+ $("#group-image-preview").css("background-position", "center center");
+ }
+ $("#timezone").val(window.groupData.timezone).trigger("change");
+});
+
+function editEventGroupForm() {
+ return {
+ data: {
+ eventGroupName: window.groupData.name,
+ eventGroupDescription: window.groupData.description,
+ eventGroupURL: window.groupData.url,
+ hostName: window.groupData.hostName,
+ creatorEmail: window.groupData.creatorEmail,
+ },
+ errors: [],
+ submitting: false,
+ async submitForm() {
+ this.submitting = true;
+ this.errors = [];
+ const formData = new FormData();
+ for (const [key, value] of Object.entries(this.data)) {
+ formData.append(key, value);
+ }
+ formData.append(
+ "imageUpload",
+ this.$refs.eventGroupImageUpload.files[0],
+ );
+ formData.append("editToken", window.groupData.editToken);
+ try {
+ const response = await fetch(`/group/${window.groupData.id}`, {
+ method: "PUT",
+ body: formData,
+ });
+ this.submitting = false;
+ if (!response.ok) {
+ if (response.status !== 400) {
+ this.errors = unexpectedError;
+ return;
+ }
+ const json = await response.json();
+ this.errors = json.errors;
+ $("input, textarea").removeClass("is-invalid");
+ this.errors.forEach((error) => {
+ $(`#${error.field}`).addClass("is-invalid");
+ });
+ return;
+ }
+ window.location.reload();
+ } catch (error) {
+ console.log(error);
+ this.errors = unexpectedError;
+ this.submitting = false;
+ }
+ },
+ };
+}