Development #88205
synchro carte / autocomplétion adresse
0%
Description
De #88168, il apparait nécessaire désormais de configurer un préremplissage "géolocalisation" sur le champ avec l'autocomplétion.
Ça n'était pas nécessaire "avant", la régression vient de l'affaire des évènements javascript, on a
1/ des champs prêts à réagir
$('div[data-geolocation]').on('change', 'input[type=text], textarea, select', function(event) {
2/ une sélection d'adresse qui amène les champs décomposés (numéro, rue, code postal, commune) à être remplis :
$input_widget.val(element_value) $input_widget.each((idx, elt) => elt.dispatchEvent(new Event('change')))
Précédemment on faisait
$input_widget.val(element_value).trigger('change');
et ça faisait que le 1/ se déclenchait, et ça amenait la synchro de la carte.
Avec la modification sur les évènements (#78997), l'évènement ne déclenche plus le 1/, et il n'y plus de synchro de la carte.
Je restaure un comportement correct en envoyant à nouveau l'évènement via jquery (et en gardant l'autre) :
--- a/wcs/qommon/static/js/qommon.geolocation.js +++ b/wcs/qommon/static/js/qommon.geolocation.js @@ -16,7 +16,7 @@ function geoloc_prefill(element_type, element_values, widget_name=null) continue; } if ($input_widget.length) { - $input_widget.val(element_value) + $input_widget.val(element_value).trigger('change') $input_widget.each((idx, elt) => elt.dispatchEvent(new Event('change'))) found = true; } else if ($text_widget.length) { @@ -204,7 +204,7 @@ $(function() { if ($form.length == 0) return; // probably a geolocation map in sidebar $form[0].wait_for_changes = false; if (! $map.data('address-sync')) return; - $('div[data-geolocation]').on('change', 'input[type=text], textarea, select', function(event) { + $('div[data-geolocation]').on('change', 'input[type=text], textarea, select', function(event) { if ($('.wcs-manual-address:checked').length && $(this).parents('.template-address').length == 0) { // do not sync address and map is the address is being entered manually // as it probably means the address isn't known and reverse/geocoding
mais ça ne me semble pas normal de devoir faire ça ainsi.
Révisions associées
Historique
Mis à jour par Robot Gitea il y a environ un mois
- Statut changé de Nouveau à Solution proposée
Corentin Sechet (csechet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/1274
- Titre : js: fix map and address synchronization (#88205)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/1274/files
Mis à jour par Robot Gitea il y a environ un mois
- Statut changé de Solution proposée à Solution validée
Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a environ un mois
- Statut changé de Solution validée à Résolu (à déployer)
Corentin Sechet (csechet) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/1274
- Titre : js: fix map and address synchronization (#88205)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/1274/files
Mis à jour par Transition automatique il y a environ un mois
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Emmanuel Cazenave il y a environ un mois
Est-ce que le déploiement de ce patch rend la remarque de Fred dans #88168#note-1 caduque ?
Frédéric Péters a écrit :
J'ai ajouté l'info qui manquait à la documentation : dans l’onglet « Avancé », configurer le préremplissage avec « géolocalisation » et « identifiant d’adresse ».
Mis à jour par Emmanuel Cazenave il y a environ un mois
| J'ai ajouté l'info qui manquait à la documentation : dans l’onglet « Avancé », configurer le préremplissage avec « géolocalisation » et « identifiant d’adresse ».
Reste utile pour que le champ adresse en autocomplétion soit bien raccord avec un point placé manuellement sur la carte (sinon les champs rue/numéro/etc se mettent à jour mais pas le champ en autocomplétion).
Bref tout est bien raccord comme ça je ne touche pas à la doc.
js: fix map and address synchronization (#88205)