ajout debug langue

This commit is contained in:
Jean-Philippe Staelen 2026-01-20 14:11:21 +01:00
parent f6ae2c7a59
commit 4e0f28d354
3 changed files with 118 additions and 67 deletions

View File

@ -567,12 +567,21 @@ class CRVI_Event_Controller {
$langue_term = get_term_by('slug', $langue_original, 'langue'); $langue_term = get_term_by('slug', $langue_original, 'langue');
if ($langue_term && !is_wp_error($langue_term)) { if ($langue_term && !is_wp_error($langue_term)) {
$langue_label = $langue_term->name; $langue_label = $langue_term->name;
} else {
// Debug: comprendre pourquoi on ne trouve pas le terme
error_log('CRVI Debug - Langue non trouvée: ID=' . $langue_original);
if (is_wp_error($langue_term)) {
error_log('CRVI Debug - Erreur WP: ' . $langue_term->get_error_message());
}
} }
} }
// Ajouter le label de la langue pour l'affichage dans la modal // Ajouter le label de la langue pour l'affichage dans la modal (seulement si on a trouvé le nom)
if (!empty($langue_label)) { if (!empty($langue_label)) {
$event['langue_label'] = $langue_label; $event['langue_label'] = $langue_label;
} else {
// Ne pas assigner l'ID comme fallback - laisser le champ vide
$event['langue_label'] = '';
} }
} }
@ -626,12 +635,21 @@ class CRVI_Event_Controller {
$langue_term = get_term_by('slug', $langue_original, 'langue'); $langue_term = get_term_by('slug', $langue_original, 'langue');
if ($langue_term && !is_wp_error($langue_term)) { if ($langue_term && !is_wp_error($langue_term)) {
$langue_label = $langue_term->name; $langue_label = $langue_term->name;
} else {
// Debug: comprendre pourquoi on ne trouve pas le terme
error_log('CRVI Debug get_event - Langue non trouvée: ID=' . $langue_original);
if (is_wp_error($langue_term)) {
error_log('CRVI Debug get_event - Erreur WP: ' . $langue_term->get_error_message());
}
} }
} }
// Ajouter le label de la langue pour l'affichage dans la modal // Ajouter le label de la langue pour l'affichage dans la modal (seulement si on a trouvé le nom)
if (!empty($langue_label)) { if (!empty($langue_label)) {
$event['langue_label'] = $langue_label; $event['langue_label'] = $langue_label;
} else {
// Ne pas assigner l'ID comme fallback - laisser le champ vide
$event['langue_label'] = '';
} }
} }
@ -1517,6 +1535,12 @@ class CRVI_Event_Controller {
$langue_term = get_term_by('slug', $langue_original, 'langue'); $langue_term = get_term_by('slug', $langue_original, 'langue');
if ($langue_term && !is_wp_error($langue_term)) { if ($langue_term && !is_wp_error($langue_term)) {
$langue_label = $langue_term->name; $langue_label = $langue_term->name;
} else {
// Debug: comprendre pourquoi on ne trouve pas le terme
error_log('CRVI Debug FullCalendar - Langue non trouvée: ID=' . $langue_original);
if (is_wp_error($langue_term)) {
error_log('CRVI Debug FullCalendar - Erreur WP: ' . $langue_term->get_error_message());
}
} }
} }
} }

View File

@ -133,6 +133,12 @@ function mergeEventDataWithAvailability(availabilityData, eventData) {
langueNom = eventData.langue.nom || 'Langue'; langueNom = eventData.langue.nom || 'Langue';
langueSlug = eventData.langue.slug || eventData.langue.id || langueId; langueSlug = eventData.langue.slug || eventData.langue.id || langueId;
} else { } else {
// Vérifier si langue_label existe et n'est pas égal à l'ID
if (eventData.langue_label && eventData.langue_label !== langueId) {
langueNom = eventData.langue_label;
} else if (extendedProps.langue_label && extendedProps.langue_label !== langueId) {
langueNom = extendedProps.langue_label;
}
langueSlug = langueId; langueSlug = langueId;
} }

View File

