ajout debug langue
This commit is contained in:
parent
f6ae2c7a59
commit
4e0f28d354
@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -121,80 +121,101 @@ 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
|
||||||
const modalTitle = document.getElementById('declarationIncidentModalLabel');
|
openSubModal(
|
||||||
const viewSection = document.getElementById('incidentsViewSection');
|
'declarationIncidentModal',
|
||||||
const formSection = document.getElementById('incidentsFormSection');
|
// Callback avant ouverture : charger et afficher les incidents
|
||||||
const viewFooter = document.getElementById('incidentsViewFooter');
|
async (subModal) => {
|
||||||
const formFooter = document.getElementById('incidentsFormFooter');
|
const modalTitle = document.getElementById('declarationIncidentModalLabel');
|
||||||
const listContainer = document.getElementById('incidentsListContainer');
|
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');
|
||||||
|
|
||||||
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 {
|
||||||
// Charger les incidents
|
// Afficher un spinner de chargement
|
||||||
const incidents = await loadEventIncidents(eventId);
|
listContainer.innerHTML = `
|
||||||
|
<div class="text-center py-4">
|
||||||
if (incidents.length === 0) {
|
<div class="spinner-border text-primary" role="status">
|
||||||
listContainer.innerHTML = '<p class="text-muted">Aucun incident signalé pour cet événement.</p>';
|
<span class="visually-hidden">Chargement...</span>
|
||||||
} else {
|
|
||||||
// Afficher les incidents
|
|
||||||
let html = '<div class="list-group">';
|
|
||||||
incidents.forEach((incident, index) => {
|
|
||||||
const createdAt = incident.created_at ? new Date(incident.created_at).toLocaleDateString('fr-FR') : 'Date inconnue';
|
|
||||||
html += `
|
|
||||||
<div class="list-group-item">
|
|
||||||
<div class="d-flex w-100 justify-content-between">
|
|
||||||
<h6 class="mb-1">Incident #${index + 1}</h6>
|
|
||||||
<small class="text-muted">${createdAt}</small>
|
|
||||||
</div>
|
</div>
|
||||||
${incident.resume_incident ? `<p class="mb-1"><strong>Résumé :</strong> ${incident.resume_incident}</p>` : ''}
|
|
||||||
${incident.commentaire_incident ? `<p class="mb-0 text-muted">${incident.commentaire_incident}</p>` : ''}
|
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
});
|
|
||||||
html += '</div>';
|
|
||||||
listContainer.innerHTML = html;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Changer le titre de la modal
|
// Charger les incidents
|
||||||
if (modalTitle) {
|
const incidents = await loadEventIncidents(eventId);
|
||||||
modalTitle.innerHTML = '<i class="fas fa-eye me-2"></i>Détail des incidents';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Afficher la section de vue, masquer le formulaire
|
if (incidents.length === 0) {
|
||||||
viewSection.style.display = 'block';
|
listContainer.innerHTML = '<p class="text-muted">Aucun incident signalé pour cet événement.</p>';
|
||||||
formSection.style.display = 'none';
|
} else {
|
||||||
viewFooter.style.display = 'block';
|
// Afficher les incidents
|
||||||
formFooter.style.display = 'none';
|
let html = '<div class="list-group">';
|
||||||
|
incidents.forEach((incident, index) => {
|
||||||
|
const createdAt = incident.created_at ? new Date(incident.created_at).toLocaleDateString('fr-FR') : 'Date inconnue';
|
||||||
|
html += `
|
||||||
|
<div class="list-group-item">
|
||||||
|
<div class="d-flex w-100 justify-content-between">
|
||||||
|
<h6 class="mb-1">Incident #${index + 1}</h6>
|
||||||
|
<small class="text-muted">${createdAt}</small>
|
||||||
|
</div>
|
||||||
|
${incident.resume_incident ? `<p class="mb-1"><strong>Résumé :</strong> ${incident.resume_incident}</p>` : ''}
|
||||||
|
${incident.commentaire_incident ? `<p class="mb-0 text-muted">${incident.commentaire_incident}</p>` : ''}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
});
|
||||||
|
html += '</div>';
|
||||||
|
listContainer.innerHTML = html;
|
||||||
|
}
|
||||||
|
|
||||||
// Ouvrir la modal
|
// Changer le titre de la modal
|
||||||
const bsModal = new bootstrap.Modal(incidentModal);
|
if (modalTitle) {
|
||||||
bsModal.show();
|
modalTitle.innerHTML = '<i class="fas fa-eye me-2"></i>Détail des incidents';
|
||||||
|
}
|
||||||
|
|
||||||
// Réinitialiser au mode formulaire quand la modal se ferme
|
// Afficher la section de vue, masquer le formulaire
|
||||||
incidentModal.addEventListener('hidden.bs.modal', function resetModalMode() {
|
viewSection.style.display = 'block';
|
||||||
viewSection.style.display = 'none';
|
formSection.style.display = 'none';
|
||||||
formSection.style.display = 'block';
|
viewFooter.style.display = 'block';
|
||||||
viewFooter.style.display = 'none';
|
formFooter.style.display = 'none';
|
||||||
formFooter.style.display = 'block';
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Erreur lors du chargement des incidents:', error);
|
||||||
|
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
|
||||||
|
if (viewSection) viewSection.style.display = 'none';
|
||||||
|
if (formSection) formSection.style.display = 'block';
|
||||||
|
if (viewFooter) viewFooter.style.display = 'none';
|
||||||
|
if (formFooter) 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');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user