simplification présentation

FossilOrigin-Name: 7a7f325fb3557295b7c06f70c4e493155a76e7021000f49c2416470ac46312b6
This commit is contained in:
engel 2022-04-25 06:53:47 +00:00
parent 6533f9d1b4
commit 4b4cd91110
3 changed files with 31 additions and 28 deletions

View File

@ -71,25 +71,26 @@ $tpl->register_function('afficher_debut_personne', function ($params)
$personne = $_SESSION['membresDonateurs'][$idUser]; $personne = $_SESSION['membresDonateurs'][$idUser];
$out = '<details class="personne" open="open"> $out = '<details class="personne" open="open">
<summary class="personne">'; <summary class="personne">
$out .= sprintf('<h4 class="personne">Versements de %s : <span class="total" id="total_%s">0,00 €</span></h4>', <h4 class="personne">';
$personne->nomPrenom,
$idVersement);
$out .= '</summary>';
$out .= sprintf(' $out .= sprintf('
<fieldset class="versements" id="versements_%s">', <input type="checkbox" id="check_%s"',
$idVersement);
$out .= sprintf('
<input type="checkbox" id="check_%s"',
$idVersement); $idVersement);
$out .= sprintf(' onclick="cocherDecocherPersonne(check_%s, total_%s)" />', $out .= sprintf(' onclick="cocherDecocherPersonne(check_%s, total_%s)" />',
$idVersement, $idVersement,
$idVersement); $idVersement);
$out .= sprintf(' $out .= sprintf('
<label for="check_%s">Cliquer pour cocher toutes les lignes</label>', <label for="check_%s"></label>',
$idVersement); $idVersement);
$out .= '<br /> $out .= sprintf('%s : <span class="total" id="total_%s">0,00 €</span>',
<hr>'; $personne->nomPrenom,
$idVersement);
$out .= '</h4></summary>';
$out .= sprintf('
<fieldset class="versements" id="versements_%s">',
$idVersement);
// $out .= '<br />
// <hr>';
return $out; return $out;
}); });

View File

@ -1,3 +1,5 @@
"use strict";
/** /**
* Fonction appelée quand on ()coche la case de sélection globale * Fonction appelée quand on ()coche la case de sélection globale
* ()sélectionner toutes les cases à cocher de toutes les activités * ()sélectionner toutes les cases à cocher de toutes les activités
@ -19,7 +21,7 @@ function cocherDecocherTout(idCaseGlobale)
/** /**
* idem dans le cas des versements des personnes * idem dans le cas des versements des personnes
*/ */
function cocherDecocherToutesLesPersonnes(idCaseGlobale) function cocherDecocherToutesLesPersonnes(idCaseGlobale)
{ {
var lesPersonnes = document.querySelectorAll("h4.personne"); var lesPersonnes = document.querySelectorAll("h4.personne");
@ -34,11 +36,10 @@ function cocherDecocherLesPersonnes(idCaseGlobale, lesPersonnes)
// trouver l'élément total de la personne // trouver l'élément total de la personne
var idTotal = lesPersonnes[j].querySelector("span"); var idTotal = lesPersonnes[j].querySelector("span");
// puis la case à cocher // puis la case à cocher
var fieldset = lesPersonnes[j].closest("details").querySelector("fieldset"); var idCase = lesPersonnes[j].closest("summary").querySelector("input");
var idCase = fieldset.querySelector("input");
idCase.checked = idCaseGlobale.checked; idCase.checked = idCaseGlobale.checked;
// puis traiter toutes les cases de la personne // puis traiter toutes les cases de la personne
cocherDecocherPersonne(idCase, idTotal, false); cocherDecocherPersonne(idCase, idTotal);
} }
} }
@ -49,9 +50,8 @@ function cocherDecocherLesPersonnes(idCaseGlobale, lesPersonnes)
* *
* @param id de la case qui a été cochée * @param id de la case qui a été cochée
* @param id de l'élément afficher le total * @param id de l'élément afficher le total
* @param changer : vrai, s'il faut changer le message de la personne
*/ */
function cocherDecocherPersonne(idCase, idTotal, changer = true) function cocherDecocherPersonne(idCase, idTotal)
{ {
// chercher le fieldset des versements // chercher le fieldset des versements
var fieldset = idCase.closest("details").querySelector("fieldset"); var fieldset = idCase.closest("details").querySelector("fieldset");
@ -63,8 +63,6 @@ function cocherDecocherPersonne(idCase, idTotal, changer = true)
// calculer et afficher le total // calculer et afficher le total
var listeMontants = fieldset.querySelectorAll("span.montant"); var listeMontants = fieldset.querySelectorAll("span.montant");
calculerTotal(listeCases, listeMontants, idTotal); calculerTotal(listeCases, listeMontants, idTotal);
// changer le message
if (changer) { changerMessage(idCase.nextElementSibling, idCase); }
} }
/** /**
@ -87,17 +85,17 @@ function cocherDecocherVersement(idCase, idTotal)
* @param listes des cases * @param listes des cases
* @param listes des montants associés * @param listes des montants associés
* @param id de l'élément afficher le total * @param id de l'élément afficher le total
*/ */
function calculerTotal(listeCases, listeMontants, idTotal) function calculerTotal(listeCases, listeMontants, idTotal)
{ {
var total = 0; var total = 0;
for (var i = 1; i < listeCases.length; ++i) for (var i = 0; i < listeCases.length; ++i)
{ {
if (listeCases[i].checked) { if (listeCases[i].checked) {
total += parseFloat(listeMontants[i-1].textContent.replace(/\s/g, "")); total += parseFloat(listeMontants[i].textContent.replace(/\s/g, ""));
} }
} }
// "afficher" le total // afficher le total
idTotal.innerHTML = idTotal.innerHTML =
total.toLocaleString('fr-FR', {style: 'currency', currency: 'EUR', total.toLocaleString('fr-FR', {style: 'currency', currency: 'EUR',
minimumFractionDigits: 2}); minimumFractionDigits: 2});
@ -105,7 +103,7 @@ function calculerTotal(listeCases, listeMontants, idTotal)
/** /**
* changer le message en fonction de l'état coché de la case * changer le message en fonction de l'état coché de la case
*/ */
function changerMessage(message, idCase) function changerMessage(message, idCase)
{ {
if (idCase.checked) { if (idCase.checked) {
@ -119,7 +117,7 @@ function changerMessage(message, idCase)
* fonction appelée lors de la validation du formulaire * fonction appelée lors de la validation du formulaire
* @return vrai si au moins un choix a été fait * @return vrai si au moins un choix a été fait
* @param : formulaire * @param : formulaire
*/ */
function verifierChoix(formulaire) function verifierChoix(formulaire)
{ {
var listeCheck = formulaire.getElementsByTagName("input"); var listeCheck = formulaire.getElementsByTagName("input");

View File

@ -26,15 +26,19 @@ span.total
{ {
font-weight : bold; font-weight : bold;
} }
summary.activite { summary.activite
{
background: rgba(var(--gMainColor), 0.25); background: rgba(var(--gMainColor), 0.25);
margin-bottom : 0.5em; margin-bottom : 0.5em;
} }
summary.personne summary.personne
{ {
margin-bottom : 0.5em; margin-bottom : 0.5em;
padding-top : 0;
padding-bottom : 0;
} }
h3.personne, h4.personne { h3.personne, h4.personne
{
font-weight : normal; font-weight : normal;
background: rgba(var(--gSecondColor), 0.15); background: rgba(var(--gSecondColor), 0.15);
} }