simplification présentation
FossilOrigin-Name: 7a7f325fb3557295b7c06f70c4e493155a76e7021000f49c2416470ac46312b6
This commit is contained in:
parent
6533f9d1b4
commit
4b4cd91110
@ -71,25 +71,26 @@ $tpl->register_function('afficher_debut_personne', function ($params)
|
||||
|
||||
$personne = $_SESSION['membresDonateurs'][$idUser];
|
||||
$out = '<details class="personne" open="open">
|
||||
<summary class="personne">';
|
||||
$out .= sprintf('<h4 class="personne">Versements de %s : <span class="total" id="total_%s">0,00 €</span></h4>',
|
||||
$personne->nomPrenom,
|
||||
$idVersement);
|
||||
$out .= '</summary>';
|
||||
<summary class="personne">
|
||||
<h4 class="personne">';
|
||||
$out .= sprintf('
|
||||
<fieldset class="versements" id="versements_%s">',
|
||||
$idVersement);
|
||||
$out .= sprintf('
|
||||
<input type="checkbox" id="check_%s"',
|
||||
<input type="checkbox" id="check_%s"',
|
||||
$idVersement);
|
||||
$out .= sprintf(' onclick="cocherDecocherPersonne(check_%s, total_%s)" />',
|
||||
$idVersement,
|
||||
$idVersement);
|
||||
$out .= sprintf('
|
||||
<label for="check_%s">Cliquer pour cocher toutes les lignes</label>',
|
||||
<label for="check_%s"></label>',
|
||||
$idVersement);
|
||||
$out .= '<br />
|
||||
<hr>';
|
||||
$out .= sprintf('%s : <span class="total" id="total_%s">0,00 €</span>',
|
||||
$personne->nomPrenom,
|
||||
$idVersement);
|
||||
$out .= '</h4></summary>';
|
||||
$out .= sprintf('
|
||||
<fieldset class="versements" id="versements_%s">',
|
||||
$idVersement);
|
||||
// $out .= '<br />
|
||||
// <hr>';
|
||||
return $out;
|
||||
});
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Fonction appelée quand on (dé)coche la case de sélection globale
|
||||
* (dé)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
|
||||
*/
|
||||
*/
|
||||
function cocherDecocherToutesLesPersonnes(idCaseGlobale)
|
||||
{
|
||||
var lesPersonnes = document.querySelectorAll("h4.personne");
|
||||
@ -34,11 +36,10 @@ function cocherDecocherLesPersonnes(idCaseGlobale, lesPersonnes)
|
||||
// trouver l'élément total de la personne
|
||||
var idTotal = lesPersonnes[j].querySelector("span");
|
||||
// puis la case à cocher
|
||||
var fieldset = lesPersonnes[j].closest("details").querySelector("fieldset");
|
||||
var idCase = fieldset.querySelector("input");
|
||||
var idCase = lesPersonnes[j].closest("summary").querySelector("input");
|
||||
idCase.checked = idCaseGlobale.checked;
|
||||
// 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 l'élément où 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
|
||||
var fieldset = idCase.closest("details").querySelector("fieldset");
|
||||
@ -63,8 +63,6 @@ function cocherDecocherPersonne(idCase, idTotal, changer = true)
|
||||
// calculer et afficher le total
|
||||
var listeMontants = fieldset.querySelectorAll("span.montant");
|
||||
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 montants associés
|
||||
* @param id de l'élément où afficher le total
|
||||
*/
|
||||
*/
|
||||
function calculerTotal(listeCases, listeMontants, idTotal)
|
||||
{
|
||||
var total = 0;
|
||||
for (var i = 1; i < listeCases.length; ++i)
|
||||
for (var i = 0; i < listeCases.length; ++i)
|
||||
{
|
||||
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 =
|
||||
total.toLocaleString('fr-FR', {style: 'currency', currency: 'EUR',
|
||||
minimumFractionDigits: 2});
|
||||
@ -105,7 +103,7 @@ function calculerTotal(listeCases, listeMontants, idTotal)
|
||||
|
||||
/**
|
||||
* changer le message en fonction de l'état coché de la case
|
||||
*/
|
||||
*/
|
||||
function changerMessage(message, idCase)
|
||||
{
|
||||
if (idCase.checked) {
|
||||
@ -119,7 +117,7 @@ function changerMessage(message, idCase)
|
||||
* fonction appelée lors de la validation du formulaire
|
||||
* @return vrai si au moins un choix a été fait
|
||||
* @param : formulaire
|
||||
*/
|
||||
*/
|
||||
function verifierChoix(formulaire)
|
||||
{
|
||||
var listeCheck = formulaire.getElementsByTagName("input");
|
||||
|
@ -26,15 +26,19 @@ span.total
|
||||
{
|
||||
font-weight : bold;
|
||||
}
|
||||
summary.activite {
|
||||
summary.activite
|
||||
{
|
||||
background: rgba(var(--gMainColor), 0.25);
|
||||
margin-bottom : 0.5em;
|
||||
}
|
||||
summary.personne
|
||||
{
|
||||
margin-bottom : 0.5em;
|
||||
padding-top : 0;
|
||||
padding-bottom : 0;
|
||||
}
|
||||
h3.personne, h4.personne {
|
||||
h3.personne, h4.personne
|
||||
{
|
||||
font-weight : normal;
|
||||
background: rgba(var(--gSecondColor), 0.15);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user