Avancement sur gestion des antennes - Formulaire de modification
This commit is contained in:
parent
bd626f62e5
commit
5ebbf9d7d2
|
@ -5,7 +5,8 @@ namespace App\Admin;
|
|||
use App\Account\Action\AccountUserAction;
|
||||
use App\Account\Action\AccountUserEditAction;
|
||||
use App\Account\Action\ActiveAction;
|
||||
use App\Auth\Action\PasswordForgetAction;
|
||||
use App\Antenne\Actions\AntenneEditAction;
|
||||
use App\Antenne\Actions\AntenneCrudAction;
|
||||
use Framework\Auth\LoggedInMiddleware;
|
||||
use Framework\Module;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
|
@ -23,13 +24,18 @@ class AdminModule extends Module
|
|||
string $prefix
|
||||
)
|
||||
{
|
||||
$chemin = str_replace('Admin','antenne',__DIR__);
|
||||
//var_dump($chemin);
|
||||
//die();
|
||||
$renderer->addPath('antenne', $chemin . '/views');
|
||||
$router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', [LoggedInMiddleware::class, DashboardAction::class], 'dashboard');
|
||||
$router->get('/dashboard/details/{user:[a-zA-Z\-0-9]+}', [LoggedInMiddleware::class, DashboardUserAction::class], 'dashboard.user');
|
||||
$router->get('/activation', [LoggedInMiddleware::class, ActiveAction::class], 'account.active');
|
||||
$router->post('/activation', ActiveAction::class);
|
||||
$router->get('/profil-user', [LoggedInMiddleware::class, AccountUserEditAction::class], 'account.user');
|
||||
$router->post('/profil-user', [LoggedInMiddleware::class, AccountUserEditAction::class]);
|
||||
//$router->any('/password_reinit', PasswordForgetAction::class, 'auth.password');
|
||||
$router->get('/antenne/create', [LoggedInMiddleware::class, AntenneCrudAction::class], 'antenne.create');
|
||||
$router->get('/antenne/edit', [LoggedInMiddleware::class, AntenneEditAction::class], 'antenne.edit');
|
||||
if ($renderer instanceof TwigRenderer) {
|
||||
$renderer->getTwig()->addExtension($adminTwigExtension);
|
||||
// $renderer->getTwig()->addExtension($variableExtension);
|
||||
|
|
|
@ -41,9 +41,19 @@
|
|||
{% endif %}
|
||||
<p></p>
|
||||
{% if affiche_role()==0 or affiche_role()==1 or affiche_role()==2 %}
|
||||
<h4>Gérer les antennes</h4>
|
||||
<button class="btn btn-primary" style="max-width: 6rem;margin-top:0rem;margin-bottom:0.7rem;height:2rem;">
|
||||
<a class="nav-link" href="{{ path('antenne.edit') }}" style="padding-left:0.2rem;margin-top:-0.4rem;color:white;font-size:14px;">MODIFIER</a>
|
||||
</button>
|
||||
<button class="btn btn-primary" style="margin-top:0rem;margin-bottom:0.7rem;height:2rem;padding-left:-1rem;">
|
||||
<a class="nav-link" href="{{ path('antenne.create') }}" style="margin-top:-0.4rem;color:white;font-size:14px;">CREER</a>
|
||||
</button>
|
||||
<button class="btn btn-primary" style="max-width:6.4rem;margin-top:0rem;margin-bottom:0.7rem;height:2rem;">
|
||||
<a class="nav-link" href="{{ path('antenne.edit') }}" style="padding-left:0rem;margin-top:-0.4rem;color:white;font-size:14px;">SUPPRIMER</a>
|
||||
</button>
|
||||
<h4>Liste des régions/antennes</h4>
|
||||
|
||||
<ul class="list-group list-group-flush">
|
||||
{% set antenne = '' %}
|
||||
{% set region = '' %}
|
||||
{% for item in listeAntennes %}
|
||||
{% if (item.regionName != region) %}
|
||||
|
@ -63,7 +73,6 @@
|
|||
</li>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% set antenne = item.antenneName %}
|
||||
{% set region = item.regionName %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
namespace App\Antenne\Actions;
|
||||
if (!isset($_SESSION)) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use App\Gmarche\Table\RegionTable;
|
||||
use Framework\Actions\RouterAwareAction;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
||||
class AntenneCrudAction
|
||||
{
|
||||
|
||||
/**
|
||||
* @var RendererInterface
|
||||
*/
|
||||
private $renderer;
|
||||
|
||||
/**
|
||||
* @var RegionTable
|
||||
*/
|
||||
private $regionTable;
|
||||
|
||||
/**
|
||||
* @var AntenneTable
|
||||
*/
|
||||
private $antenneTable;
|
||||
|
||||
use RouterAwareAction;
|
||||
|
||||
public function __construct(
|
||||
RendererInterface $renderer,
|
||||
RegionTable $regionTable,
|
||||
AntenneTable $antenneTable,
|
||||
ContainerInterface $container
|
||||
) {
|
||||
$this->renderer = $renderer;
|
||||
$this->regionTable = $regionTable;
|
||||
$this->antenneTable = $antenneTable;
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$params = $request->getQueryParams();
|
||||
// On récupère l'id de la région cliquée
|
||||
$slug = $request->getAttribute('slug') ?: $_SESSION['connecte'];
|
||||
$region_id = $this->regionTable->findBy('slug', $slug)->id ?: 1;
|
||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||
$antennes = $this->antenneTable->findAllbyRegion($region_id)->paginate(25, $page);
|
||||
$region = $this->regionTable->findBy('slug', $slug);
|
||||
$viewPath = '@antenne';
|
||||
$sess = $_SESSION;
|
||||
|
||||
return $this->renderer->render('@antenne/create', compact('sess','page', 'region', 'viewPath', 'antennes'));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
namespace App\Antenne\Actions;
|
||||
if (!isset($_SESSION)) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use App\Gmarche\Table\RegionTable;
|
||||
use Framework\Actions\RouterAwareAction;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
||||
class AntenneEditAction
|
||||
{
|
||||
|
||||
/**
|
||||
* @var RendererInterface
|
||||
*/
|
||||
private $renderer;
|
||||
|
||||
/**
|
||||
* @var RegionTable
|
||||
*/
|
||||
private $regionTable;
|
||||
|
||||
/**
|
||||
* @var AntenneTable
|
||||
*/
|
||||
private $antenneTable;
|
||||
|
||||
use RouterAwareAction;
|
||||
|
||||
public function __construct(
|
||||
RendererInterface $renderer,
|
||||
RegionTable $regionTable,
|
||||
AntenneTable $antenneTable,
|
||||
ContainerInterface $container
|
||||
) {
|
||||
$this->renderer = $renderer;
|
||||
$this->regionTable = $regionTable;
|
||||
$this->antenneTable = $antenneTable;
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
if ($request->getMethod() === 'GET') {
|
||||
// $role = $this->session->get('role', []);
|
||||
// $username = $this->session->get('username', []);
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
$listeRegions = $this->regionTable->findAll();
|
||||
}
|
||||
|
||||
$params = $request->getQueryParams();
|
||||
// On récupère l'id de la région cliquée
|
||||
$slug = $request->getAttribute('slug') ?: $_SESSION['connecte'];
|
||||
//$region_id = $this->regionTable->findBy('slug', $slug)->id ?: 1;
|
||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||
// $antennes = $this->antenneTable->findAllbyRegion($region_id)->paginate(25, $page);
|
||||
//$region = $this->regionTable->findBy('slug', $slug);
|
||||
$sess = $_SESSION;
|
||||
|
||||
return $this->renderer->render('@antenne/edit', compact('sess','page', 'listeRegions', 'listeAntennes'));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
{% extends 'layout.twig' %}
|
||||
|
||||
{% block title "Ğ1-Marché - Créer une antenne" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container" style="background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||
<h4>Créer une antenne</h4>
|
||||
|
||||
<form action="" method="post" enctype="multipart/form-data">
|
||||
<form action="{{ path('antenne.create', { id: item.id, region: explodeUrl()[2], slug: explodeUrl()[3], antenne: explodeUrl()[4]}) }}" method="post" enctype="multipart/form-data">
|
||||
{% include viewPath ~ '/form.twig' %}
|
||||
<!--input id="antenne_id" name="antenne_id" type="hidden" value=" explodeUrl()[4] }}"-->
|
||||
<button class="btn btn-primary" type="submit">Ajouter</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -0,0 +1,64 @@
|
|||
{% extends 'layout.twig' %}
|
||||
{% block title "Ğ1-Marché - Modifier Antennes" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container_main">
|
||||
<div id="la_page">
|
||||
<span style="color:white;font-size:1.4rem;">
|
||||
MODIFICATION D'UNE ANTENNE
|
||||
</span>
|
||||
<div class="container" style="padding:3rem; width:55rem;border:1px solid blue;margin:auto;">
|
||||
<div style="width:15rem;color:white;float:left;text-align:left;">
|
||||
<span style="margin-left:1rem;">ANTENNE</span>
|
||||
<select id="antenne" class="form-control">
|
||||
<option class="list-group-item list-group-item-action" value="0">
|
||||
Sélectionnez l'antenne
|
||||
</option>
|
||||
{% for item in listeAntennes %}
|
||||
<option class="list-group-item list-group-item-action" value="{{ item.regionName }}">
|
||||
{{ item.antenneName }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div style="width:14rem;margin-left:5rem;border:1px solid green;color:white;float:right;">
|
||||
REGION
|
||||
<input class="form-control" id="region" />
|
||||
|
||||
</div>
|
||||
<div style="clear:both;">
|
||||
<form>
|
||||
<!--{ csrf_input }}-->
|
||||
<div class="row" style="color:white;">
|
||||
<div class="col-md-4">
|
||||
{{ field('name', item.name, "Nom du produit") }}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{{ field('contenu', item.content, "Contenu", {type: 'textarea'}) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{{ field('prix', item.prix, "Prix") }}
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Enregistrer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.querySelector("#antenne").addEventListener("change", function() {
|
||||
var x = document.querySelector("#antenne").selectedIndex
|
||||
var y = document.querySelector("#antenne").options
|
||||
document.querySelector("#region").value = y[x].value
|
||||
});
|
||||
|
||||
|
||||
/*textInput.onchange = function (e) {
|
||||
alert('test')
|
||||
};*/
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
|
@ -0,0 +1,35 @@
|
|||
{{ csrf_input }}
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{{ field('name', item.name, "Nom du produit") }}
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{{ field('quantite', item.quantite, "Quantité") }}
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{{ field('prix', item.prix, "Prix") }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ field('image', item.slug, "Image", {type: 'file'}) }}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{% if item.image %}
|
||||
<img src="{{ item.thumb }}" alt="" style="width:100%;">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div class="col-md-4">
|
||||
field('slug', item.slug, "Lien")
|
||||
</div>-->
|
||||
</div>
|
||||
{{ field('content', item.content, "Description", {type: 'textarea'}) }}
|
||||
|
||||
{{ field('updated_at', item.updatedAt, "", {type: 'hidden'}) }}
|
||||
{{ field('created_at', date(), "", {type: 'hidden'}) }}
|
||||
{{ field('antenne_id', explodeUrl()[4], "", {type: 'hidden'}) }}
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
{% extends 'layout.twig' %}
|
||||
{% block title "Ğ1-Marché - Antennes" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container_main">
|
||||
<div id="la_page">
|
||||
<span style="color:white;font-size:1.4rem;">
|
||||
GESTION DES ANTENNES
|
||||
</span>
|
||||
<div class="container" style="margin:2rem 1rem;">
|
||||
<a target="_blank" href="{{ path('antenne.create') }}" style="color:white;font-size: 1rem;"
|
||||
class="btn btn-primary">Ajouter</a>
|
||||
</div>
|
||||
<div class="container" style="margin:1rem;">
|
||||
<a target="_blank" href="{{ path('antenne.edit', {id: antenne.id}) }}" style="color:white;font-size: 1rem;"
|
||||
class="btn btn-primary">Modifier</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -46,10 +46,6 @@ class LogoutAction
|
|||
|
||||
public function __invoke(ServerRequestInterface $request)
|
||||
{
|
||||
/*echo "<pre>";
|
||||
var_dump($request);
|
||||
echo "</pre>";
|
||||
die();*/
|
||||
unset($_SESSION['user']);
|
||||
$_SESSION['connecte']='---';
|
||||
$_SESSION['logout']=true;
|
||||
|
|
|
@ -41,21 +41,33 @@ class LoggedInMiddleware implements MiddlewareInterface
|
|||
|
||||
public function process(ServerRequestInterface $request, DelegateInterface $delegate): ResponseInterface
|
||||
{
|
||||
// echo "<pre>";
|
||||
// var_dump($request);
|
||||
// var_dump($_SESSION);
|
||||
// echo "</pre>";
|
||||
// die();
|
||||
$user = $request->getAttribute('user');
|
||||
if ($user != '' && $user != '---') {
|
||||
if ($user != '' && $user != '---' && $_SESSION['connecte'] != '---') {
|
||||
$_SESSION['connecte']=$user;
|
||||
} else {
|
||||
if ($_SESSION['connecte'] != '---') {
|
||||
$username = $_SESSION['connecte'];
|
||||
} else {
|
||||
$url_part = explode('/', $request->getServerParams()['HTTP_REFERER'] ?? '/');
|
||||
$username = $url_part[5];
|
||||
|
||||
}
|
||||
if (!$_SESSION['logout']) {
|
||||
if (is_null($username)) {
|
||||
$user = $this->auth->getUser() ?: $this->userTable->findBy('username', $request->getAttribute('user'));
|
||||
if (is_null($user)) {
|
||||
$user = $this->auth->getUser();
|
||||
} else {
|
||||
$user = $this->userTable->findBy('username', $user);
|
||||
}
|
||||
} else {
|
||||
$user = $this->auth->getUser() ?: $this->userTable->findBy('username', $username);
|
||||
}
|
||||
}
|
||||
if (is_null($user) or $_SESSION['logout']) {
|
||||
if (is_null($user) or $_SESSION['logout'] or $_SESSION['connecte'] == '---') {
|
||||
(new FlashService($this->session))->error('Vous devez vous connecter pour accéder à cette page');
|
||||
return new RedirectResponse($this->router->generateUri('auth.login'));
|
||||
}
|
||||
|
|
|
@ -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')
|
||||
->select('a.id, r.name as regionName, a.name as antenneName, r.slug as regionSlug, a.slug as antenneSlug')
|
||||
->order('r.name, a.name ASC');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,6 @@ class ProductIndexAction
|
|||
$gmarchePrefix = $this->container->get('gmarche.prefix');
|
||||
$antenne_slug = $request->getAttribute('slug');
|
||||
$region_slug = $request->getAttribute('region');
|
||||
//$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
$requete = $this->antenneTable->findBy('slug', $antenne_slug);
|
||||
$antenne_name = $requete->name;
|
||||
$antenne_id = $requete->id;
|
||||
|
|
Loading…
Reference in New Issue