diff --git a/ui/src/components/trainingReport/trainingReportForm.vue b/ui/src/components/trainingReport/trainingReportForm.vue index 4eea9b3..5c13296 100644 --- a/ui/src/components/trainingReport/trainingReportForm.vue +++ b/ui/src/components/trainingReport/trainingReportForm.vue @@ -26,6 +26,7 @@ import PopoverTrigger from "@/components/ui/popover/PopoverTrigger.vue"; import PopoverContent from "@/components/ui/popover/PopoverContent.vue"; import Combobox from '../ui/combobox/Combobox.vue' import Tooltip from '../tooltip/Tooltip.vue' +import Spinner from '../ui/spinner/Spinner.vue' const { handleSubmit, resetForm, errors, values, setFieldValue } = useForm({ @@ -67,19 +68,24 @@ function toMySQLDateTime(date: Date): string { .replace("T", " ") + "000"; // becomes → 2025-11-19 00:00:00.000000 } - -function onSubmit(vals) { +const submitting = ref(false); +async function onSubmit(vals) { + //catch double submit + if (submitting.value) return; + submitting.value = true; try { const clean: CourseEventDetails = { ...vals, event_date: new Date(vals.event_date), } - postTrainingReport(clean).then((newID) => { + await postTrainingReport(clean).then((newID) => { emit("submit", newID); }); } catch (err) { console.error("There was an error submitting the training report", err); + } finally { + submitting.value = false; } } @@ -402,7 +408,12 @@ const filteredMembers = computed(() => {
- +