feat: deadline component verbeterd
This commit is contained in:
		
							parent
							
								
									3e00f0eb1f
								
							
						
					
					
						commit
						36f7cfa4bd
					
				
					 3 changed files with 17 additions and 7 deletions
				
			
		|  | @ -1,8 +1,9 @@ | |||
| <script setup lang="ts"> | ||||
| import { ref, computed, defineEmits } from "vue"; | ||||
| import {deadlineRules} from "@/utils/assignmentForm.ts"; | ||||
| 
 | ||||
| const date = ref(""); | ||||
| const time = ref(""); | ||||
| const time = ref("23:59"); | ||||
| const emit = defineEmits(["update:deadline"]); | ||||
| 
 | ||||
| const formattedDeadline = computed(() => { | ||||
|  | @ -26,6 +27,8 @@ const updateDeadline = () => { | |||
|                 type="date" | ||||
|                 variant="outlined" | ||||
|                 density="compact" | ||||
|                 :rules="deadlineRules" | ||||
|                 required | ||||
|                 @update:modelValue="updateDeadline" | ||||
|             ></v-text-field> | ||||
|         </v-card-text> | ||||
|  |  | |||
|  | @ -81,12 +81,14 @@ export const classesRules = [ | |||
|  */ | ||||
| export const deadlineRules = [ | ||||
|     (value: string) => { | ||||
|         if (!value) return 'You must set a deadline.'; | ||||
|         if (!value) return "You must set a deadline."; | ||||
| 
 | ||||
|         const selectedDate = new Date(value); | ||||
|         const selectedDateTime = new Date(value); | ||||
|         const now = new Date(); | ||||
| 
 | ||||
|         if (selectedDate <= now) return 'The deadline must be in the future.'; | ||||
|         if (isNaN(selectedDateTime.getTime())) return "Invalid date or time."; | ||||
| 
 | ||||
|         if (selectedDateTime <= now) return "The deadline must be in the future."; | ||||
| 
 | ||||
|         return true; | ||||
|     }, | ||||
|  |  | |||
|  | @ -8,6 +8,8 @@ | |||
| 
 | ||||
|     const {t, locale} = useI18n(); | ||||
| 
 | ||||
|     const form = ref(); | ||||
| 
 | ||||
|     const language = ref(locale.value); | ||||
| 
 | ||||
|     const searchQuery = ref(''); | ||||
|  | @ -80,8 +82,11 @@ | |||
| 
 | ||||
|     onMounted(fetchAllLearningPaths); | ||||
| 
 | ||||
|     const submitFormHandler = () => { | ||||
|         console.log(deadline.value); | ||||
|     const submitFormHandler = async () => { | ||||
|         const { valid } = await form.value.validate(); | ||||
|         console.log(valid); | ||||
|         console.log(deadline); | ||||
|         if (!valid) return; | ||||
|         submitForm(assignmentTitle.value, selectedLearningPath.value, selectedClasses.value, groups.value, deadline.value); | ||||
|     }; | ||||
| </script> | ||||
|  | @ -91,7 +96,7 @@ | |||
|     <div class="main-container"> | ||||
|         <h1 class="title">{{ t("new-assignment") }}</h1> | ||||
|         <v-card class="form-card"> | ||||
|             <v-form class="form-container" validate-on="submit lazy" @submit.prevent="submitFormHandler"> | ||||
|             <v-form ref="form" class="form-container" validate-on="submit lazy" @submit.prevent="submitFormHandler"> | ||||
|                 <v-container class="step-container"> | ||||
|                     <v-card-text> | ||||
|                         <v-text-field :v-model="assignmentTitle" :label="t('title')" :rules="assignmentTitleRules" | ||||
|  |  | |||
		Reference in a new issue
	
	 Joyelle Ndagijimana
						Joyelle Ndagijimana