@ -121,10 +121,15 @@ async function loadEventIncidents(eventId) {
/** /**
* Ouvre la modal d'incidents en mode affichage * Ouvre la modal d'incidents en mode affichage
* Utilise la fonction générique openSubModal pour gérer la fermeture/réouverture de la modale principale
* @param {number} eventId - ID de l'événement * @param {number} eventId - ID de l'événement
*/ */
async function openIncidentsViewModal(eventId) { async function openIncidentsViewModal(eventId) {
const incidentModal = document.getElementById('declarationIncidentModal'); // Utiliser openSubModal pour gérer automatiquement la fermeture/réouverture
openSubModal(
'declarationIncidentModal',
// Callback avant ouverture : charger et afficher les incidents
async (subModal) => {
const modalTitle = document.getElementById('declarationIncidentModalLabel'); const modalTitle = document.getElementById('declarationIncidentModalLabel');
const viewSection = document.getElementById('incidentsViewSection'); const viewSection = document.getElementById('incidentsViewSection');
const formSection = document.getElementById('incidentsFormSection'); const formSection = document.getElementById('incidentsFormSection');
@ -132,12 +137,21 @@ async function openIncidentsViewModal(eventId) {
const formFooter = document.getElementById('incidentsFormFooter'); const formFooter = document.getElementById('incidentsFormFooter');
const listContainer = document.getElementById('incidentsListContainer'); const listContainer = document.getElementById('incidentsListContainer');
if (!incidentModal || !viewSection || !formSection || !listContainer) { if (!viewSection || !formSection || !listContainer) {
notifyError('Modal d\'incidents introuvable'); notifyError('Sections de la modal d\'incidents introuvables');
return; return;
} }
try { try {
// Afficher un spinner de chargement
listContainer.innerHTML = `
<div class="text-center py-4">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Chargement...</span>
</div>
</div>
`;
// Charger les incidents // Charger les incidents
const incidents = await loadEventIncidents(eventId); const incidents = await loadEventIncidents(eventId);
@ -174,27 +188,34 @@ async function openIncidentsViewModal(eventId) {
viewFooter.style.display = 'block'; viewFooter.style.display = 'block';
formFooter.style.display = 'none'; formFooter.style.display = 'none';
// Ouvrir la modal } catch (error) {
const bsModal = new bootstrap.Modal(incidentModal); console.error('Erreur lors du chargement des incidents:', error);
bsModal.show(); listContainer.innerHTML = '<p class="text-danger">Erreur lors du chargement des incidents</p>';
notifyError('Erreur lors du chargement des incidents');
}
},
// Callback après fermeture : réinitialiser au mode formulaire
(subModal) => {
const modalTitle = document.getElementById('declarationIncidentModalLabel');
const viewSection = document.getElementById('incidentsViewSection');
const formSection = document.getElementById('incidentsFormSection');
const viewFooter = document.getElementById('incidentsViewFooter');
const formFooter = document.getElementById('incidentsFormFooter');
const listContainer = document.getElementById('incidentsListContainer');
// Réinitialiser au mode formulaire quand la modal se ferme // Réinitialiser au mode formulaire
incidentModal.addEventListener('hidden.bs.modal', function resetModalMode() { if (viewSection) viewSection.style.display = 'none';
viewSection.style.display = 'none'; if (formSection) formSection.style.display = 'block';
formSection.style.display = 'block'; if (viewFooter) viewFooter.style.display = 'none';
viewFooter.style.display = 'none'; if (formFooter) formFooter.style.display = 'block';
formFooter.style.display = 'block';
if (modalTitle) { if (modalTitle) {
modalTitle.innerHTML = '<i class="fas fa-exclamation-triangle me-2"></i>Signaler un incident'; modalTitle.innerHTML = '<i class="fas fa-exclamation-triangle me-2"></i>Signaler un incident';
} }
// Retirer l'écouteur pour éviter les duplications if (listContainer) {
incidentModal.removeEventListener('hidden.bs.modal', resetModalMode); listContainer.innerHTML = '';
});
} catch (error) {
console.error('Erreur lors de l\'ouverture de la modal d\'incidents:', error);
notifyError('Erreur lors du chargement des incidents');
} }
}
);
} }
/** /**