diff --git a/src/components/Scheduling/BeginnerScheduling.vue b/src/components/Scheduling/BeginnerScheduling.vue index 249e34e..d2a8804 100644 --- a/src/components/Scheduling/BeginnerScheduling.vue +++ b/src/components/Scheduling/BeginnerScheduling.vue @@ -24,6 +24,36 @@ const selectedProposal = ref() const displayedTargets = ref([]) const totalLoaded = ref(3) const allCategoryTargets = ref({}) +const currentStep = ref(1) + +const nextStep = () => { + currentStep.value += 1 +} + +const previousStep = () => { + loading.value = false + // Prevents `Submit my request` button from showing when going back + emits('showButton', false) + if (currentStep.value > 1) currentStep.value -= 1 + // Handles specific cases for going back: when user goes from a selected target to seeing the 3 targets + if (currentStep.value === 4) { + if (!objectSelection.value || !objectSelection.value.targets) { + // Re-populate targets if missing + const categoryRegex = objectCategories.find(cat => cat.label === objectSelection.value.object)?.value + if (categoryRegex) { + const filteredTargets = selectedTargets.value.filter(target => target.avmdesc.match(categoryRegex)) + objectSelection.value.targets = filteredTargets.map(target => ({ + name: target.name, + desc: target.desc, + filters: target.filters, + ra: target.ra, + dec: target.dec + })) + displayedTargets.value = objectSelection.value.targets.slice(0, 3) + } + } + } +} const categories = ref([ { @@ -83,6 +113,7 @@ const handleObjectSelection = (option) => { })) displayedTargets.value = objectSelection.value.targets.slice(0, 3) totalLoaded.value = 3 + nextStep() } const shuffleTargets = () => { @@ -137,6 +168,7 @@ const handleTargetSelection = (target) => { })) exposureSettings.value = [...defaultSettings.value] emitSelections() + nextStep() } const populateTargets = (response) => { @@ -171,6 +203,7 @@ const populateTargets = (response) => { }) } loading.value = false + nextStep() } const fetchTargets = async (startDate, endDate) => { @@ -199,6 +232,7 @@ const resetSelections = () => { targetSelected.value = false beginner.value = '' emits('showButton', false) + previousStep() } const letMeChoose = () => { @@ -224,14 +258,14 @@ const handleExposuresUpdate = (exposures) => { -