Skip to content
Snippets Groups Projects
Select Git revision
  • 0325707a0a8b10cf5b280b739c5c0e5f4e9b4abd
  • master default protected
  • main
  • update_github_actions
  • 144_rocky8_support
  • 195-update-pdk-to-300
  • 144-rocky8
  • add_test_github_test_workflow
  • pdk_2.4.0
  • fix_unclosed_let_block_in_defines_client_spec
  • validation_fixes
  • freeradius_3_0_21_config_updates
  • data_types
  • PrepareBuster
  • travis
  • 4.0.1
  • 4.0.0
  • 3.9.2
  • 3.9.1
  • 3.9.0
  • 3.8.2
  • 3.8.1
  • 3.8.0
  • 3.7.0
  • 3.6.0
  • 3.5.0
  • 3.4.3
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.0
  • 3.0.0
  • 2.3.1
35 results

virtual_module.pp

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;
        }
    
    }