Commit 55f799eb authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Lors de la saisie manuelle de la chaine hiérarchique l'existant est réaffiché...

Lors de la saisie manuelle de la chaine hiérarchique l'existant est réaffiché après la saisie de l'agent
parent dd36f2a5
Loading
Loading
Loading
Loading
+1 −0
Changes for documentation/release/3.2.6.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ Version 3.2.5 (XX/XX/2023)
---
- [Fix] Retrait de restes de l'ancien système de chaine hiérarchique dans la page d'index des agents. 
- Remplacement de l'affichage Administratif par Administratif/BIATSS 
- Lors de la saisie manuelle de la chaine hiérarchique l'existant est réaffiché après la saisie de l'agent

Modification en BD
---
+13 −0
Changes for module/Application/config/merged/hierarchie.config.php: 13 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ return [
                        'importer',
                        'calculer',
                        'saisir',
                        'chaine-hierarchique-json'
                    ],
                    'privileges' => [
                        AgentPrivileges::AGENT_INDEX, //todo "Faites mieux !!!"
@@ -116,6 +117,18 @@ return [
                                ],
                                'may_terminate' => true,
                            ],
                            'chaine-hierarchique-json' => [
                                'type'  => Segment::class,
                                'options' => [
                                    'route'    => '/chaine-hierarchique-json/:agent',
                                    'defaults' => [
                                        /** @see AgentHierarchieController::chaineHierarchiqueJsonAction() */
                                        'controller' => AgentHierarchieController::class,
                                        'action'     => 'chaine-hierarchique-json',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
                            'importer' => [
                                'type'  => Literal::class,
                                'options' => [
+40 −7
Changes for module/Application/src/Application/Controller/AgentHierarchieController.php: 40 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Application\Service\Agent\AgentServiceAwareTrait;
use Application\Service\AgentAutorite\AgentAutoriteServiceAwareTrait;
use Application\Service\AgentSuperieur\AgentSuperieurServiceAwareTrait;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\JsonModel;
use Laminas\View\Model\ViewModel;
use Structure\Service\Structure\StructureServiceAwareTrait;

@@ -34,10 +35,12 @@ class AgentHierarchieController extends AbstractActionController
        $agent = $this->getAgentService()->getRequestedAgent($this);
        $superieurs = $this->getAgentSuperieurService()->getAgentsSuperieursByAgent($agent);
        usort($superieurs, function (AgentSuperieur $a, AgentSuperieur $b) {
            return $a->getSuperieur()->getNomUsuel().' '.$a->getSuperieur()->getPrenom() > $b->getSuperieur()->getNomUsuel().' '.$b->getSuperieur()->getPrenom();});
            return $a->getSuperieur()->getNomUsuel() . ' ' . $a->getSuperieur()->getPrenom() > $b->getSuperieur()->getNomUsuel() . ' ' . $b->getSuperieur()->getPrenom();
        });
        $autorites = $this->getAgentAutoriteService()->getAgentsAutoritesByAgent($agent, true);
        usort($autorites, function (AgentAutorite $a, AgentAutorite $b) {
            return $a->getAutorite()->getNomUsuel().' '.$a->getAutorite()->getPrenom() > $b->getAutorite()->getNomUsuel().' '.$b->getAutorite()->getPrenom();});
            return $a->getAutorite()->getNomUsuel() . ' ' . $a->getAutorite()->getPrenom() > $b->getAutorite()->getNomUsuel() . ' ' . $b->getAutorite()->getPrenom();
        });

        return new ViewModel([
            'title' => "Chaîne hiérarchique de [" . $agent->getDenomination() . "]",
@@ -64,7 +67,7 @@ class AgentHierarchieController extends AbstractActionController

            //reading
            $array = [];
            if ($fichier_path === null OR $fichier_path === '') {
            if ($fichier_path === null or $fichier_path === '') {
                $error[] = "Aucun fichier !";
            } else {
                $handle = fopen($fichier_path, "r");
@@ -92,10 +95,11 @@ class AgentHierarchieController extends AbstractActionController
                }
            }

            if ($mode === 'import' AND empty($error)) {
            if ($mode === 'import' and empty($error)) {
                $warning = [];
                foreach ($array as $line) {
                    $agentId = $line[0]; $agent = $agents[$agentId];
                    $agentId = $line[0];
                    $agent = $agents[$agentId];
                    $superieurs = array_slice($line, 1, 3);
                    $autorites = array_slice($line, 4, 3);
                    $this->getAgentSuperieurService()->historiseAll($agent);
@@ -156,7 +160,7 @@ class AgentHierarchieController extends AbstractActionController
            }

            $warning = [];
            if ($mode === 'compute' AND empty($error)) {
            if ($mode === 'compute' and empty($error)) {
                foreach ($agents as $agent) {
                    $this->getAgentAutoriteService()->historiseAll($agent);
                    if (empty($autorites[$agent->getId()])) {
@@ -235,8 +239,37 @@ class AgentHierarchieController extends AbstractActionController
            'title' => "Saisie de la chaîne hiérarchique d'un agent",
            'form' => $form,
        ]);
        $vm->setTemplate('default/default-form');
//        $vm->setTemplate('default/default-form');
        return $vm;
    }

    public function chaineHierarchiqueJsonAction(): JsonModel
    {
        $agent = $this->getAgentService()->getRequestedAgent($this);
        $superieurs = $this->getAgentSuperieurService()->getAgentsSuperieursByAgent($agent);
        $autorites = $this->getAgentAutoriteService()->getAgentsAutoritesByAgent($agent);


        $data = [];
        //agent
        $data['AgentId'] = $agent->getId();
        $data['AgentLibelle'] = $agent->getDenomination();
        //superieurs
        $position = 1;
        foreach ($superieurs as $superieur) {
            $data['Superieur' . $position . 'Id'] = $superieur->getSuperieur()->getId();
            $data['Superieur' . $position . 'Libelle'] = $superieur->getSuperieur()->getDenomination();
            $position++;
        }
        //autorites
        $position = 1;
        foreach ($autorites as $autorite) {
            $data['Autorite' . $position . 'Id'] = $autorite->getAutorite()->getId();
            $data['Autorite' . $position . 'Libelle'] = $autorite->getAutorite()->getDenomination();
            $position++;
        }

        return new JsonModel($data);
    }

}
 No newline at end of file
+135 −0
Changes for module/Application/view/application/agent-hierarchie/saisir.phtml: 135 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

/**
 * @var Form $form
 * @var string|null $info
 * @var string|null $warning
 */

use Laminas\Form\Form;

?>

<?php if ($info) : ?>
    <div class="alert alert-info">
        <?php echo $info; ?>
    </div>
<?php endif; ?>

<?php if ($warning) : ?>
    <div class="alert alert-warning">
        <?php echo $warning; ?>
    </div>
<?php endif; ?>

<?php echo $this->form($form); ?>

<script>
    $(document).ready(function() {
        tinymce.remove();
        tinymce.init({
            selector: '.type2',
            toolbar: 'newdocument undo redo | bold italic underline removeformat | bullist',
            resize: true,
            language: 'fr_FR',
            plugins: 'lists',
            statusbar: true,
            browser_spellcheck : true,
            branding: false,
            menu: {},
            body_id: 'description',
            setup: function (editor) {
                editor.on("focusout", function () {
                    console.log(tinymce.get('description').getContent());
                    $('textarea').val(tinymce.get('description').getContent());
                });
            }
        });
    });



    $('input#agent[id]').hide()


    $('input#agent[id]').on('change', function() {
        let agentId = $('input#agent[id]').val();
        let url = "chaine-hierarchique-json/" + agentId;

        $.ajax({
            type: "POST",
            url: url,
            // beforeSend:
                // function () {
                //     document.getElementById('preview-fiche-metier').innerHTML = "Récupération de la fiche métier ...";
                // },
            success:
                function (retour) {
                    if (retour['Superieur1Id']) {
                        console.log('Superieur 1 : ' + retour['Superieur1Id'] + ' ' + retour['Superieur1Libelle']);
                        $('input#superieur1[id]').val(retour['Superieur1Id']);
                        $('input#superieur1-autocomplete').val(retour['Superieur1Libelle']);
                    } else {
                        $('input#superieur1[id]').val(null); $('input#superieur1-autocomplete').val(null);
                    }
                    if (retour['Superieur2Id']) {
                        console.log('Superieur 2 : ' + retour['Superieur2Id'] + ' ' + retour['Superieur2Libelle']);
                        $('input#superieur2[id]').val(retour['Superieur2Id']);
                        $('input#superieur2-autocomplete').val(retour['Superieur2Libelle']);
                    } else {
                        $('input#superieur2[id]').val(null); $('input#superieur2-autocomplete').val(null);
                    }

                    if (retour['Superieur3Id']) {
                        console.log('Superieur 3 : ' + retour['Superieur3Id'] + ' ' + retour['Superieur3Libelle']);
                        $('input#superieur3[id]').val(retour['Superieur3Id']);
                        $('input#superieur3-autocomplete').val(retour['Superieur3Libelle']);
                    } else {
                        $('input#superieur3[id]').val(null); $('input#superieur3-autocomplete').val(null);
                    }
                    if (retour['Autorite1Id']) {
                        console.log('Autorité 1 : ' + retour['Autorite1Id'] + ' ' + retour['Autorite1Libelle']);
                        $('input#autorite1[id]').val(retour['Autorite1Id']);
                        $('input#autorite1-autocomplete').val(retour['Autorite1Libelle']);
                    } else {
                        $('input#autorite1[id]').val(null); $('input#autorite1-autocomplete').val(null);
                    }
                    if (retour['Autorite2Id']) {
                        console.log('Autorité 2 : ' + retour['Autorite2Id'] + ' ' + retour['Autorite2Libelle']);
                        $('input#autorite2[id]').val(retour['Autorite2Id']);
                        $('input#autorite2-autocomplete').val(retour['Autorite2Libelle']);
                    } else {
                        $('input#autorite2[id]').val(null); $('input#autorite2-autocomplete').val(null);
                    }
                    if (retour['Autorite3Id']) {
                        console.log('Autorité 3 : ' + retour['Autorite3Id'] + ' ' + retour['Autorite3Libelle']);
                        $('input#autorite3[id]').val(retour['Autorite3Id']);
                        $('input#autorite3-autocomplete').val(retour['Autorite3Libelle']);
                    } else {
                        $('input#autorite3[id]').val(null); $('input#autorite3-autocomplete').val(null);
                    }
                    // var texte = "";
                    // if (retour["value"] == 1) texte = "<span class='glyphicon glyphicon-ok text-success'></span>";
                    // else var texte = "<span class='glyphicon glyphicon-remove text-danger'></span>";
                    // document.getElementById('preview-fiche-metier').innerHTML = retour;
                }
        });
    });

    $('select').selectpicker();
</script>

<style>
    .ui-datepicker{
        position: absolute;
        z-index:1050 !important;
    }
   /*div.ui-datepicker {*/
   /*    position: absolute;*/
   /*     z-index:1050;*/
   /* }*/
   /* select.ui-datepicker-year option{*/
   /* position: absolute;*/
   /*     z-index:3151 !important;*/
   /* }*/
</style>
 No newline at end of file
+2 −1
Changes for module/Formation/src/Formation/Controller/StructureController.php: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ use Formation\Entity\Db\Formation;
use Formation\Service\DemandeExterne\DemandeExterneServiceAwareTrait;
use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\JsonModel;
use Laminas\View\Model\ViewModel;
use Structure\Entity\Db\StructureAgentForce;
use Structure\Service\Structure\StructureServiceAwareTrait;
@@ -97,7 +98,7 @@ class StructureController extends AbstractActionController
        ]);
    }

    public function extractionFormationsAction() : CsvModel
    public function extractionFormationsAction() : JsonModel
    {
        /**  Récupération du sous-arbre des structures */
        $structure = $this->getStructureService()->getRequestedStructure($this);