Commit 752ea8d4 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

WIP

parent 8f3f4bfe
Loading
Loading
Loading
Loading
Loading
+6 −0
Changes for module/Application/config/merged/application.config.php: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -8,6 +8,10 @@ use Application\Form\Application\ApplicationForm;
use Application\Form\Application\ApplicationFormFactory;
use Application\Form\Application\ApplicationHydrator;
use Application\Form\Application\ApplicationHydratorFactory;
use Application\Form\AssocierApplications\AssocierApplicationFormFactory;
use Application\Form\AssocierApplications\AssocierApplicationsForm;
use Application\Form\AssocierApplications\AssocierApplicationsHydrator;
use Application\Form\AssocierApplications\AssocierApplicationsHydratorFactory;
use Application\Provider\Privileges\ApplicationPrivileges;
use Application\Service\Application\ApplicationService;
use Application\Service\Application\ApplicationServiceFactory;
@@ -181,11 +185,13 @@ return [
    'form_elements' => [
        'factories' => [
            ApplicationForm::class => ApplicationFormFactory::class,
            AssocierApplicationsForm::class => AssocierApplicationFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            ApplicationHydrator::class => ApplicationHydratorFactory::class,
            AssocierApplicationsHydrator::class => AssocierApplicationsHydratorFactory::class,
        ],
    ],

+11 −0
Changes for module/Application/config/merged/categorie.config.php: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ return [
                    'controller' => CategorieController::class,
                    'action' => [
                        'modifier',
                        'associer-applications',
                    ],
                    'privileges' => [
                        CategoriePrivileges::CATEGORIE_MODIFIER,
@@ -125,6 +126,16 @@ return [
                            ],
                        ],
                    ],
                    'associer-applications' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/associer-applications/:categorie',
                            'defaults' => [
                                /** @see CategorieController::associerApplicationsAction() */
                                'action' => 'associer-applications',
                            ],
                        ],
                    ],
                    'historiser' => [
                        'type' => Segment::class,
                        'options' => [
+29 −28
Changes for module/Application/src/Application/Controller/CategorieController.php: 29 added lines, 28 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace Application\Controller;


use Application\Entity\Db\Categorie;
use Application\Form\AssocierApplications\AssocierApplicationsFormAwareTrait;
use Application\Form\Categorie\CategorieFormAwareTrait;
use Application\Service\Categorie\CategorieServiceAwareTrait;
use Laminas\Http\Response;
@@ -13,7 +14,7 @@ use Laminas\View\Model\ViewModel;
class CategorieController extends AbstractActionController {
    use CategorieServiceAwareTrait;
    use CategorieFormAwareTrait;
//    use AssocierApplicationsFormAwareTrait;
    use AssocierApplicationsFormAwareTrait;

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

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

        $form = $this->getAssocierApplicationsForm();
        $form->setAttribute('action', $this->url()->fromRoute('categorie/associer-applications', ['categorie' => $categorie->getId()], [], true));
        $form->bind($categorie);

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

        $vm =  new ViewModel();
        $vm->setTemplate('default/default-form');
        $vm->setVariables([
            'title' => "Associer des applications à une catégorie",
            'form' => $form,
        ]);
        return $vm;
    }
}
 No newline at end of file
+4 −3
Changes for module/Application/src/Application/Controller/CategorieControllerFactory.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\AssocierApplications\AssocierApplicationsForm;
use Application\Form\Categorie\CategorieForm;
use Application\Service\Categorie\CategorieService;
use Psr\Container\ContainerExceptionInterface;
@@ -20,17 +21,17 @@ class CategorieControllerFactory {
        /**
         * @var CategorieService $categorieService
         * @var CategorieForm $categorieForm
//         * @var AssocierApplicationsForm $associerApplicationsForm
         * @var AssocierApplicationsForm $associerApplicationsForm
         */
        $categorieService            = $container->get(CategorieService::class);
        $categorieForm               = $container->get('FormElementManager')->get(CategorieForm::class);
//        $associerApplicationsForm    = $container->get('FormElementManager')->get(AssocierApplicationsForm::class);
        $associerApplicationsForm    = $container->get('FormElementManager')->get(AssocierApplicationsForm::class);


        $controller = new CategorieController();
        $controller->setCategorieService($categorieService);
        $controller->setCategorieForm($categorieForm);
//        $controller->setAssocierApplicationsForm($associerApplicationsForm);
        $controller->setAssocierApplicationsForm($associerApplicationsForm);
        return $controller;
    }
}
 No newline at end of file
+29 −1
Changes for module/Application/src/Application/Controller/IndexController.php: 29 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -3,14 +3,42 @@
namespace Application\Controller;


use Application\Entity\Db\Categorie;
use Application\Service\Application\ApplicationServiceAwareTrait;
use Application\Service\Categorie\CategorieServiceAwareTrait;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;

class IndexController extends AbstractActionController
{
    use UserServiceAwareTrait;
    use ApplicationServiceAwareTrait;
    use CategorieServiceAwareTrait;

    public function indexAction(): ViewModel
    {
        return new ViewModel();
        $connectedUser = $this->getUserService()->getConnectedUser();

        $categories = []; $sans = [];
        if ($connectedUser) {
                $categories = $this->getCategorieService()->getCategories('ordre');
                $sans = $this->getApplicationService()->getApplicationsSansCategories();

                if (!empty($sans)) {
                    $categorie = new Categorie();
                    $categorie->setId(0);
                    $categorie->setLibelle("Sans Catégorie");
                    $categorie->setOrdre(1000000);
                    foreach ($sans as $san) $categorie->addApplication($san);
                    $categories[] = $categorie;
                }
        }

        return new ViewModel([
            'connectedUser' => $connectedUser,
            'categories' => $categories,
        ]);
    }

    public function administrationAction(): ViewModel
Loading