Avancement sur gestion des antennes - Formulaire de modification
parent
bd626f62e5
commit
5ebbf9d7d2
@ -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 %}
|
Loading…
Reference in New Issue