From 367aa23bbafb44b9da51605e8d2ce38ac49deace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr> Date: Wed, 26 Apr 2023 09:54:05 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20date=20de=20d=C3=A9but=20et=20de?= =?UTF-8?q?=20fin=20de=20saisie=20possible=20pour=20le=20calendar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/UCalendar.vue | 49 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/components/UCalendar.vue b/components/UCalendar.vue index 01f2da5..e978e66 100644 --- a/components/UCalendar.vue +++ b/components/UCalendar.vue @@ -33,7 +33,7 @@ <component :is="event.component" :event="event"></component> </div> - <div v-if="canAddEvent"> + <div v-if="canAdd(jour)"> <button @click="addEvent" :data-jour="jour" class="btn btn-light btn-sm"> <u-icon name="plus"/> Nouvel événement @@ -53,6 +53,8 @@ export default { date: {type: Date, required: true}, events: {type: Array, required: true}, canAddEvent: {type: Boolean, required: true, default: true}, + addDateDebut: {type: String, required: false}, + addDateFin: {type: String, required: false}, }, data() { @@ -135,6 +137,41 @@ export default { return annees; }, + canAdd(numJour) + { + let dateDebut = this.addDateDebut; + + if (undefined === dateDebut){ + dateDebut = new Date('2000-01-01'); + }else if ('now' === dateDebut){ + dateDebut = new Date(); + }else{ + dateDebut = new Date(dateDebut); + } + + + let dateFin = this.addDateFin; + if (undefined === dateFin){ + dateFin = new Date('2500-01-01'); + }else if ('now' === dateFin){ + dateFin = new Date(); + }else{ + dateFin = new Date(dateFin); + } + + let date = new Date(this.date); + date.setDate(numJour); + + dateDebut = this.isoDateOnly(dateDebut); + dateFin = this.isoDateOnly(dateFin); + date = this.isoDateOnly(date); + + if (date < dateDebut) return false; + if (date > dateFin) return false; + + return true; + }, + addEvent(event) { const dateObj = new Date(this.date); @@ -175,6 +212,16 @@ export default { } return res; }, + + isoDateOnly(dateObj) + { + const year = dateObj.getFullYear(); + const month = String(dateObj.getMonth() + 1).padStart(2, '0'); + const day = String(dateObj.getDate()).padStart(2, '0'); + const formattedDate = `${year}-${month}-${day}`; + + return formattedDate; + }, } } </script> -- GitLab