From 9f868bff4f67b2bedfde838d8dbc6a87bba50f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 28 Nov 2021 21:24:18 +0100 Subject: [PATCH] create module for generating document in twig pages --- .../public/module/PickTemplate/index.js | 24 +++++ .../public/vuejs/_components/PickTemplate.vue | 95 +++++++++++++++++++ .../chill.webpack.config.js | 2 + .../index.html.twig | 9 ++ .../vuejs/AccompanyingCourseWorkEdit/App.vue | 15 +++ 5 files changed, 145 insertions(+) create mode 100644 src/Bundle/ChillDocGeneratorBundle/Resources/public/module/PickTemplate/index.js create mode 100644 src/Bundle/ChillDocGeneratorBundle/Resources/public/vuejs/_components/PickTemplate.vue diff --git a/src/Bundle/ChillDocGeneratorBundle/Resources/public/module/PickTemplate/index.js b/src/Bundle/ChillDocGeneratorBundle/Resources/public/module/PickTemplate/index.js new file mode 100644 index 000000000..8b450a7e1 --- /dev/null +++ b/src/Bundle/ChillDocGeneratorBundle/Resources/public/module/PickTemplate/index.js @@ -0,0 +1,24 @@ +import {createApp} from 'vue'; +import PickTemplate from 'ChillDocGeneratorAssets/vuejs/_components/PickTemplate.vue'; +import {_createI18n} from 'ChillMainAssets/vuejs/_js/i18n'; + +const i18n = _createI18n({}); + +document.querySelectorAll('div[data-docgen-template-picker]').forEach(el => { + let + picker = { + template: '', + components: { + PickTemplate, + }, + data() { + return { + entityClass: el.dataset.entityClass, + entityId: el.dataset.entityId, + } + }, + } + ; + + createApp(picker).use(i18n).mount(el); +}); diff --git a/src/Bundle/ChillDocGeneratorBundle/Resources/public/vuejs/_components/PickTemplate.vue b/src/Bundle/ChillDocGeneratorBundle/Resources/public/vuejs/_components/PickTemplate.vue new file mode 100644 index 000000000..bb8f6008a --- /dev/null +++ b/src/Bundle/ChillDocGeneratorBundle/Resources/public/vuejs/_components/PickTemplate.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/Bundle/ChillDocGeneratorBundle/chill.webpack.config.js b/src/Bundle/ChillDocGeneratorBundle/chill.webpack.config.js index d894be9b0..9017c7e08 100644 --- a/src/Bundle/ChillDocGeneratorBundle/chill.webpack.config.js +++ b/src/Bundle/ChillDocGeneratorBundle/chill.webpack.config.js @@ -3,4 +3,6 @@ module.exports = function(encore, entries) { encore.addAliases({ ChillDocGeneratorAssets: __dirname + '/Resources/public' }); + + encore.addEntry('mod_docgen_picktemplate', __dirname + '/Resources/public/module/PickTemplate/index.js'); }; diff --git a/src/Bundle/ChillDocStoreBundle/Resources/views/AccompanyingCourseDocument/index.html.twig b/src/Bundle/ChillDocStoreBundle/Resources/views/AccompanyingCourseDocument/index.html.twig index dd0c9cc62..ca6869bff 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/views/AccompanyingCourseDocument/index.html.twig +++ b/src/Bundle/ChillDocStoreBundle/Resources/views/AccompanyingCourseDocument/index.html.twig @@ -11,6 +11,13 @@ {% block js %} {{ parent() }} {{ encore_entry_script_tags('mod_async_upload') }} + {{ encore_entry_script_tags('mod_docgen_picktemplate') }} +{% endblock %} + +{% block css %} + {{ parent() }} + {{ encore_entry_link_tags('mod_async_upload') }} + {{ encore_entry_link_tags('mod_docgen_picktemplate') }} {% endblock %} {% block content %} @@ -58,6 +65,8 @@ +
+ {% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_CREATE', accompanyingCourse) %} + + + +

{{ $t('fix_these_errors') }}