mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
address: render address lines in vue AddressRenderBox
This commit is contained in:
parent
fd40ae0198
commit
d14edd469e
@ -2,9 +2,15 @@
|
||||
<component :is="component" class="chill-entity entity-address my-3">
|
||||
|
||||
<component :is="component" class="address" :class="multiline">
|
||||
<div v-if="isMultiline === true">
|
||||
<p v-for="(l, i) in address.lines" :key="`line-${i}`">
|
||||
{{ l }}
|
||||
</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<p v-if="address.text"
|
||||
class="street">
|
||||
{{ address.text }},
|
||||
{{ address.text }}
|
||||
</p>
|
||||
<p v-if="address.postcode"
|
||||
class="postcode">
|
||||
@ -14,9 +20,10 @@
|
||||
class="country">
|
||||
{{ address.country.name.fr }}
|
||||
</p>
|
||||
</div>
|
||||
</component>
|
||||
|
||||
<div v-if="isMultiline === true" class="address-more">
|
||||
<!-- <div v-if="isMultiline === true" class="address-more">
|
||||
<div v-if="address.floor">
|
||||
<span class="floor">
|
||||
<b>{{ $t('floor') }}</b>: {{ address.floor }}
|
||||
@ -52,7 +59,7 @@
|
||||
<b>{{ $t('distribution') }}</b>: {{ address.distribution }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div v-if="useDatePane === true" class="address-more">
|
||||
<div v-if="address.validFrom">
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
{% macro raw(lines) %}
|
||||
{% for l in lines %}
|
||||
<div>{{ l }}</div>
|
||||
<p>{{ l }}</p>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
||||
|
||||
|
@ -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' => [
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user