Commit 8f3f4bfe authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

WIP

parent a65c34d7
Loading
Loading
Loading
Loading
Loading
+11 −0
Changes for module/Application/config/merged/application.config.php: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ return [
                    'controller' => ApplicationController::class,
                    'action' => [
                        'modifier',
                        'associer-categories',
                    ],
                    'privileges' => [
                        ApplicationPrivileges::APPLICATION_MODIFIER,
@@ -122,6 +123,16 @@ return [
                            ],
                        ],
                    ],
                    'associer-categories' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/associer-categories/:application',
                            'defaults' => [
                                /** @see ApplicationController::associerCategoriesAction() */
                                'action'     => 'associer-categories',
                            ],
                        ],
                    ],
                    'historiser' => [
                        'type'  => Segment::class,
                        'options' => [
+6 −0
Changes for module/Application/config/merged/categorie.config.php: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@ namespace Application;

use Application\Controller\CategorieController;
use Application\Controller\CategorieControllerFactory;
use Application\Form\AssocierCategories\AssocierCategoriesForm;
use Application\Form\AssocierCategories\AssocierCategoriesFormFactory;
use Application\Form\AssocierCategories\AssocierCategoriesHydrator;
use Application\Form\AssocierCategories\AssocierCategoriesHydratorFactory;
use Application\Form\Categorie\CategorieFormFactory;
use Application\Form\Categorie\CategorieHydrator;
use Application\Form\Categorie\CategorieHydratorFactory;
@@ -168,11 +172,13 @@ return [
    ],
    'form_elements' => [
        'factories' => [
            AssocierCategoriesForm::class => AssocierCategoriesFormFactory::class,
            CategorieServiceFactory::class => CategorieFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            AssocierCategoriesHydrator::class => AssocierCategoriesHydratorFactory::class,
            CategorieHydrator::class => CategorieHydratorFactory::class,
        ],
    ],
+33 −0
Changes for module/Application/config/module.config.php: 33 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@

namespace Application;

use Application\Controller\ApplicationController;
use Application\Controller\CategorieController;
use Application\Controller\IndexController;
use Application\Controller\IndexControllerFactory;
use Doctrine\ORM\Mapping\Driver\XmlDriver;
@@ -60,6 +62,37 @@ return [
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'ressources' => [
                        'order' => 1000,
                        'label' => 'Ressources',
                        'title' => "ressources",
                        'route' => 'home',
                        'pages' => [
                            'application' => [
                                'label' => 'Gestion des applications',
                                'route' => 'application',
                                'resource' => PrivilegeController::getResourceId(ApplicationController::class, 'index'),
                                'order'    => 1000,
                                'icon' => 'fas fa-angle-right',
                            ],
                            'categorie' => [
                                'label' => 'Gestion des catégories',
                                'route' => 'categorie',
                                'resource' => PrivilegeController::getResourceId(CategorieController::class, 'index'),
                                'order'    => 1000,
                                'icon' => 'fas fa-angle-right',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'router'          => [
        'routes' => [
            'home'        => [
+28 −28
Changes for module/Application/src/Application/Controller/ApplicationController.php: 28 added lines, 28 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Application\Controller;

use Application\Entity\Db\Application;
use Application\Form\Application\ApplicationFormAwareTrait;
use Application\Form\AssocierCategories\AssocierCategoriesFormAwareTrait;
use Application\Service\Application\ApplicationServiceAwareTrait;
use Laminas\Http\Response;
use Laminas\Mvc\Controller\AbstractActionController;
@@ -13,7 +14,7 @@ use Laminas\View\Model\ViewModel;
class ApplicationController extends AbstractActionController {
    use ApplicationServiceAwareTrait;
    use ApplicationFormAwareTrait;
    //use AssocierCategoriesFormAwareTrait;
    use AssocierCategoriesFormAwareTrait;

    public function indexAction(): ViewModel
    {
@@ -130,31 +131,30 @@ class ApplicationController extends AbstractActionController {
        return $vm;
    }

//    public function associerAction()
//    {
//        $application = $this->getApplicationService()->getRequestedApplication($this);
//        $form = $this->getAssocierCategoriesForm();
//        $form->setAttribute('action', $this->url()->fromRoute('application/associer', ['application' => $application->getId()], [], true));
//        $form->bind($application);
//
//        /** @var Request $request */
//        $request = $this->getRequest();
//        if ($request->isPost()) {
//            $data = $request->getPost();
//            if (!isset($data['categories'])) $data['categories'] = [];
//            $form->setData($data);
//            if ($form->isValid()) {
//                $this->getApplicationService()->update($application);
//                //return $this->redirect()->toRoute('application', [], [], true);
//            }
//        }
//
//        $vm =  new ViewModel();
//        $vm->setTemplate('application/default/default-form');
//        $vm->setVariables([
//            'title' => "Associer des catégories à une application",
//            'form' => $form,
//        ]);
//        return $vm;
//    }
    public function associerCategoriesAction(): ViewModel
    {
        $application = $this->getApplicationService()->getRequestedApplication($this);
        $form = $this->getAssocierCategoriesForm();
        $form->setAttribute('action', $this->url()->fromRoute('application/associer-categories', ['application' => $application->getId()], [], true));
        $form->bind($application);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if (!isset($data['categories'])) $data['categories'] = [];
            $form->setData($data);
            if ($form->isValid()) {
                $this->getApplicationService()->update($application);
                exit();
            }
        }

        $vm =  new ViewModel();
        $vm->setTemplate('default/default-form');
        $vm->setVariables([
            'title' => "Associer des catégories à une application",
            'form' => $form,
        ]);
        return $vm;
    }
}
 No newline at end of file
+4 −3
Changes for module/Application/src/Application/Controller/ApplicationControllerFactory.php: 4 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace Application\Controller;

use Application\Form\Application\ApplicationForm;
use Application\Form\AssocierCategories\AssocierCategoriesForm;
use Application\Service\Application\ApplicationService;
use Interop\Container\ContainerInterface;
use Psr\Container\ContainerExceptionInterface;
@@ -19,17 +20,17 @@ class ApplicationControllerFactory {
        /**
         * @var ApplicationService $applicationService
         * @var ApplicationForm $applicationForm
//         * @var AssocierCategoriesForm $associerCategorieForm
         * @var AssocierCategoriesForm $associerCategorieForm
         */
        $applicationService = $container->get(ApplicationService::class);
        $applicationForm = $container->get('FormElementManager')->get(ApplicationForm::class);
//        $associerCategorieForm = $container->get('FormElementManager')->get(AssocierCategoriesForm::class);
        $associerCategorieForm = $container->get('FormElementManager')->get(AssocierCategoriesForm::class);


        $controller = new ApplicationController();
        $controller->setApplicationService($applicationService);
        $controller->setApplicationForm($applicationForm);
//        $controller->setAssocierCategoriesForm($associerCategorieForm);
        $controller->setAssocierCategoriesForm($associerCategorieForm);
        return $controller;
    }
}
 No newline at end of file
Loading