Commit d97b7d59 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Suivi de mission (WIP)

parent 84d50bc8
Loading
Loading
Loading
Loading
+95 −0
Original line number Diff line number Diff line
<template>
    <select>
        <option v-for="m in listeMois()" :value="m.id">{{ m.libelle }}</option>
    </select>
    <select>
        <option v-for="a in listeAnnees()" :value="a">{{ a }}</option>
    </select>
    <table class="table table-bordered">
        <thead>
        <tr>
            <th v-for="j in listeJours()" class="cal-th">{{ j.libelle }}</th>
        </tr>
        </thead>
        <tbody>
        <tr v-for="l in lignes()">
            <td v-for="j in listeJours()" class="cal-td" :data-numero="l*7+j.id"></td>
        </tr>
        </tbody>
    </table>
</template>

<script>

export default {
    name: 'UCalendar',
    props: {
        date: {type: Date, required: true},
    },
    methods: {
        listeJours()
        {
            let jours = [];

            const dateObj = new Date();

            for (let i = 1; i <= 7; i++) {
                dateObj.setDate(dateObj.getDate() - dateObj.getDay() + (i == 7 ? 0 : i));
                let nomJour = dateObj.toLocaleDateString('fr-FR', {weekday: 'long'});
                jours.push({id: i, libelle: nomJour});
            }

            return jours;
        },

        listeMois()
        {
            let mois = [];

            const dateObj = new Date();

            for (let i = 1; i <= 12; i++) {
                dateObj.setMonth(i - 1);
                let nomMois = dateObj.toLocaleString("fr-FR", {month: "long"});
                mois.push({id: i, libelle: nomMois});
            }

            return mois;
        },

        listeAnnees()
        {
            const dateObj = new Date();
            const annee = dateObj.getFullYear();
            const range = 1;

            let annees = [];

            for (let a = annee - range; a <= annee + range; a++) {
                annees.push(a);
            }

            return annees;
        },

        lignes()
        {
            return [0,1,2,3,4];
        },
    }
}
</script>

<style scoped>

.cal-th {
    width: 10%;
}

.cal-td {
    width: 10%;
    min-height: 10em;
    height: 10em;
}

</style>
 No newline at end of file
+21 −0
Original line number Diff line number Diff line
<template>
    <u-calendar date="2023-02-01"></u-calendar>
    <button @click="test()">Test</button>
</template>

<script>

export default {
    name: 'Suivi',
    methods: {
        test()
        {
            console.log(this.lignes());
        }
    }
}
</script>

<style scoped>

</style>
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ export default {
    uIcon: 'Application/UI/UIcon',
    uHeures: 'Application/UI/UHeures',
    uModal: 'Application/UI/UModal',
    uCalendar: 'Application/UI/UCalendar',

    /* App common components */
    utilisateur: 'Application/Utilisateur',
+28 −45
Original line number Diff line number Diff line
@@ -22,19 +22,16 @@ return [
                    'action'     => 'index',
                    'privileges' => Privileges::MISSION_VISUALISATION,
                    //'assertion'  => Assertion\MissionAssertion::class,
                    'may_terminate' => true,
                    'child_routes'  => [
                        'modification' => [
                            'route'      => '/modification',
                ],
                'missions-suivi' => [
                    'route'      => '/:intervenant/missions-suivi',
                    'controller' => MissionController::class,
                            'action'     => 'modification',
                            'privileges' => Privileges::MISSION_EDITION,
                    'action'     => 'suivi',
                    'privileges' => Privileges::MISSION_EDITION_REALISE,
                    //'assertion'  => Assertion\MissionAssertion::class,
                ],
            ],
        ],
            ],
        ],
        'mission'       => [
            'route'         => '/mission',
            'may_terminate' => false,
@@ -67,11 +64,6 @@ return [
                    'privileges' => Privileges::MISSION_EDITION,
                    //'assertion'  => Assertion\MissionAssertion::class,
                ],
                'suivi'          => [
                    'route'      => '/suivi/:intervenant',
                    'controller' => MissionController::class,
                    'action'     => 'suivi',
                ],
                'supprimer'      => [
                    'route'      => '/supprimer/:mission',
                    'controller' => MissionController::class,
@@ -121,17 +113,20 @@ return [
            'route'         => '/missions-type',
            'controller'    => MissionTypeController::class,
            'action'        => 'index',
            'privileges'    => Privileges::MISSION_VISUALISATION_TYPE,
            'may_terminate' => true,
            'child_routes'  => [
                'saisir'    => [
                    'route'      => '/saisir[/:typeMission]',
                    'controller' => MissionTypeController::class,
                    'action'     => 'saisir',
                    'privileges' => Privileges::MISSION_EDITION_TYPE,
                ],
                'supprimer' => [
                    'route'      => '/supprimer/:typeMission',
                    'controller' => MissionTypeController::class,
                    'action'     => 'supprimer',
                    'privileges' => Privileges::MISSION_SUPPRESSION_TYPE,
                ],
            ],
        ],
@@ -153,6 +148,18 @@ return [
                    'visible'             => Assertion\MissionAssertion::class,
                    'order'               => 8,
                ],
                'missions-suivi' => [
                    'label'               => "Suivi de missions",
                    'title'               => "Suivi de missions",
                    'route'               => 'intervenant/missions-suivi',
                    'paramsInject'        => [
                        'intervenant',
                    ],
                    'workflow-etape-code' => WfEtape::CODE_MISSION_SAISIE_REALISE,
                    'withtarget'          => true,
                    'visible'             => Assertion\MissionAssertion::class,
                    'order'               => 10,
                ],
            ],
        ],
        'administration' => [
@@ -174,30 +181,6 @@ return [
    'rules' => [
    ],

    'guards' => [
        [
            'controller' => MissionTypeController::class,
            'action'     => ['index'],
            'privileges' => [
                Privileges::MISSION_VISUALISATION_TYPE,
            ],
        ],
        [
            'controller' => MissionTypeController::class,
            'action'     => ['saisir'],
            'privileges' => [
                Privileges::MISSION_EDITION_TYPE,
            ],
        ],
        [
            'controller' => MissionTypeController::class,
            'action'     => ['supprimer'],
            'privileges' => [
                Privileges::MISSION_SUPPRESSION_TYPE,
            ],
        ],
    ],

    'controllers' => [
        MissionController::class     => Controller\MissionControllerFactory::class,
        MissionTypeController::class => Controller\MissionTypeControllerFactory::class,
+0 −2
Original line number Diff line number Diff line
@@ -4,9 +4,7 @@ namespace Mission\Assertion;

use Application\Acl\Role;
use Application\Entity\Db\Intervenant;
use Application\Entity\Db\WfEtape;
use Application\Provider\Privilege\Privileges;
use Service\Entity\Db\TypeVolumeHoraire;
use UnicaenAuth\Assertion\AbstractAssertion;
use Laminas\Permissions\Acl\Resource\ResourceInterface;

Loading