From f6e65dddbee1c17b1690a448949c0a52f6358fcb Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Thu, 2 Sep 2021 21:06:11 +0200 Subject: [PATCH] vue Address: listen to citySelector to automatically fill city name and postcode fields --- .../AddAddress/AddressSelection.vue | 18 ++++--- .../components/AddAddress/CitySelection.vue | 51 ++++++++++++++++++- .../Address/components/EditAddressPane.vue | 4 +- 3 files changed, 64 insertions(+), 9 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue index e8b856f57..6f27b5fbf 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/AddressSelection.vue @@ -119,15 +119,21 @@ export default { let decimal = []; substr.forEach((s, i) => { decimal[i] = /^\d+$/.test(s) }); if (decimal[0] === true) { - return { number: substr.shift(), - street: substr.join(' ') } + return { + number: substr.shift(), + street: substr.join(' ') + } } else if (decimal[decimal.length - 1] === true) { - return { number: substr.pop(), - street: substr.join(' ') } + return { + number: substr.pop(), + street: substr.join(' ') + } + } + return { + number: '', + street: substr.join(' ') } - return { number: '', - street: substr.join(' ') } }, addAddress() { this.entity.selected.writeNew.address = true; 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 d0e196361..5bad8ed83 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 @@ -4,6 +4,8 @@ -
+
s.trim()); + if (substr.length === 1) { + substr = city.split(' '); + } + console.log('substr', substr); + let decimal = []; + substr.forEach((s, i) => { decimal[i] = /^\d+$/.test(s) }); + if (decimal[0] === true) { + return { + code: substr.shift(), + name: substr.join(' ') + } + } + else if (decimal[decimal.length - 1] === true) { + return { + code: substr.pop(), + name: substr.join(' ') + } + } + return { + code: '', + name: substr.join(' ') + } + }, addPostcode() { this.entity.selected.writeNew.postcode = true; } diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/EditAddressPane.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/EditAddressPane.vue index 017e6fd24..7bbad3db5 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/EditAddressPane.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/EditAddressPane.vue @@ -134,7 +134,9 @@ export default { methods: { focusOnAddress() { const addressSelector = document.getElementById('addressSelector'); - addressSelector.focus(); + if (addressSelector !== null) { + addressSelector.focus(); + } }, updateMapCenter(point) { //console.log('point', point);