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,21 +2,28 @@
|
|||||||
<component :is="component" class="chill-entity entity-address my-3">
|
<component :is="component" class="chill-entity entity-address my-3">
|
||||||
|
|
||||||
<component :is="component" class="address" :class="multiline">
|
<component :is="component" class="address" :class="multiline">
|
||||||
<p v-if="address.text"
|
<div v-if="isMultiline === true">
|
||||||
class="street">
|
<p v-for="(l, i) in address.lines" :key="`line-${i}`">
|
||||||
{{ address.text }},
|
{{ l }}
|
||||||
</p>
|
</p>
|
||||||
<p v-if="address.postcode"
|
</div>
|
||||||
class="postcode">
|
<div v-else>
|
||||||
{{ address.postcode.code }} {{ address.postcode.name }}
|
<p v-if="address.text"
|
||||||
</p>
|
class="street">
|
||||||
<p v-if="address.country"
|
{{ address.text }}
|
||||||
class="country">
|
</p>
|
||||||
{{ address.country.name.fr }}
|
<p v-if="address.postcode"
|
||||||
</p>
|
class="postcode">
|
||||||
|
{{ address.postcode.code }} {{ address.postcode.name }}
|
||||||
|
</p>
|
||||||
|
<p v-if="address.country"
|
||||||
|
class="country">
|
||||||
|
{{ address.country.name.fr }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</component>
|
</component>
|
||||||
|
|
||||||
<div v-if="isMultiline === true" class="address-more">
|
<!-- <div v-if="isMultiline === true" class="address-more">
|
||||||
<div v-if="address.floor">
|
<div v-if="address.floor">
|
||||||
<span class="floor">
|
<span class="floor">
|
||||||
<b>{{ $t('floor') }}</b>: {{ address.floor }}
|
<b>{{ $t('floor') }}</b>: {{ address.floor }}
|
||||||
@ -52,7 +59,7 @@
|
|||||||
<b>{{ $t('distribution') }}</b>: {{ address.distribution }}
|
<b>{{ $t('distribution') }}</b>: {{ address.distribution }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div v-if="useDatePane === true" class="address-more">
|
<div v-if="useDatePane === true" class="address-more">
|
||||||
<div v-if="address.validFrom">
|
<div v-if="address.validFrom">
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
{% macro raw(lines) %}
|
{% macro raw(lines) %}
|
||||||
{% for l in lines %}
|
{% for l in lines %}
|
||||||
<div>{{ l }}</div>
|
<p>{{ l }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
@ -61,19 +61,10 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw
|
|||||||
public function normalize($address, $format = null, array $context = [])
|
public function normalize($address, $format = null, array $context = [])
|
||||||
{
|
{
|
||||||
if ($address instanceof Address) {
|
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 = [
|
$data = [
|
||||||
'address_id' => $address->getId(),
|
'address_id' => $address->getId(),
|
||||||
'text' => $this->addressRender->renderString($address, []),
|
'text' => $address->isNoAddress() ? null : $this->addressRender->renderStreetLine($address, []),
|
||||||
'street' => $address->getStreet(),
|
'street' => $address->getStreet(),
|
||||||
'streetNumber' => $address->getStreetNumber(),
|
'streetNumber' => $address->getStreetNumber(),
|
||||||
'postcode' => [
|
'postcode' => [
|
||||||
|
@ -50,7 +50,7 @@ class AddressRender implements ChillEntityRenderInterface
|
|||||||
return $this->templating
|
return $this->templating
|
||||||
->render('@ChillMain/Entity/address.html.twig', [
|
->render('@ChillMain/Entity/address.html.twig', [
|
||||||
'address' => $addr,
|
'address' => $addr,
|
||||||
'streetLine' => $this->renderStreetLine($addr), // TODO inutile?
|
'streetLine' => $this->renderStreetLine($addr),
|
||||||
'render' => $options['render'] ?? 'bloc',
|
'render' => $options['render'] ?? 'bloc',
|
||||||
'options' => $options,
|
'options' => $options,
|
||||||
'lines' => $this->renderLines($addr),
|
'lines' => $this->renderLines($addr),
|
||||||
@ -73,7 +73,7 @@ class AddressRender implements ChillEntityRenderInterface
|
|||||||
$lines[] = $this->renderStreetLine($addr);
|
$lines[] = $this->renderStreetLine($addr);
|
||||||
$lines[] = $this->renderDeliveryLine($addr);
|
$lines[] = $this->renderDeliveryLine($addr);
|
||||||
$lines[] = $this->renderCityLine($addr);
|
$lines[] = $this->renderCityLine($addr);
|
||||||
$lines[] = $this->renderCountryLine($addr); // TODO only if != available country
|
$lines[] = $this->renderCountryLine($addr);
|
||||||
} else {
|
} else {
|
||||||
$lines[] = $this->renderBuildingLine($addr);
|
$lines[] = $this->renderBuildingLine($addr);
|
||||||
$lines[] = $this->renderDeliveryLine($addr);
|
$lines[] = $this->renderDeliveryLine($addr);
|
||||||
@ -99,6 +99,35 @@ class AddressRender implements ChillEntityRenderInterface
|
|||||||
return $entity instanceof Address;
|
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
|
private function renderBuildingLine($addr): ?string
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -188,32 +217,4 @@ class AddressRender implements ChillEntityRenderInterface
|
|||||||
return $res;
|
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