diff --git a/src/Bundle/ChillMainBundle/Controller/AddressReferenceController.php b/src/Bundle/ChillMainBundle/Controller/AddressController.php similarity index 52% rename from src/Bundle/ChillMainBundle/Controller/AddressReferenceController.php rename to src/Bundle/ChillMainBundle/Controller/AddressController.php index f505de235..1aeb39062 100644 --- a/src/Bundle/ChillMainBundle/Controller/AddressReferenceController.php +++ b/src/Bundle/ChillMainBundle/Controller/AddressController.php @@ -7,17 +7,39 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Exception\BadRequestException; use Symfony\Component\Routing\Annotation\Route; +use Chill\MainBundle\Entity\Address; use Chill\MainBundle\Entity\AddressReference; - /** - * Class AccompanyingCourseController + * Class AddressController * - * @package Chill\PersonBundle\Controller + * @package Chill\MainBundle\Controller */ -class AddressReferenceController extends AbstractController +class AddressController extends AbstractController { + + /** + * Get API Data for showing endpoint + * + * @Route( + * "/{_locale}/main/api/1.0/address/{address_id}/show.{_format}", + * name="chill_main_address_api_show" + * ) + * @ParamConverter("address", options={"id": "address_id"}) + */ + public function showAddress(Address $address, $_format): Response + { + // TODO check ACL ? + switch ($_format) { + case 'json': + return $this->json($address); + default: + throw new BadRequestException('Unsupported format'); + } + } + + /** * Get API Data for showing endpoint * @@ -27,17 +49,9 @@ class AddressReferenceController extends AbstractController * ) * @ParamConverter("addressReference", options={"id": "address_reference_id"}) */ - public function showAPI(AddressReference $addressReference, $_format): Response + public function showAddressReference(AddressReference $addressReference, $_format): Response { - // TODO check ACL on AccompanyingPeriod - - $this->dispatcher->dispatch( - AccompanyingPeriodPrivacyEvent::ACCOMPANYING_PERIOD_PRIVACY_EVENT, - new AccompanyingPeriodPrivacyEvent($addressReference, [ - 'action' => 'showApi' - ]) - ); - + // TODO check ACL ? switch ($_format) { case 'json': return $this->json($addressReference); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/App.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/App.vue new file mode 100644 index 000000000..924747c4e --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/App.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/AccompanyingCourse.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/AccompanyingCourse.vue new file mode 100644 index 000000000..d08798c00 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/AccompanyingCourse.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/PersonItem.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/PersonItem.vue new file mode 100644 index 000000000..f75f0779b --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/PersonItem.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/PersonsAssociated.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/PersonsAssociated.vue new file mode 100644 index 000000000..f4ccf6964 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/PersonsAssociated.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/Requestor.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/Requestor.vue new file mode 100644 index 000000000..75a95e241 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/components/Requestor.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/index.js b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/index.js new file mode 100644 index 000000000..b524398f7 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/index.js @@ -0,0 +1,8 @@ +import App from './App.vue'; +import { createApp } from 'vue'; + +const app = createApp({ + template: `` +}) +.component('app', App) +.mount('#address'); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/Address/store/.keep b/src/Bundle/ChillPersonBundle/Resources/public/js/Address/store/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig index 9e91e486c..1e39cf705 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig @@ -23,9 +23,9 @@ {% block title %}{{ 'Addresses\'history for %name%'|trans({ '%name%': person.firstName ~ ' ' ~ person.lastName } ) }}{% endblock %} {% block personcontent %} - +

{{ 'Addresses\'history for %name%'|trans({ '%name%': person.firstName ~ ' ' ~ person.lastName } ) }}

- + @@ -48,11 +48,11 @@ {% for address in person.addresses %} - + - + + + +
+ + {{ encore_entry_script_tags('address') }} + + + {% endfor %} {% endif %}
{{ 'Since %date%'|trans( { '%date%' : address.validFrom|format_date('long') } ) }} {{ address_macros._render(address, { 'with_valid_from' : false, 'has_no_address': true } ) }}
  • @@ -61,11 +61,26 @@
- + + + + + + - -{% endblock personcontent %} \ No newline at end of file + +{% endblock personcontent %} diff --git a/src/Bundle/ChillPersonBundle/chill.webpack.config.js b/src/Bundle/ChillPersonBundle/chill.webpack.config.js index 9d7a33d02..8e2c60ef2 100644 --- a/src/Bundle/ChillPersonBundle/chill.webpack.config.js +++ b/src/Bundle/ChillPersonBundle/chill.webpack.config.js @@ -7,6 +7,8 @@ module.exports = function(encore, entries) encore.addAliases({ ChillPersonAssets: __dirname + '/Resources/public' }); - + encore.addEntry('accompanying_course', __dirname + '/Resources/public/js/AccompanyingCourse/index.js'); + encore.addEntry('address', __dirname + '/Resources/public/js/Address/index.js'); + };