Commit 367aa23b authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Ajout de date de début et de fin de saisie possible pour le calendar

parent 270ed768
Loading
Loading
Loading
Loading
Loading
+48 −1
Original line number Diff line number Diff line
@@ -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>