From 133f6935cc6e56dc4f03c341d0edaa8a0abb9665 Mon Sep 17 00:00:00 2001 From: DavePk04 <Dave.Pikop.Pokam@ulb.be> Date: Sat, 8 Mar 2025 22:50:18 +0100 Subject: [PATCH] Fix backward availability issue: Prevent users from selecting end time earlier than start time --- .../routes/register/[[studyId]]/+page.svelte | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/frontend/src/routes/register/[[studyId]]/+page.svelte b/frontend/src/routes/register/[[studyId]]/+page.svelte index 171c6e78..84b646af 100644 --- a/frontend/src/routes/register/[[studyId]]/+page.svelte +++ b/frontend/src/routes/register/[[studyId]]/+page.svelte @@ -19,7 +19,6 @@ let selectedStudy: Study | undefined = $state(); let tutors = $state(data.tutors || []); - console.log('data:', data); let isLoading = $state(false); let selectedTutorEmail = $state(''); let is_tutor = $state(false); @@ -116,19 +115,29 @@ bio = target.value; remainingCharacters = MAX_BIO_LENGTH - bio.length; } + function addAvailability(): void { - if (selectedWeekday && selectedTimeStart && selectedTimeEnd) { - availability.push({ - day: selectedWeekday, - start: selectedTimeStart, - end: selectedTimeEnd - }); - selectedWeekday = ''; - selectedTimeStart = ''; - selectedTimeEnd = ''; - } else { - console.error('Failed to add availability. Make sure all fields are selected.'); + if (!selectedWeekday || !selectedTimeStart || !selectedTimeEnd) { + console.error('All fields must be selected.'); + return; + } + const startHour = parseInt(selectedTimeStart.split(':')[0]); + const endHour = parseInt(selectedTimeEnd.split(':')[0]); + + if (startHour >= endHour) { + alert('End time must be later than start time.'); + return; } + + availability.push({ + day: selectedWeekday, + start: selectedTimeStart, + end: selectedTimeEnd + }); + + selectedWeekday = ''; + selectedTimeStart = ''; + selectedTimeEnd = ''; } function removeAvailability(index: number): void { -- GitLab