diff --git a/src/pages/calendar/TheCalendar.vue b/src/pages/calendar/TheCalendar.vue index 86bd54b..f3e1f2f 100644 --- a/src/pages/calendar/TheCalendar.vue +++ b/src/pages/calendar/TheCalendar.vue @@ -41,6 +41,7 @@ :event-types="eventTypes" :owner-event="selectedEvent" :close-modal="changeShowModal" + @update-events="fetchEventsData" ) @@ -153,7 +154,6 @@ export default { if (this.showModal === false) { this.setChangeFormState(); this.clearSelectedEvent(); - this.fetchEventsData(); } }, }, diff --git a/src/pages/calendar/components/CalendarDeleteModal.vue b/src/pages/calendar/components/CalendarDeleteModal.vue index 76981f1..66f82cc 100644 --- a/src/pages/calendar/components/CalendarDeleteModal.vue +++ b/src/pages/calendar/components/CalendarDeleteModal.vue @@ -40,6 +40,7 @@ export default { methods: { async deleteEvent() { await fetchWrapper.del(`registry/event/${this.ownerEvent.id}/delete/`); + this.$emit("update-events"); this.closeModal(); }, }, diff --git a/src/pages/calendar/components/CalendarFormAddEvent.vue b/src/pages/calendar/components/CalendarFormAddEvent.vue index a2a1b28..7ba8f2f 100644 --- a/src/pages/calendar/components/CalendarFormAddEvent.vue +++ b/src/pages/calendar/components/CalendarFormAddEvent.vue @@ -305,7 +305,6 @@ export default { members: [this.findPerson(this.membersData, this.members, "person")], }; await this.postCreateEvent(this.eventData); - this.clearForm(); this.eventData = {}; }, async updateEventData() { @@ -319,7 +318,6 @@ export default { members: [this.findPerson(this.membersData, this.members, "person")], }; await this.postUpdateEvent(this.id, this.eventData); - this.clearForm(); this.eventData = {}; }, clearForm() { @@ -346,10 +344,19 @@ export default { return returnedData; }, async postCreateEvent(event) { - await fetchWrapper.post("registry/event/create/", event); + const response = await fetchWrapper.post("registry/event/create/", event); + if (response.type && response.type === "validation_error") { + this.outputErrorMessage(response); + } else this.clearForm(); }, async postUpdateEvent(id, event) { - await fetchWrapper.post(`registry/event/${id}/update/`, event); + const response = await fetchWrapper.post( + `registry/event/${id}/update/`, + event + ); + if (response.type && response.type === "validation_error") { + this.outputErrorMessage(response); + } else this.clearForm(); }, personId(object, field) { if (object) { @@ -369,6 +376,11 @@ export default { return id; } }, + outputErrorMessage(error) { + alert( + `error type: ${error.type}\nerror code: ${error.errors[0].code}\nerror detail: ${error.errors[0].detail}` + ); + }, }, watch: { startDate: { diff --git a/src/shared/fetchWrapper.js b/src/shared/fetchWrapper.js index b193eb2..03ca96e 100644 --- a/src/shared/fetchWrapper.js +++ b/src/shared/fetchWrapper.js @@ -15,7 +15,7 @@ function handleRequest(method, url, headers, attempts, body) { if (res) return res.json(); }) .catch((err) => { - console.log(err); + // console.log(err); return err; }); }