up traffic

This commit is contained in:
Tykayn 2025-09-27 01:31:36 +02:00 committed by tykayn
parent 11cd3236c5
commit 3ec22cbe3b
4 changed files with 321 additions and 58 deletions

View file

@ -115,30 +115,85 @@
{% block scripts %}
<script>
// Event data from API - corriger le double-encodage
// Event data from API - using proper JSON serialization
window.eventData = null;
try {
// Utiliser directement les données JSON sans double-encodage
window.eventData = {{ event_data|safe }};
console.log('✅ Données événement chargées:', window.eventData);
} catch (error) {
console.error('❌ Erreur de chargement des données événement:', error);
console.error('Données brutes JSON:', '{{ event_data|safe }}');
// Afficher une erreur à l'utilisateur
document.addEventListener('DOMContentLoaded', function() {
const resultElement = document.getElementById('result');
if (resultElement) {
resultElement.innerHTML = `
<div style="color: #dc3545; padding: 15px; background: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px;">
<i class="fas fa-exclamation-triangle"></i>
<strong>Erreur de chargement:</strong> Impossible de charger les données de l'événement.
<br><small>Erreur technique: ${error.message}</small>
</div>
`;
resultElement.style.display = 'block';
}
});
try {
// Use Jinja2's tojson filter for proper JSON encoding
window.eventData = {{ event_data|tojson }};
console.log('✅ Données événement chargées via tojson:', window.eventData);
if (!window.eventData || window.eventData === null) {
throw new Error('Données d\'événement nulles depuis le template');
}
} catch (error) {
console.error('❌ Erreur de chargement des données depuis le template:', error);
// Fallback: try to fetch from API directly
const eventId = document.getElementById('eventId')?.value;
if (eventId) {
console.log('🔄 Fallback: Récupération directe depuis l\'API...');
fetch(`https://api.openeventdatabase.org/event/${eventId}`)
.then(response => {
if (!response.ok) {
throw new Error(`API returned ${response.status}: ${response.statusText}`);
}
return response.json();
})
.then(data => {
console.log('✅ Données récupérées depuis l\'API (fallback):', data);
window.eventData = data;
// Trigger form population
if (typeof populateForm === 'function') {
populateForm();
} else {
// Wait for edit.js to load
setTimeout(() => {
if (typeof populateForm === 'function') {
populateForm();
}
}, 100);
}
})
.catch(apiError => {
console.error('❌ Erreur API également:', apiError);
// Show error to user
document.addEventListener('DOMContentLoaded', function() {
const resultElement = document.getElementById('result');
if (resultElement) {
resultElement.innerHTML = `
<div style="color: #dc3545; padding: 15px; background: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px;">
<i class="fas fa-exclamation-triangle"></i>
<strong>Erreur de chargement:</strong> Impossible de charger les données de l'événement.
<br><small>Erreur template: ${error.message}</small>
<br><small>Erreur API: ${apiError.message}</small>
<br><br>
<a href="/demo" class="button">Retour à la carte</a>
</div>
`;
resultElement.style.display = 'block';
}
});
});
} else {
console.error('❌ Aucun ID d\'événement trouvé pour le fallback API');
// Show error immediately
document.addEventListener('DOMContentLoaded', function() {
const resultElement = document.getElementById('result');
if (resultElement) {
resultElement.innerHTML = `
<div style="color: #dc3545; padding: 15px; background: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px;">
<i class="fas fa-exclamation-triangle"></i>
<strong>Erreur:</strong> ID d'événement manquant et impossible de charger les données.
<br><br>
<a href="/demo" class="button">Retour à la carte</a>
</div>
`;
resultElement.style.display = 'block';
}
});
}
}
</script>
<script src="/static/edit.js"></script>