From d14edd469e9de95f672d639a5d78a5a22168d46a Mon Sep 17 00:00:00 2001 From: nobohan Date: Thu, 6 Jan 2022 21:15:56 +0100 Subject: [PATCH] address: render address lines in vue AddressRenderBox --- .../_components/Entity/AddressRenderBox.vue | 35 ++++++----- .../Resources/views/Entity/address.html.twig | 2 +- .../Normalizer/AddressNormalizer.php | 11 +--- .../Templating/Entity/AddressRender.php | 61 ++++++++++--------- 4 files changed, 54 insertions(+), 55 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue index 475558d0c..8a069298a 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue @@ -2,21 +2,28 @@ -

- {{ address.text }}, -

-

- {{ address.postcode.code }} {{ address.postcode.name }} -

-

- {{ address.country.name.fr }} -

+
+

+ {{ l }} +

+
+
+

+ {{ address.text }} +

+

+ {{ address.postcode.code }} {{ address.postcode.name }} +

+

+ {{ address.country.name.fr }} +

+
-
+
diff --git a/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig b/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig index bce1dbaff..580844cd0 100644 --- a/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig +++ b/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig @@ -15,7 +15,7 @@ {% macro raw(lines) %} {% for l in lines %} -
{{ l }}
+

{{ l }}

{% endfor %} {% endmacro %} diff --git a/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php b/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php index e333743ff..a88a141ef 100644 --- a/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php +++ b/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php @@ -61,19 +61,10 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw public function normalize($address, $format = null, array $context = []) { if ($address instanceof Address) { - $text = $address->isNoAddress() ? '' : $address->getStreet() . ', ' . $address->getStreetNumber(); - - if (null !== $address->getPostCode()->getCountry()->getCountryCode()) { - if ($address->getPostCode()->getCountry()->getCountryCode() === 'FR') { - $text = $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet(); - } else { - $text = $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet(); - } - } $data = [ 'address_id' => $address->getId(), - 'text' => $this->addressRender->renderString($address, []), + 'text' => $address->isNoAddress() ? null : $this->addressRender->renderStreetLine($address, []), 'street' => $address->getStreet(), 'streetNumber' => $address->getStreetNumber(), 'postcode' => [ diff --git a/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php b/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php index afbe2f30d..d21b48331 100644 --- a/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php +++ b/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php @@ -50,7 +50,7 @@ class AddressRender implements ChillEntityRenderInterface return $this->templating ->render('@ChillMain/Entity/address.html.twig', [ 'address' => $addr, - 'streetLine' => $this->renderStreetLine($addr), // TODO inutile? + 'streetLine' => $this->renderStreetLine($addr), 'render' => $options['render'] ?? 'bloc', 'options' => $options, 'lines' => $this->renderLines($addr), @@ -73,7 +73,7 @@ class AddressRender implements ChillEntityRenderInterface $lines[] = $this->renderStreetLine($addr); $lines[] = $this->renderDeliveryLine($addr); $lines[] = $this->renderCityLine($addr); - $lines[] = $this->renderCountryLine($addr); // TODO only if != available country + $lines[] = $this->renderCountryLine($addr); } else { $lines[] = $this->renderBuildingLine($addr); $lines[] = $this->renderDeliveryLine($addr); @@ -99,6 +99,35 @@ class AddressRender implements ChillEntityRenderInterface return $entity instanceof Address; } + public function renderStreetLine($addr): ?string + { + if (!empty($addr->getStreet())) { + $street = $addr->getStreet(); + } else { + $street = ''; + } + + if (!empty($addr->getStreetNumber())) { + $streetNumber = $addr->getStreetNumber(); + } else { + $streetNumber = ''; + } + + $res = trim($street . ', ' . $streetNumber, ', '); + + if (null !== $addr->getPostCode()->getCountry()->getCountryCode()) { + if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') { + $res = trim($streetNumber . ', ' . $street, ', '); + } + } + + if ((',' === $res) || ('' === $res)) { + $res = null; + } + + return $res; + } + private function renderBuildingLine($addr): ?string { @@ -188,32 +217,4 @@ class AddressRender implements ChillEntityRenderInterface return $res; } - private function renderStreetLine($addr): ?string - { - if (!empty($addr->getStreet())) { - $street = $addr->getStreet(); - } else { - $street = ''; - } - - if (!empty($addr->getStreetNumber())) { - $streetNumber = $addr->getStreetNumber(); - } else { - $streetNumber = ''; - } - - $res = trim($street . ', ' . $streetNumber, ', '); - - if (null !== $addr->getPostCode()->getCountry()->getCountryCode()) { - if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') { - $res = trim($streetNumber . ', ' . $street, ', '); - } - } - - if ((',' === $res) || ('' === $res)) { - $res = null; - } - - return $res; - } }