From 600786d91490b5a16460836f830363946f424873 Mon Sep 17 00:00:00 2001 From: nox Date: Mon, 27 Jan 2020 03:56:05 +0100 Subject: [PATCH] Avancement sur Modification d'une antenne - Reglage des selects imbriques --- src/Admin/AdminModule.php | 1 + src/Antenne/Actions/AntenneEditAction.php | 23 ++++ src/Antenne/views/edit.twig | 131 +++++++++++++--------- src/Gmarche/Table/AntenneTable.php | 2 +- 4 files changed, 100 insertions(+), 57 deletions(-) diff --git a/src/Admin/AdminModule.php b/src/Admin/AdminModule.php index 5690162..ce31d96 100644 --- a/src/Admin/AdminModule.php +++ b/src/Admin/AdminModule.php @@ -36,6 +36,7 @@ class AdminModule extends Module $router->post('/profil-user', [LoggedInMiddleware::class, AccountUserEditAction::class]); $router->get('/antenne/create', [LoggedInMiddleware::class, AntenneCrudAction::class], 'antenne.create'); $router->get('/antenne/edit', [LoggedInMiddleware::class, AntenneEditAction::class], 'antenne.edit'); + $router->post('/antenne/edit', [LoggedInMiddleware::class, AntenneEditAction::class]); if ($renderer instanceof TwigRenderer) { $renderer->getTwig()->addExtension($adminTwigExtension); // $renderer->getTwig()->addExtension($variableExtension); diff --git a/src/Antenne/Actions/AntenneEditAction.php b/src/Antenne/Actions/AntenneEditAction.php index b14954f..1690361 100644 --- a/src/Antenne/Actions/AntenneEditAction.php +++ b/src/Antenne/Actions/AntenneEditAction.php @@ -8,6 +8,8 @@ use App\Gmarche\Table\AntenneTable; use App\Gmarche\Table\RegionTable; use Framework\Actions\RouterAwareAction; use Framework\Renderer\RendererInterface; +use Framework\Response\RedirectResponse; +use Framework\Validator; use Psr\Container\ContainerInterface; use Psr\Http\Message\ServerRequestInterface as Request; @@ -61,6 +63,27 @@ class AntenneEditAction //$region = $this->regionTable->findBy('slug', $slug); $sess = $_SESSION; + if ($request->getMethod() === 'POST') { + //$user = $this->auth->getUser(); + $params = $request->getParsedBody(); + $antenne_id = $params['antenne']; + echo "antenne_id=/"; + var_dump($params); + echo "/"; + die(); + $validator = (new Validator($params)) + ->required('antenne', 'region'); + if ($validator->isValid()) { + $antenneParams = [ + 'id' => $params['antenne'], + 'region_id' => $params['region'] + ]; + $this->antenneTable->update($antenne_id, $antenneParams); + $this->flashService->success("L'antenne a bien été mise à jour"); + return new RedirectResponse($request->getUri()->getPath()); + } + $errors = $validator->getErrors(); + } return $this->renderer->render('@antenne/edit', compact('sess','page', 'listeRegions', 'listeAntennes')); } } diff --git a/src/Antenne/views/edit.twig b/src/Antenne/views/edit.twig index 2defd54..74d380c 100644 --- a/src/Antenne/views/edit.twig +++ b/src/Antenne/views/edit.twig @@ -30,75 +30,95 @@
- + MODIFICATION D'UNE ANTENNE - -
-
- ANTENNE - -
-
- REGION - -
-
-
- -
-
- {{ field('contenu', item.content, "Annonce de présentation du G-marché", {type: 'textarea'}) }} -
-
-
-
- {{ field('datepicker', item.gmarcheAt, "Date prochain G-marché", {class: 'datepicker'}) }} -
-
- {{ field('name', item.name, "Nom du produit") }} -
-
- -
-
-
+
+
+ +
+ +
+
+ ANTENNE + +
+ {% set j=0 %} + {% for item in listeAntennes %} + {% set j=j+1 %} + {% set name = 'region_name'~j %} + {{ field(name,item.regionName,"", {type:'hidden'}) }} + {% endfor %} +
+
+ REGION + +
+
+
+
+ {{ field('datepicker', item.gmarcheAt, "Prochain G-marché", {class: 'datepicker'}) }} +
+
+
+
+
+
+ +
+ + +
+
+
+ + +
+
+
diff --git a/src/Gmarche/Table/AntenneTable.php b/src/Gmarche/Table/AntenneTable.php index 2e14bd3..4e4a55e 100644 --- a/src/Gmarche/Table/AntenneTable.php +++ b/src/Gmarche/Table/AntenneTable.php @@ -26,7 +26,7 @@ class AntenneTable extends Table $region = new RegionTable($this->pdo); return $this->makeQuery() ->join($region->getTable() . ' as r', 'a.region_id = r.id') - ->select('a.id, r.name as regionName, a.name as antenneName, r.slug as regionSlug, a.slug as antenneSlug') + ->select('a.id, a.region_id, r.name as regionName, a.name as antenneName, r.slug as regionSlug, a.slug as antenneSlug') ->order('r.name, a.name ASC'); } }