From 919288321795f1b2d59706a419803651f89803d2 Mon Sep 17 00:00:00 2001 From: nobohan Date: Tue, 18 Jun 2024 17:31:29 +0200 Subject: [PATCH 01/26] ADDED bootstrap signature vue app --- .../Controller/DocumentPersonController.php | 19 ++++++ .../public/vuejs/DocumentSignature/App.vue | 16 +++++ .../public/vuejs/DocumentSignature/index.ts | 15 +++++ .../views/PersonDocument/signature.html.twig | 65 +++++++++++++++++++ .../chill.webpack.config.js | 1 + 5 files changed, 116 insertions(+) create mode 100644 src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue create mode 100644 src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/index.ts create mode 100644 src/Bundle/ChillDocStoreBundle/Resources/views/PersonDocument/signature.html.twig diff --git a/src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php b/src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php index ad58b6e0c..c0edbe492 100644 --- a/src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php +++ b/src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php @@ -197,4 +197,23 @@ class DocumentPersonController extends AbstractController ['document' => $document, 'person' => $person] ); } + + #[Route(path: '/{id}/signature', name: 'person_document_signature', methods: 'GET')] + public function signature(Person $person, PersonDocument $document): Response + { + $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $person); + $this->denyAccessUnlessGranted('CHILL_PERSON_DOCUMENT_SEE', $document); + + $event = new PrivacyEvent($person, [ + 'element_class' => PersonDocument::class, + 'element_id' => $document->getId(), + 'action' => 'show', + ]); + $this->eventDispatcher->dispatch($event, PrivacyEvent::PERSON_PRIVACY_EVENT); + + return $this->render( + '@ChillDocStore/PersonDocument/signature.html.twig', + ['document' => $document, 'person' => $person] + ); + } } diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue new file mode 100644 index 000000000..6dfdad330 --- /dev/null +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/App.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/index.ts b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/index.ts new file mode 100644 index 000000000..2da7d0bf3 --- /dev/null +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/DocumentSignature/index.ts @@ -0,0 +1,15 @@ +import { createApp } from "vue"; +// import { _createI18n } from "ChillMainAssets/vuejs/_js/i18n"; +// import { appMessages } from "ChillMainAssets/vuejs/HomepageWidget/js/i18n"; +//import { store } from "ChillDocStoreAssets/vuejs/DocumentSignature/store"; +import App from "./App.vue"; + +//const i18n = _createI18n(appMessages); + +const app = createApp({ + template: ``, +}) + //.use(store) + //.use(i18n) + .component("app", App) + .mount("#document-signature"); diff --git a/src/Bundle/ChillDocStoreBundle/Resources/views/PersonDocument/signature.html.twig b/src/Bundle/ChillDocStoreBundle/Resources/views/PersonDocument/signature.html.twig new file mode 100644 index 000000000..d6e8b6d73 --- /dev/null +++ b/src/Bundle/ChillDocStoreBundle/Resources/views/PersonDocument/signature.html.twig @@ -0,0 +1,65 @@ +{% extends "@ChillPerson/Person/layout.html.twig" %} + +{% set activeRouteKey = '' %} + +{% import "@ChillDocStore/Macro/macro.html.twig" as m %} +{% import "@ChillDocStore/Macro/macro_mimeicon.html.twig" as mm %} + +{% block title %}{{ 'Detail of document of %name%'|trans({ '%name%': person|chill_entity_render_string } ) }}{% endblock %} + +{% block js %} + {{ encore_entry_script_tags('mod_document_action_buttons_group') }} + + {{ encore_entry_script_tags('vue_document_signature') }} +{% endblock %} + +{% block css %} + {{ encore_entry_link_tags('mod_document_action_buttons_group') }} +{% endblock %} + +{% block content %} +

{{ 'Document %title%' | trans({ '%title%': document.title }) }}

+ + {{ mm.mimeIcon(document.object.type) }} + +
+
{{ 'Title'|trans }}
+
{{ document.title }}
+
+ +
+ +