1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
$(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,
publicCheckbox: window.groupData.showOnPublicList,
},
init() {
// Set checkboxes
this.data.publicCheckbox = window.groupData.showOnPublicList;
},
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;
}
},
};
}
|