fix différents types d'events
This commit is contained in:
parent
3ec22cbe3b
commit
0a7a527e68
1 changed files with 165 additions and 12 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue