corrections bouton
This commit is contained in:
parent
2236e7f773
commit
f6ae2c7a59
@ -264,7 +264,7 @@ export function initializeEditButton(getCurrentEventData, getCurrentMode, setCur
|
|||||||
// Mettre à jour l'affichage
|
// Mettre à jour l'affichage
|
||||||
const userCanEdit = window.crviPermissions && window.crviPermissions.can_edit;
|
const userCanEdit = window.crviPermissions && window.crviPermissions.can_edit;
|
||||||
const userCanDelete = window.crviPermissions && window.crviPermissions.can_delete;
|
const userCanDelete = window.crviPermissions && window.crviPermissions.can_delete;
|
||||||
updateModalDisplay('edit', userCanEdit, userCanDelete);
|
updateModalDisplay('edit', userCanEdit, userCanDelete, currentEventData);
|
||||||
|
|
||||||
// Remplir le formulaire avec les données actuelles
|
// Remplir le formulaire avec les données actuelles
|
||||||
fillFormWithEvent(currentEventData);
|
fillFormWithEvent(currentEventData);
|
||||||
@ -311,7 +311,7 @@ export function initializeCancelButton(getCurrentEventData, getCurrentMode, setC
|
|||||||
|
|
||||||
const userCanEdit = window.crviPermissions && window.crviPermissions.can_edit;
|
const userCanEdit = window.crviPermissions && window.crviPermissions.can_edit;
|
||||||
const userCanDelete = window.crviPermissions && window.crviPermissions.can_delete;
|
const userCanDelete = window.crviPermissions && window.crviPermissions.can_delete;
|
||||||
updateModalDisplay('view', userCanEdit, userCanDelete);
|
updateModalDisplay('view', userCanEdit, userCanDelete, currentEventData);
|
||||||
|
|
||||||
// Réafficher les données en mode lecture
|
// Réafficher les données en mode lecture
|
||||||
fillViewBlock(currentEventData);
|
fillViewBlock(currentEventData);
|
||||||
|
|||||||
@ -222,44 +222,80 @@ export function fillViewBlock(event) {
|
|||||||
* @param {string} mode - Mode actuel ('view', 'edit', 'create')
|
* @param {string} mode - Mode actuel ('view', 'edit', 'create')
|
||||||
* @param {boolean} canEdit - Permission d'édition
|
* @param {boolean} canEdit - Permission d'édition
|
||||||
* @param {boolean} canDelete - Permission de suppression
|
* @param {boolean} canDelete - Permission de suppression
|
||||||
|
* @param {Object} eventData - Données de l'événement (optionnel)
|
||||||
*/
|
*/
|
||||||
export function updateModalDisplay(mode, canEdit, canDelete) {
|
export function updateModalDisplay(mode, canEdit, canDelete, eventData = null) {
|
||||||
const viewBlock = document.getElementById('eventViewBlock');
|
const viewBlock = document.getElementById('eventViewBlock');
|
||||||
const formBlock = document.getElementById('eventForm');
|
const formBlock = document.getElementById('eventForm');
|
||||||
|
const statusButtons = document.getElementById('eventStatusButtons');
|
||||||
|
const viewFooter = document.getElementById('eventViewFooter');
|
||||||
|
const editFooter = document.getElementById('eventEditFooter');
|
||||||
const editBtn = document.getElementById('editEventBtn');
|
const editBtn = document.getElementById('editEventBtn');
|
||||||
const deleteBtn = document.getElementById('deleteEvent');
|
const deleteBtn = document.getElementById('deleteEvent');
|
||||||
const saveBtn = document.getElementById('saveEvent');
|
const saveBtn = document.getElementById('saveEvent');
|
||||||
const cancelBtn = document.getElementById('cancelEditBtn');
|
const cancelBtn = document.getElementById('cancelEditBtn');
|
||||||
const closeViewBtn = document.getElementById('closeViewBtn');
|
const closeViewBtn = document.getElementById('closeViewBtn');
|
||||||
const markPresentBtn = document.getElementById('markPresentBtn');
|
|
||||||
const markAbsentBtn = document.getElementById('markAbsentBtn');
|
// Vérifier le statut et si l'événement est clôturé
|
||||||
const cancelAppointmentBtn = document.getElementById('cancelAppointmentBtn');
|
const statut = eventData?.statut || eventData?.extendedProps?.statut || '';
|
||||||
const reportIncidentBtn = document.getElementById('reportIncidentBtn');
|
const clotureFlag = eventData?.cloture_flag || eventData?.extendedProps?.cloture_flag;
|
||||||
|
const isEventCloture = clotureFlag === 1 || clotureFlag === '1' || clotureFlag === true;
|
||||||
|
const eventType = eventData?.type || eventData?.extendedProps?.type || '';
|
||||||
|
const isGroupe = eventType === 'groupe';
|
||||||
|
|
||||||
|
// Vérifier si les boutons de statut doivent être cachés
|
||||||
|
const shouldHideStatusButtons = statut === 'present' || statut === 'absence' || isEventCloture;
|
||||||
|
|
||||||
if (mode === 'view') {
|
if (mode === 'view') {
|
||||||
if (viewBlock) viewBlock.style.display = 'block';
|
if (viewBlock) viewBlock.style.display = 'block';
|
||||||
if (formBlock) formBlock.style.display = 'none';
|
if (formBlock) formBlock.style.display = 'none';
|
||||||
|
if (viewFooter) viewFooter.style.display = 'block';
|
||||||
|
if (editFooter) editFooter.style.display = 'none';
|
||||||
if (editBtn) editBtn.style.display = canEdit ? 'inline-block' : 'none';
|
if (editBtn) editBtn.style.display = canEdit ? 'inline-block' : 'none';
|
||||||
if (deleteBtn) deleteBtn.style.display = canDelete ? 'inline-block' : 'none';
|
if (deleteBtn) deleteBtn.style.display = 'none';
|
||||||
if (saveBtn) saveBtn.style.display = 'none';
|
if (saveBtn) saveBtn.style.display = 'none';
|
||||||
if (cancelBtn) cancelBtn.style.display = 'none';
|
if (cancelBtn) cancelBtn.style.display = 'none';
|
||||||
if (closeViewBtn) closeViewBtn.style.display = 'inline-block';
|
if (closeViewBtn) closeViewBtn.style.display = 'inline-block';
|
||||||
if (markPresentBtn) markPresentBtn.style.display = canEdit ? 'inline-block' : 'none';
|
|
||||||
if (markAbsentBtn) markAbsentBtn.style.display = canEdit ? 'inline-block' : 'none';
|
// Cacher tous les boutons de statut en mode vue
|
||||||
if (cancelAppointmentBtn) cancelAppointmentBtn.style.display = canEdit ? 'inline-block' : 'none';
|
if (statusButtons) statusButtons.style.display = 'none';
|
||||||
if (reportIncidentBtn) reportIncidentBtn.style.display = 'inline-block';
|
|
||||||
} else if (mode === 'edit' || mode === 'create') {
|
} else if (mode === 'edit' || mode === 'create') {
|
||||||
if (viewBlock) viewBlock.style.display = 'none';
|
if (viewBlock) viewBlock.style.display = 'none';
|
||||||
if (formBlock) formBlock.style.display = 'block';
|
if (formBlock) formBlock.style.display = 'block';
|
||||||
|
if (viewFooter) viewFooter.style.display = 'none';
|
||||||
|
if (editFooter) editFooter.style.display = 'block';
|
||||||
if (editBtn) editBtn.style.display = 'none';
|
if (editBtn) editBtn.style.display = 'none';
|
||||||
if (deleteBtn) deleteBtn.style.display = 'none';
|
if (deleteBtn) deleteBtn.style.display = (mode === 'edit' && canDelete) ? 'inline-block' : 'none';
|
||||||
if (saveBtn) saveBtn.style.display = 'inline-block';
|
if (saveBtn) saveBtn.style.display = 'inline-block';
|
||||||
if (cancelBtn) cancelBtn.style.display = 'inline-block';
|
if (cancelBtn) cancelBtn.style.display = 'inline-block';
|
||||||
if (closeViewBtn) closeViewBtn.style.display = 'none';
|
if (closeViewBtn) closeViewBtn.style.display = 'none';
|
||||||
if (markPresentBtn) markPresentBtn.style.display = 'none';
|
|
||||||
if (markAbsentBtn) markAbsentBtn.style.display = 'none';
|
// Afficher ou cacher les boutons de statut selon le statut de l'événement
|
||||||
if (cancelAppointmentBtn) cancelAppointmentBtn.style.display = 'none';
|
if (statusButtons) {
|
||||||
if (reportIncidentBtn) reportIncidentBtn.style.display = 'none';
|
if (mode === 'edit' && canEdit && !shouldHideStatusButtons) {
|
||||||
|
statusButtons.style.display = 'block';
|
||||||
|
|
||||||
|
// Gérer l'affichage des boutons individuels selon le type d'événement
|
||||||
|
const allButtons = statusButtons.querySelectorAll('button');
|
||||||
|
allButtons.forEach(btn => {
|
||||||
|
// Masquer "Absent" pour les événements de groupe
|
||||||
|
if (btn.id === 'markAbsentBtn') {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
// Afficher tous les autres boutons
|
||||||
|
else {
|
||||||
|
btn.style.display = 'inline-block';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
statusButtons.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -301,7 +301,7 @@ export function openModal(mode, eventData = null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Mettre à jour l'affichage
|
// Mettre à jour l'affichage
|
||||||
updateModalDisplay(currentMode, userCanEdit, userCanDelete);
|
updateModalDisplay(currentMode, userCanEdit, userCanDelete, currentEventData);
|
||||||
|
|
||||||
// Remplir les données selon le mode
|
// Remplir les données selon le mode
|
||||||
if (mode === 'view') {
|
if (mode === 'view') {
|
||||||
|
|||||||
@ -468,7 +468,7 @@ $crvi_is_front_context = ($crvi_agenda_context !== 'admin');
|
|||||||
<div id="eventFormErrors" class="alert alert-danger d-none" role="alert"></div>
|
<div id="eventFormErrors" class="alert alert-danger d-none" role="alert"></div>
|
||||||
|
|
||||||
<!-- Boutons de changement de statut rapide (mode édition uniquement) -->
|
<!-- Boutons de changement de statut rapide (mode édition uniquement) -->
|
||||||
<div id="eventStatusButtons" style="display: none;">
|
<div id="eventStatusButtons">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button type="button" class="btn btn-success btn-sm" id="markPresentBtn" title="Valider la présence">
|
<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
|
<i class="fas fa-user-check me-1"></i>Valider présence
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user