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->post('/profil-user', [LoggedInMiddleware::class, AccountUserEditAction::class]);
|
||||||
$router->get('/antenne/create', [LoggedInMiddleware::class, AntenneCrudAction::class], 'antenne.create');
|
$router->get('/antenne/create', [LoggedInMiddleware::class, AntenneCrudAction::class], 'antenne.create');
|
||||||
$router->get('/antenne/edit', [LoggedInMiddleware::class, AntenneEditAction::class], 'antenne.edit');
|
$router->get('/antenne/edit', [LoggedInMiddleware::class, AntenneEditAction::class], 'antenne.edit');
|
||||||
|
$router->post('/antenne/edit', [LoggedInMiddleware::class, AntenneEditAction::class]);
|
||||||
if ($renderer instanceof TwigRenderer) {
|
if ($renderer instanceof TwigRenderer) {
|
||||||
$renderer->getTwig()->addExtension($adminTwigExtension);
|
$renderer->getTwig()->addExtension($adminTwigExtension);
|
||||||
// $renderer->getTwig()->addExtension($variableExtension);
|
// $renderer->getTwig()->addExtension($variableExtension);
|
||||||
|
|
|
@ -8,6 +8,8 @@ use App\Gmarche\Table\AntenneTable;
|
||||||
use App\Gmarche\Table\RegionTable;
|
use App\Gmarche\Table\RegionTable;
|
||||||
use Framework\Actions\RouterAwareAction;
|
use Framework\Actions\RouterAwareAction;
|
||||||
use Framework\Renderer\RendererInterface;
|
use Framework\Renderer\RendererInterface;
|
||||||
|
use Framework\Response\RedirectResponse;
|
||||||
|
use Framework\Validator;
|
||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
|
||||||
|
@ -61,6 +63,27 @@ class AntenneEditAction
|
||||||
//$region = $this->regionTable->findBy('slug', $slug);
|
//$region = $this->regionTable->findBy('slug', $slug);
|
||||||
$sess = $_SESSION;
|
$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'));
|
return $this->renderer->render('@antenne/edit', compact('sess','page', 'listeRegions', 'listeAntennes'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,75 +30,95 @@
|
||||||
</script>
|
</script>
|
||||||
<div class="container_main">
|
<div class="container_main">
|
||||||
<div id="la_page">
|
<div id="la_page">
|
||||||
<span style="color:white;font-size:1.4rem;">
|
<span style="color:white;font-size:1.4rem;">
|
||||||
MODIFICATION D'UNE ANTENNE
|
MODIFICATION D'UNE ANTENNE
|
||||||
</span>
|
</span>
|
||||||
<div class="container" style="padding:3rem; width:55rem;border:1px solid blue;margin:auto;">
|
<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;">
|
<!--{ path('antenne.edit', { id: item.id, region: explodeUrl()[2]}) }}-->
|
||||||
<span style="margin-left:1rem;">ANTENNE</span>
|
<form action="" method="post">
|
||||||
<select id="antenne" class="form-control">
|
<!--{ csrf_input }}-->
|
||||||
<option class="list-group-item list-group-item-action" value="0">
|
<div class="row" style="color:white;">
|
||||||
Sélectionnez l'antenne
|
<div class="col-md-4" style="max-width: 15rem;">
|
||||||
</option>
|
<span style="margin-left:1rem;">ANTENNE</span>
|
||||||
{% for item in listeAntennes %}
|
<select id="antenne_select" name="antenne" class="form-control">
|
||||||
<option class="list-group-item list-group-item-action" value="{{ item.regionName }}">
|
<option class="list-group-item list-group-item-action" value="0">
|
||||||
{{ item.antenneName }}
|
Sélectionnez l'antenne
|
||||||
</option>
|
</option>
|
||||||
{% endfor %}
|
{% for item in listeAntennes %}
|
||||||
</select>
|
<option class="list-group-item list-group-item-action" value="{{ item.id }}">
|
||||||
</div>
|
{{ item.antenneName }}
|
||||||
<div style="width:14rem;color:white;float:right;text-align:left;">
|
</option>
|
||||||
<span style="margin-left:1rem;">REGION</span>
|
|
||||||
<select id="region" class="form-control">
|
{% endfor %}
|
||||||
<option class="list-group-item list-group-item-action" value="0"></option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div style="clear:both;">
|
{% set j=0 %}
|
||||||
<form>
|
{% for item in listeAntennes %}
|
||||||
<!--{ csrf_input }}-->
|
{% set j=j+1 %}
|
||||||
<div class="row" style="color:white;">
|
{% set name = 'region_name'~j %}
|
||||||
<div class="col-md-12">
|
<span style="width:0;height:0;">{{ field(name,item.regionName,"", {type:'hidden'}) }}</span>
|
||||||
{{ field('contenu', item.content, "Annonce de présentation du G-marché", {type: 'textarea'}) }}
|
{% endfor %}
|
||||||
</div>
|
<div class="col-md-4" style="min-width:15rem;">
|
||||||
</div>
|
<div style="float:left; text-align:left;margin-left:2rem;margin-bottom: 1rem;">
|
||||||
<div class="row" style="color:white;">
|
<span style="margin-left:1rem;">REGION</span>
|
||||||
<div class="col-md-6">
|
<select id="region" name="region" class="form-control">
|
||||||
{{ field('datepicker', item.gmarcheAt, "Date prochain G-marché", {class: 'datepicker'}) }}
|
<option class="list-group-item list-group-item-action" value="0"></option>
|
||||||
</div>
|
</select>
|
||||||
<div class="col-md-6">
|
</div>
|
||||||
{{ field('name', item.name, "Nom du produit") }}
|
</div>
|
||||||
</div>
|
<div class="col-md-3">
|
||||||
</div>
|
<div style="margin-top:-0.4rem;float:left;" style="min-width: 13rem;">
|
||||||
<button class="btn btn-primary" type="submit">Enregistrer</button>
|
{{ field('datepicker', item.gmarcheAt, "Prochain G-marché", {class: 'datepicker'}) }}
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<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()) {
|
if (document.getElementById("region").hasChildNodes()) {
|
||||||
var child = document.getElementById("region");
|
var child = document.getElementById("region");
|
||||||
while (child.hasChildNodes()) {
|
while (child.hasChildNodes()) {
|
||||||
child.removeChild(child.firstChild);
|
child.removeChild(child.firstChild);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var x = document.querySelector("#antenne").selectedIndex,
|
/* if (document.querySelector("#antenne_select").options[0].text=="Sélectionnez l'antenne") {
|
||||||
y = document.querySelector("#antenne").options,
|
// document.querySelector("#antenne_select").removeChild( document.querySelector("#antenne_select").firstChild);
|
||||||
select = document.getElementById('region');
|
// var diff = 1;
|
||||||
if (document.querySelector("#antenne").options[0].text=="Sélectionnez l'antenne") {
|
} else {
|
||||||
document.querySelector("#antenne").removeChild( document.querySelector("#antenne").firstChild);
|
// 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 */
|
/* On supprime la valeur en double avec cleanArray */
|
||||||
var min = 0,
|
var tableau = new Array("Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne",
|
||||||
tableau = cleanArray(new Array(y[x].value, "Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne",
|
|
||||||
"Centre-Val de Loire", "Corse", "Grand Est", "Hauts-de-France", "Ile-de-France", "Normandie",
|
"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"));
|
"Nouvelle-Aquitaine", "Occitanie", "Pays de la Loire", "Provence-Alpes-Côte d'Azur");
|
||||||
for (var i = min; i<tableau.length; i++){
|
for (var i = 0; i<tableau.length; i++){
|
||||||
opt = document.createElement('option')
|
opt = document.createElement('option')
|
||||||
opt.value = tableau[i]
|
opt.value = tableau[i]
|
||||||
opt.innerHTML = tableau[i]
|
opt.innerHTML = tableau[i]
|
||||||
if (i == min) {
|
if (region_nom == tableau[i]) {
|
||||||
opt.selected = "selected"
|
opt.selected = "selected"
|
||||||
}
|
}
|
||||||
select.appendChild(opt)
|
select.appendChild(opt)
|
||||||
|
@ -107,9 +127,8 @@
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
document.getElementById("region").addEventListener("click", function() {
|
document.getElementById("region").addEventListener("click", function() {
|
||||||
<!-- % for item2 in listeRegions %}-->
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
//
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -26,7 +26,7 @@ class AntenneTable extends Table
|
||||||
$region = new RegionTable($this->pdo);
|
$region = new RegionTable($this->pdo);
|
||||||
return $this->makeQuery()
|
return $this->makeQuery()
|
||||||
->join($region->getTable() . ' as r', 'a.region_id = r.id')
|
->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');
|
->order('r.name, a.name ASC');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue