correction bouton presences

This commit is contained in:
theShlavuk 2026-01-20 21:37:26 +01:00
parent 3c8254cb86
commit 683b160804
3 changed files with 45 additions and 2 deletions

View File

@ -165,6 +165,29 @@ export function initializeMarkPresentButton(getCurrentEventData, openCheckPresen
};
}
/**
* Initialise le bouton pour afficher le modal de gestion des présences (groupes uniquement)
* @param {Function} getCurrentEventData - Fonction pour obtenir les données de l'événement
* @param {Function} openCheckPresenceModal - Fonction pour ouvrir la modal de validation de présence de groupe
*/
export function initializeShowPresenceModalButton(getCurrentEventData, openCheckPresenceModal) {
const showPresenceModalBtn = document.getElementById('showPresenceModalBtn');
if (!showPresenceModalBtn) return;
showPresenceModalBtn.onclick = function() {
if (!checkPermission('can_edit')) return;
const currentEventData = getCurrentEventData();
if (!currentEventData) {
notifyError('Données d\'événement manquantes');
return;
}
// Ouvrir le modal de gestion des présences
openCheckPresenceModal(currentEventData);
};
}
/**
* Initialise le bouton pour marquer comme absent
* @param {Function} getCurrentEventData - Fonction pour obtenir les données de l'événement
@ -742,6 +765,7 @@ export function initializeModalButtons(options = {}) {
initializeSaveButton(getCurrentEventData, getCurrentMode, disableDateSynchronization);
initializeDeleteButton(getCurrentEventData, onDeleted);
initializeMarkPresentButton(getCurrentEventData, openCheckPresenceModal, onStatusChanged);
initializeShowPresenceModalButton(getCurrentEventData, openCheckPresenceModal);
initializeMarkAbsentButton(getCurrentEventData, onStatusChanged);
initializeCancelAppointmentButton(getCurrentEventData, onStatusChanged);
initializeDebugSmsButton(getCurrentEventData);

View File

@ -302,6 +302,14 @@ export function updateModalDisplay(mode, canEdit, canDelete, eventData = null) {
if (btn.id === 'markAbsentBtn') {
btn.style.display = isGroupe ? 'none' : 'inline-block';
}
// Boutons spécifiques aux groupes (classe groupe-only-button)
else if (btn.classList.contains('groupe-only-button')) {
btn.style.display = isGroupe ? 'inline-block' : 'none';
}
// Boutons spécifiques aux individuels (classe individuel-only-button)
else if (btn.classList.contains('individuel-only-button')) {
btn.style.display = isGroupe ? 'none' : 'inline-block';
}
// Le bouton "Détail incident(s)" garde son état (géré par checkAndDisplayIncidentsButton)
else if (btn.id === 'viewIncidentsBtn') {
// Ne rien faire, l'état est géré ailleurs

View File

@ -481,8 +481,11 @@ $crvi_is_front_context = ($crvi_agenda_context !== 'admin');
<!-- Boutons de changement de statut rapide (mode édition uniquement) -->
<div id="eventStatusButtons">
<div class="btn-group" role="group">
<button type="button" class="btn btn-success btn-sm" id="markPresentBtn" title="Valider la présence">
<i class="fas fa-user-check me-1"></i>Valider présence
<button type="button" class="btn btn-success btn-sm individuel-only-button" id="markPresentBtn" title="Valider la présence" style="display: none;">
<i class="fas fa-user-check me-1"></i>Valider présences
</button>
<button type="button" class="btn btn-primary btn-sm groupe-only-button" id="showPresenceModalBtn" title="Afficher le modal de présence" style="display: none;">
<i class="fa-regular fa-id-badge me-1"></i>Gérer les présences
</button>
<button type="button" class="btn btn-warning btn-sm" id="markAbsentBtn" title="Marquer comme absent">
<i class="fas fa-user-times me-1"></i>Absent
@ -558,12 +561,20 @@ jQuery(document).ready(function($){
// Masquer le champ bénéficiaire pour les RDV de groupe
$('#id_beneficiaire').closest('.col-md-6').hide();
$('#id_beneficiaire').removeAttr('required');
// Afficher les boutons spécifiques aux groupes
$('.groupe-only-button').show();
// Masquer les boutons spécifiques aux individuels
$('.individuel-only-button').hide();
} else {
$('#groupeFields').hide();
$('#nb_participants').removeAttr('required');
// Afficher le champ bénéficiaire pour les RDV individuels
$('#id_beneficiaire').closest('.col-md-6').show();
$('#id_beneficiaire').attr('required', true);
// Masquer les boutons spécifiques aux groupes
$('.groupe-only-button').hide();
// Afficher les boutons spécifiques aux individuels
$('.individuel-only-button').show();
}
});
});