fix différents types d'events

This commit is contained in:
Tykayn 2025-09-27 01:34:26 +02:00 committed by tykayn
parent 3ec22cbe3b
commit 0a7a527e68

View file

@ -608,60 +608,213 @@ function validateForm() {
function fillForm(issueType) {
currentIssueType = issueType;
console.log('🎯 Remplissage formulaire pour type:', issueType);
// Get the form elements
const whatInput = document.getElementById('what');
const labelInput = document.getElementById('label');
const descriptionInput = document.getElementById('description');
const typeSelect = document.getElementById('type');
if (!whatInput || !labelInput || !descriptionInput) {
console.error('❌ Éléments de formulaire non trouvés');
return;
}
// Set default values based on the issue type
switch (issueType) {
// === ROAD TAB ===
case 'pothole':
whatInput.value = 'road.hazard.pothole';
whatInput.value = 'traffic.obstacle';
labelInput.value = 'Nid de poule';
descriptionInput.value = 'Nid de poule sur la chaussée';
typeSelect.value = 'unscheduled';
break;
case 'obstacle':
whatInput.value = 'road.hazard.obstacle';
whatInput.value = 'traffic.obstacle';
labelInput.value = 'Obstacle sur la route';
descriptionInput.value = 'Obstacle sur la chaussée';
typeSelect.value = 'unscheduled';
break;
case 'vehicle':
whatInput.value = 'road.hazard.vehicle';
labelInput.value = 'Véhicule sur le bas côté';
whatInput.value = 'traffic.obstacle';
labelInput.value = 'Véhicule en panne';
descriptionInput.value = 'Véhicule arrêté sur le bas côté de la route';
typeSelect.value = 'unscheduled';
break;
case 'danger':
whatInput.value = 'road.hazard.danger';
whatInput.value = 'traffic.incident';
labelInput.value = 'Danger sur la route';
descriptionInput.value = 'Situation dangereuse sur la route';
typeSelect.value = 'unscheduled';
break;
case 'accident':
whatInput.value = 'road.accident';
whatInput.value = 'traffic.accident';
labelInput.value = 'Accident de la route';
descriptionInput.value = 'Accident de la circulation';
typeSelect.value = 'unscheduled';
break;
case 'flooded_road':
whatInput.value = 'road.hazard.flood';
whatInput.value = 'traffic.obstacle';
labelInput.value = 'Route inondée';
descriptionInput.value = 'Route inondée, circulation difficile';
descriptionInput.value = 'Route inondée, circulation difficile ou impossible';
typeSelect.value = 'unscheduled';
break;
case 'roadwork':
whatInput.value = 'road.works';
whatInput.value = 'traffic.roadwork';
labelInput.value = 'Travaux routiers';
descriptionInput.value = 'Travaux en cours sur la chaussée';
typeSelect.value = 'scheduled';
break;
case 'traffic_jam':
whatInput.value = 'road.traffic.jam';
whatInput.value = 'traffic.partially_closed';
labelInput.value = 'Embouteillage';
descriptionInput.value = 'Circulation dense, embouteillage';
typeSelect.value = 'unscheduled';
break;
// Add more cases for other issue types
// === RAIL TAB ===
case 'rail_delay':
whatInput.value = 'transport.rail.delay';
labelInput.value = 'Retard de train';
descriptionInput.value = 'Retard important sur la ligne ferroviaire';
typeSelect.value = 'unscheduled';
break;
case 'rail_cancellation':
whatInput.value = 'transport.rail.cancellation';
labelInput.value = 'Train annulé';
descriptionInput.value = 'Annulation de service ferroviaire';
typeSelect.value = 'unscheduled';
break;
case 'rail_works':
whatInput.value = 'transport.rail.works';
labelInput.value = 'Travaux ferroviaires';
descriptionInput.value = 'Travaux de maintenance sur la voie ferrée';
typeSelect.value = 'scheduled';
break;
case 'rail_incident':
whatInput.value = 'transport.rail.incident';
labelInput.value = 'Incident ferroviaire';
descriptionInput.value = 'Incident technique sur la ligne';
typeSelect.value = 'unscheduled';
break;
// === WEATHER TAB ===
case 'weather_storm':
whatInput.value = 'weather.storm';
labelInput.value = 'Orage';
descriptionInput.value = 'Conditions météorologiques orageuses';
typeSelect.value = 'forecast';
break;
case 'weather_flood':
whatInput.value = 'weather.flood';
labelInput.value = 'Inondation';
descriptionInput.value = 'Inondation affectant la circulation';
typeSelect.value = 'unscheduled';
break;
case 'weather_snow':
whatInput.value = 'weather.snow';
labelInput.value = 'Chutes de neige';
descriptionInput.value = 'Conditions de neige affectant la circulation';
typeSelect.value = 'forecast';
break;
case 'weather_fog':
whatInput.value = 'weather.fog';
labelInput.value = 'Brouillard dense';
descriptionInput.value = 'Brouillard réduisant la visibilité';
typeSelect.value = 'forecast';
break;
case 'weather_heat':
whatInput.value = 'weather.heat';
labelInput.value = 'Canicule';
descriptionInput.value = 'Températures extrêmes, risques de déformation de chaussée';
typeSelect.value = 'forecast';
break;
// === EMERGENCY TAB ===
case 'emergency_fire':
whatInput.value = 'emergency.fire';
labelInput.value = 'Incendie';
descriptionInput.value = 'Incendie nécessitant une intervention des secours';
typeSelect.value = 'unscheduled';
break;
case 'emergency_medical':
whatInput.value = 'emergency.medical';
labelInput.value = 'Urgence médicale';
descriptionInput.value = 'Intervention médicale d\'urgence';
typeSelect.value = 'unscheduled';
break;
case 'emergency_police':
whatInput.value = 'emergency.police';
labelInput.value = 'Intervention police';
descriptionInput.value = 'Intervention des forces de l\'ordre';
typeSelect.value = 'unscheduled';
break;
case 'emergency_evacuation':
whatInput.value = 'emergency.evacuation';
labelInput.value = 'Évacuation';
descriptionInput.value = 'Évacuation de zone pour raisons de sécurité';
typeSelect.value = 'unscheduled';
break;
// === CIVIC TAB ===
case 'civic_bike_lane':
whatInput.value = 'civic.infrastructure.bike';
labelInput.value = 'Problème piste cyclable';
descriptionInput.value = 'Dégradation ou obstacle sur piste cyclable';
typeSelect.value = 'unscheduled';
break;
case 'civic_sidewalk':
whatInput.value = 'civic.infrastructure.pedestrian';
labelInput.value = 'Problème trottoir';
descriptionInput.value = 'Dégradation ou obstacle sur trottoir';
typeSelect.value = 'unscheduled';
break;
case 'civic_lighting':
whatInput.value = 'civic.infrastructure.lighting';
labelInput.value = 'Éclairage défectueux';
descriptionInput.value = 'Éclairage public en panne ou défaillant';
typeSelect.value = 'unscheduled';
break;
case 'civic_garbage':
whatInput.value = 'civic.sanitation.garbage';
labelInput.value = 'Problème de déchets';
descriptionInput.value = 'Déchets non collectés ou dépôt sauvage';
typeSelect.value = 'unscheduled';
break;
// === DEFAULT CASE ===
default:
console.warn('⚠️ Type d\'événement non reconnu:', issueType);
whatInput.value = 'traffic.incident';
labelInput.value = 'Incident de circulation';
descriptionInput.value = 'Incident affectant la circulation';
typeSelect.value = 'unscheduled';
}
console.log('✅ Formulaire rempli:', {
what: whatInput.value,
label: labelInput.value,
type: typeSelect.value
});
// Trigger validation after form is filled
validateForm();
// Scroll to the form
const formElement = document.getElementById('trafficForm');
const formElement = document.getElementById('reportForm');
if (formElement) {
formElement.scrollIntoView({behavior: 'smooth'});
// Focus on first empty field or description for additional details
setTimeout(() => {
const descTextarea = document.getElementById('description');
if (descTextarea) {
descTextarea.focus();
// Position cursor at end of existing text
descTextarea.setSelectionRange(descTextarea.value.length, descTextarea.value.length);
}
}, 500);
}
}