Loading documentation/release/3.2.6.md +1 −0 Changes for documentation/release/3.2.6.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -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 --- Loading module/Application/config/merged/hierarchie.config.php +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 Loading @@ -39,6 +39,7 @@ return [ 'importer', 'calculer', 'saisir', 'chaine-hierarchique-json' ], 'privileges' => [ AgentPrivileges::AGENT_INDEX, //todo "Faites mieux !!!" Loading Loading @@ -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' => [ Loading module/Application/src/Application/Controller/AgentHierarchieController.php +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 Loading @@ -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; Loading @@ -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() . "]", Loading @@ -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"); Loading Loading @@ -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); Loading Loading @@ -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()])) { Loading Loading @@ -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 module/Application/view/application/agent-hierarchie/saisir.phtml 0 → 100644 +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 module/Formation/src/Formation/Controller/StructureController.php +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 Loading @@ -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; Loading Loading @@ -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); Loading Loading
documentation/release/3.2.6.md +1 −0 Changes for documentation/release/3.2.6.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -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 --- Loading
module/Application/config/merged/hierarchie.config.php +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 Loading @@ -39,6 +39,7 @@ return [ 'importer', 'calculer', 'saisir', 'chaine-hierarchique-json' ], 'privileges' => [ AgentPrivileges::AGENT_INDEX, //todo "Faites mieux !!!" Loading Loading @@ -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' => [ Loading
module/Application/src/Application/Controller/AgentHierarchieController.php +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 Loading @@ -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; Loading @@ -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() . "]", Loading @@ -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"); Loading Loading @@ -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); Loading Loading @@ -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()])) { Loading Loading @@ -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
module/Application/view/application/agent-hierarchie/saisir.phtml 0 → 100644 +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
module/Formation/src/Formation/Controller/StructureController.php +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 Loading @@ -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; Loading Loading @@ -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); Loading