Skip to content
Snippets Groups Projects
Select Git revision
  • f38f23c78f2a7962aee8e33f11c9ed3932d125a1
  • master default protected
  • ll-workflow
  • alc-scindage-donnees-pj
  • b24
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

ServiceAwareTrait.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AxiosRenderer.php 1.82 KiB
    <?php
    
    namespace UnicaenVue\View\Renderer;
    
    
    use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger;
    use Laminas\View\Model\JsonModel;
    use Laminas\View\Renderer\JsonRenderer;
    use UnicaenVue\Axios\AxiosExtractor;
    use UnicaenVue\View\Model\AxiosModel;
    
    /**
     * Description of AxiosRenderer
     *
     * @author Laurent Lécluse <laurent.lecluse at unicaen.fr>
     */
    class AxiosRenderer extends JsonRenderer
    {
        protected FlashMessenger $flashMessenger;
    
    
    
        public function render($nameOrModel, $values = null)
        {
            if ($nameOrModel instanceof AxiosModel) {
                $data = $this->makeData($nameOrModel);
            }
    
            return parent::render($data, null);
        }
    
    
    
        protected function makeData(AxiosModel $axiosModel): array
        {
            $data = AxiosExtractor::extract($axiosModel->getData(), $axiosModel->getProperties(), $axiosModel->getTriggers());
    
            $namespaces = [
                $this->flashMessenger::NAMESPACE_SUCCESS,
                $this->flashMessenger::NAMESPACE_WARNING,
                $this->flashMessenger::NAMESPACE_ERROR,
                $this->flashMessenger::NAMESPACE_INFO,
            ];
    
            $messages = [];
            foreach ($namespaces as $namespace) {
                if ($this->flashMessenger->hasCurrentMessages($namespace)) {
                    $messages[$namespace] = $this->flashMessenger->getCurrentMessages($namespace);
                    $this->flashMessenger->clearCurrentMessages($namespace);
                }
            }
    
            $jsonData = [
                'data'     => $data,
                'messages' => $messages,
            ];
    
            return $jsonData;
        }
    
    
    
        public function getFlashMessenger(): FlashMessenger
        {
            return $this->flashMessenger;
        }
    
    
    
        public function setFlashMessenger(FlashMessenger $flashMessenger): AxiosRenderer
        {
            $this->flashMessenger = $flashMessenger;
    
            return $this;
        }
    
    }