diff options
author | Raphael Kabo <raphaelkabo@hey.com> | 2023-10-08 12:11:36 +0100 |
---|---|---|
committer | Raphael Kabo <raphaelkabo@hey.com> | 2023-10-08 12:11:36 +0100 |
commit | 6b220e094f215c488eb5102e25506f5b3d371245 (patch) | |
tree | be0abbbf7a0c881d61e6375626f197c4ae124001 /views/partials/editeventmodal.handlebars | |
parent | b8e424a8602b586bbf346cd27171ede570a54973 (diff) |
Refactor: event group form and API, extract JS
Diffstat (limited to 'views/partials/editeventmodal.handlebars')
-rw-r--r-- | views/partials/editeventmodal.handlebars | 102 |
1 files changed, 1 insertions, 101 deletions
diff --git a/views/partials/editeventmodal.handlebars b/views/partials/editeventmodal.handlebars index 2572cbb..a36cd98 100644 --- a/views/partials/editeventmodal.handlebars +++ b/views/partials/editeventmodal.handlebars @@ -46,104 +46,4 @@ </script> <script type="text/javascript" src="/js/generate-timezones.js"></script> - -<script> - $(document).ready(function () { - $.uploadPreview({ - input_field: "#image-upload", - preview_box: "#image-preview", - label_field: "#image-label", - label_default: "Choose file", - label_selected: "Change file", - no_label: false - }); - autosize($('textarea')); - $("#image-preview").css("background-image", "url('/events/{{eventData.image}}')"); - $("#image-preview").css("background-size", "cover"); - $("#image-preview").css("background-position", "center center"); - $("#timezone").val('{{eventData.timezone}}').trigger('change'); - }); - - function editEventForm() { - return { - data: { - eventName: `{{{eventData.name}}}`, - eventLocation: `{{{ eventData.location }}}`, - eventStart: `{{{ parsedStartForDateInput }}}`, - eventEnd: `{{{ parsedEndForDateInput }}}`, - timezone: `{{{ eventData.timezone }}}`, - eventDescription: `{{{ eventData.description }}}`, - eventURL: `{{{ eventData.url }}}`, - hostName: `{{{ eventData.hostName }}}`, - creatorEmail: `{{{ eventData.creatorEmail }}}`, - eventGroupID: `{{{ eventData.eventGroupID }}}`, - eventGroupEditToken: `{{{ eventData.eventGroupEditToken }}}`, - interactionCheckbox: {{{ eventData.usersCanComment }}}, - joinCheckbox: {{{ eventData.usersCanAttend }}}, - maxAttendeesCheckbox: {{#if eventData.maxAttendees}}true{{else}}false{{/if}}, - maxAttendees: `{{{ eventData.maxAttendees }}}`, - }, - errors: [], - submitting: false, - init() { - // Set up Select2 - this.select2 = $(this.$refs.timezone).select2(); - this.select2.on("select2:select", (event) => { - this.data.timezone = event.target.value; - }); - this.data.timezone = this.select2.val(); - /* Set up checkboxes */ - this.data.eventGroupCheckbox = {{#if eventData.eventGroupID}}true{{else}}false{{/if}}; - this.data.interactionCheckbox = {{eventData.usersCanComment}}; - this.data.joinCheckbox = {{eventData.usersCanAttend}}; - this.data.maxAttendeesCheckbox = {{#if eventData.maxAttendees}}true{{else}}false{{/if}}; - }, - async submitForm() { - this.submitting = true; - this.errors = []; - const formData = new FormData(); - for (const key in this.data) { - if (this.data.hasOwnProperty(key)) { - formData.append(key, this.data[key]); - } - } - formData.append("imageUpload", this.$refs.eventImageUpload.files[0]); - formData.append("editToken", '{{eventData.editToken}}'); - try { - const response = await fetch("/event/{{eventData.id}}", { - method: "PUT", - body: formData, - }); - this.submitting = false; - if (!response.ok) { - if (response.status !== 400) { - this.errors = [ - { - message: "An unexpected error has occurred. Please try again later.", - } - ]; - return; - } - const json = await response.json(); - this.errors = json.errors; - // Set Bootstrap validation classes using 'field' property - $("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 = [ - { - message: "An unexpected error has occurred. Please try again later.", - } - ]; - this.submitting = false; - } - }, - } - } -</script>
\ No newline at end of file +<script type="text/javascript" src="/js/modules/event-edit.js"></script> |