From 76549581e67e0bac890fcc869a40e4eb1cf8c12b Mon Sep 17 00:00:00 2001 From: nobohan Date: Wed, 27 Apr 2022 10:38:25 +0200 Subject: [PATCH 1/2] address: fix bug when editing address: update localisation and addressreferenceId + better update of the map in edition --- .../vuejs/Address/components/AddAddress.vue | 4 +++ .../components/AddAddress/AddressMap.vue | 30 +++++++++++-------- .../components/AddAddress/CitySelection.vue | 3 ++ .../Normalizer/AddressNormalizer.php | 1 + 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue index e351109a8..fcd64ed70 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue @@ -628,6 +628,10 @@ export default { newAddress = Object.assign(newAddress, { 'addressReference': this.entity.selected.address.addressReference }); + } else { + newAddress = Object.assign(newAddress, { + 'addressReference': null + }); } if (this.validFrom) { diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMap.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMap.vue index c6abd92d5..80d2ca01a 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMap.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressMap.vue @@ -8,12 +8,15 @@ import L from 'leaflet'; import markerIconPng from 'leaflet/dist/images/marker-icon.png' import 'leaflet/dist/leaflet.css'; -let map; -let marker; - export default { name: 'AddressMap', props: ['entity'], + data() { + return { + map: null, + marker: null + } + }, computed: { center() { return this.entity.selected.addressMap.center; @@ -21,30 +24,33 @@ export default { }, methods:{ init() { - map = L.map('address_map').setView([46.67059, -1.42683], 12); + this.map = L.map('address_map').setView([46.67059, -1.42683], 12); - map.scrollWheelZoom.disable(); + this.map.scrollWheelZoom.disable(); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' - }).addTo(map); + }).addTo(this.map); const markerIcon = L.icon({ iconUrl: markerIconPng, iconAnchor: [12, 41], }); - marker = L.marker([48.8589, 2.3469], {icon: markerIcon}).addTo(map); - + this.marker = L.marker([48.8589, 2.3469], {icon: markerIcon}); + this.marker.addTo(this.map); }, update() { - //console.log('update map with : ', this.address.addressMap.center) - marker.setLatLng(this.entity.addressMap.center); - map.setView(this.entity.addressMap.center, 15); + //console.log('update map with : ', this.entity.addressMap.center) + if (this.marker && this.entity.addressMap.center) { + this.marker.setLatLng(this.entity.addressMap.center); + this.map.setView(this.entity.addressMap.center, 15); + } } }, mounted(){ - this.init() + this.init(); + this.update(); } } diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue index ca5d01b50..9dd85fa73 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CitySelection.vue @@ -106,6 +106,9 @@ export default { this.$emit('getReferenceAddresses', this.value); if (this.value.center) { this.updateMapCenter(this.value.center); + if (this.value.center.coordinates) { + this.entity.selected.postcode.coordinates = this.value.center.coordinates; + } } } }, diff --git a/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php b/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php index ccb48c160..0809863f6 100644 --- a/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php +++ b/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php @@ -71,6 +71,7 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw 'id' => $address->getPostCode()->getId(), 'name' => $address->getPostCode()->getName(), 'code' => $address->getPostCode()->getCode(), + 'center' => $address->getPostcode()->getCenter(), ], 'country' => [ 'id' => $address->getPostCode()->getCountry()->getId(), From 6662e0fb5f9bfeb8fa3896bfb9bafdc25aa8d28a Mon Sep 17 00:00:00 2001 From: nobohan Date: Wed, 27 Apr 2022 10:40:11 +0200 Subject: [PATCH 2/2] upd CHANGELOG --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ea16e7fc..c517623e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to ## Unreleased +* [address] fix bug when editing address: update location and addressreferenceId + better update of the map in edition (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/593) + * [Documents] Validate storedObject and allow for null data (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/565) * [Activity form] invert 'incoming' and 'receiving' in Activity form * [Activity form] keep the same order for 'attendee' field in new and edit form @@ -36,7 +38,7 @@ and this project adheres to * [Accompanying period work evaluations] list documents associated to a work by creation date, and then by id, from the most recent to older * [Course comment] add validationConstraint NotNull and NotBlank on comment content, to avoid sql error * [Notifications] delay the sending of notificaiton to kernel.terminate -* [Notifications / Period user change] fix the sending of notification when user changes +* [Notifications / Period user change] fix the sending of notification when user changes * [Activity form] invert 'incoming' and 'receiving' in Activity form * [Activity form] keep the same order for 'attendee' field in new and edit form * [list with period] use "sameas" test operator to introduce requestor in list