Avancement sur Modification d'une antenne - Reglage des selects imbriques
This commit is contained in:
parent
b9d7376869
commit
600786d914
|
@ -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);
|
||||
|
|
|
@ -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'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,75 +30,95 @@
|
|||
</script>
|
||||
<div class="container_main">
|
||||
<div id="la_page">
|
||||
<span style="color:white;font-size:1.4rem;">
|
||||
<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;color:white;float:right;text-align:left;">
|
||||
<span style="margin-left:1rem;">REGION</span>
|
||||
<select id="region" class="form-control">
|
||||
<option class="list-group-item list-group-item-action" value="0"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="clear:both;">
|
||||
<form>
|
||||
<!--{ csrf_input }}-->
|
||||
<div class="row" style="color:white;">
|
||||
<div class="col-md-12">
|
||||
{{ field('contenu', item.content, "Annonce de présentation du G-marché", {type: 'textarea'}) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="color:white;">
|
||||
<div class="col-md-6">
|
||||
{{ field('datepicker', item.gmarcheAt, "Date prochain G-marché", {class: 'datepicker'}) }}
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{{ field('name', item.name, "Nom du produit") }}
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Enregistrer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
<div class="container" style="padding:3rem; width:55rem;border:1px solid blue;margin:auto;">
|
||||
<!--{ path('antenne.edit', { id: item.id, region: explodeUrl()[2]}) }}-->
|
||||
<form action="" method="post">
|
||||
<!--{ csrf_input }}-->
|
||||
<div class="row" style="color:white;">
|
||||
<div class="col-md-4" style="max-width: 15rem;">
|
||||
<span style="margin-left:1rem;">ANTENNE</span>
|
||||
<select id="antenne_select" name="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.id }}">
|
||||
{{ item.antenneName }}
|
||||
</option>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
{% set j=0 %}
|
||||
{% for item in listeAntennes %}
|
||||
{% set j=j+1 %}
|
||||
{% set name = 'region_name'~j %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.regionName,"", {type:'hidden'}) }}</span>
|
||||
{% endfor %}
|
||||
<div class="col-md-4" style="min-width:15rem;">
|
||||
<div style="float:left; text-align:left;margin-left:2rem;margin-bottom: 1rem;">
|
||||
<span style="margin-left:1rem;">REGION</span>
|
||||
<select id="region" name="region" class="form-control">
|
||||
<option class="list-group-item list-group-item-action" value="0"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div style="margin-top:-0.4rem;float:left;" style="min-width: 13rem;">
|
||||
{{ field('datepicker', item.gmarcheAt, "Prochain G-marché", {class: 'datepicker'}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both;">
|
||||
<div class="row" style="color:white;">
|
||||
<div class="col-md-12" style="margin-top:1rem;height:14rem;border:1px solid white;">
|
||||
<!--{ field('contenu', item.content, "Annonce de présentation de l'antenne", {type: 'textarea'},'',[rows]) }}-->
|
||||
<div class="form-group">
|
||||
<label for="comment">Annonce de présentation de l'antenne</label>
|
||||
<textarea class="form-control" rows="7" id="contenu"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" type="submit">Enregistrer</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.querySelector("#antenne").addEventListener("change", function() {
|
||||
document.querySelector("#antenne_select").addEventListener("change", function() {
|
||||
/* On vide si besoin la zone select */
|
||||
if (document.getElementById("region").hasChildNodes()) {
|
||||
var child = document.getElementById("region");
|
||||
while (child.hasChildNodes()) {
|
||||
child.removeChild(child.firstChild);
|
||||
}
|
||||
}
|
||||
var x = document.querySelector("#antenne").selectedIndex,
|
||||
y = document.querySelector("#antenne").options,
|
||||
select = document.getElementById('region');
|
||||
if (document.querySelector("#antenne").options[0].text=="Sélectionnez l'antenne") {
|
||||
document.querySelector("#antenne").removeChild( document.querySelector("#antenne").firstChild);
|
||||
}
|
||||
/* if (document.querySelector("#antenne_select").options[0].text=="Sélectionnez l'antenne") {
|
||||
// document.querySelector("#antenne_select").removeChild( document.querySelector("#antenne_select").firstChild);
|
||||
// var diff = 1;
|
||||
} else {
|
||||
// var diff = 0;
|
||||
}*/
|
||||
var x = document.querySelector("#antenne_select").selectedIndex,
|
||||
y = document.querySelector("#antenne_select").options,
|
||||
select = document.getElementById('region'),
|
||||
nom_zone = "region_name"+x,
|
||||
region_nom = document.getElementById(nom_zone).value;
|
||||
/* On supprime la valeur en double avec cleanArray */
|
||||
var min = 0,
|
||||
tableau = cleanArray(new Array(y[x].value, "Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne",
|
||||
var tableau = new Array("Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne",
|
||||
"Centre-Val de Loire", "Corse", "Grand Est", "Hauts-de-France", "Ile-de-France", "Normandie",
|
||||
"Nouvelle-Aquitaine", "Occitanie", "Pays de la Loire", "Provence-Alpes-Côte d'Azur"));
|
||||
for (var i = min; i<tableau.length; i++){
|
||||
"Nouvelle-Aquitaine", "Occitanie", "Pays de la Loire", "Provence-Alpes-Côte d'Azur");
|
||||
for (var i = 0; i<tableau.length; i++){
|
||||
opt = document.createElement('option')
|
||||
opt.value = tableau[i]
|
||||
opt.innerHTML = tableau[i]
|
||||
if (i == min) {
|
||||
if (region_nom == tableau[i]) {
|
||||
opt.selected = "selected"
|
||||
}
|
||||
select.appendChild(opt)
|
||||
|
@ -107,9 +127,8 @@
|
|||
</script>
|
||||
<script>
|
||||
document.getElementById("region").addEventListener("click", function() {
|
||||
<!-- % for item2 in listeRegions %}-->
|
||||
$(document).ready(function () {
|
||||
|
||||
//
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue