From 1dc01fa8e20e41e9e0430a486c171acca48e08cc Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Fri, 1 Oct 2021 13:08:12 +0200 Subject: [PATCH] create OnTheFly rootComponent structure, and twig include template to insert it --- .../Resources/public/vuejs/OnTheFly/App.vue | 49 +++++++++++++++++++ .../Resources/public/vuejs/OnTheFly/i18n.js | 24 +++++++++ .../Resources/public/vuejs/OnTheFly/index.js | 28 +++++++++++ .../Resources/public/vuejs/_js/i18n.js | 18 ------- .../OnTheFly/_insert_vue_onthefly.html.twig | 13 +++++ .../ChillMainBundle/chill.webpack.config.js | 1 + .../vuejs/AccompanyingCourse/js/i18n.js | 3 +- 7 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/App.vue create mode 100644 src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js create mode 100644 src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/index.js create mode 100644 src/Bundle/ChillMainBundle/Resources/views/OnTheFly/_insert_vue_onthefly.html.twig diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/App.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/App.vue new file mode 100644 index 000000000..0f566f464 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/App.vue @@ -0,0 +1,49 @@ + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js new file mode 100644 index 000000000..3cba67149 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js @@ -0,0 +1,24 @@ +const ontheflyMessages = { + fr: { + onthefly: { + show: { + person: "Détails de l'usager", + thirdparty: "Détails du tiers", + file_person: "Ouvrir la fiche de l'usager", + file_thirdparty: "Voir le Tiers", + }, + edit: { + person: "Modifier un usager", + thirdparty: "Modifier un tiers" + }, + create: { + button: "Créer \"{q}\"", + title: "Création d'un nouvel usager ou d'un tiers professionnel", + person: "un nouvel usager", + thirdparty: "un nouveau tiers professionnel" + }, + } + } +} + +export { ontheflyMessages }; diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/index.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/index.js new file mode 100644 index 000000000..2b78a569a --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/index.js @@ -0,0 +1,28 @@ +import { createApp } from "vue"; +import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n'; +import { ontheflyMessages } from './i18n.js'; +import App from "./App.vue"; + +const i18n = _createI18n( ontheflyMessages ); + +let containers = document.querySelectorAll('.onthefly-container'); + +containers.forEach((container) => { + + const app = createApp({ + template: ``, + data() { + return { + onTheFly: { + context: {}, + options: {} + } + } + } + }) + .use(i18n) + .component('app', App) + .mount(container); + + console.log('container dataset', container.dataset); +}); diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_js/i18n.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_js/i18n.js index 5e001a21b..c16b4c65d 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_js/i18n.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_js/i18n.js @@ -53,24 +53,6 @@ const messages = { top: "Haut", bottom: "Bas", }, - onthefly: { - show: { - person: "Détails de l'usager", - thirdparty: "Détails du tiers", - file_person: "Ouvrir la fiche de l'usager", - file_thirdparty: "Voir le Tiers", - }, - edit: { - person: "Modifier un usager", - thirdparty: "Modifier un tiers" - }, - create: { - button: "Créer \"{q}\"", - title: "Création d'un nouvel usager ou d'un tiers professionnel", - person: "un nouvel usager", - thirdparty: "un nouveau tiers professionnel" - }, - }, renderbox: { person: "Usager", birthday: { diff --git a/src/Bundle/ChillMainBundle/Resources/views/OnTheFly/_insert_vue_onthefly.html.twig b/src/Bundle/ChillMainBundle/Resources/views/OnTheFly/_insert_vue_onthefly.html.twig new file mode 100644 index 000000000..f43101bbb --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/views/OnTheFly/_insert_vue_onthefly.html.twig @@ -0,0 +1,13 @@ +{# + This Twig template include load vue_onthefly component. + It push all variables from context in OnTheFly/App.vue. + + OPTIONS + * +#} +
+ +{{ encore_entry_script_tags('vue_onthefly') }} +{{ encore_entry_link_tags('vue_onthefly') }} diff --git a/src/Bundle/ChillMainBundle/chill.webpack.config.js b/src/Bundle/ChillMainBundle/chill.webpack.config.js index 7ba42ed97..0204166d0 100644 --- a/src/Bundle/ChillMainBundle/chill.webpack.config.js +++ b/src/Bundle/ChillMainBundle/chill.webpack.config.js @@ -61,5 +61,6 @@ module.exports = function(encore, entries) // Vue entrypoints encore.addEntry('vue_address', __dirname + '/Resources/public/vuejs/Address/index.js'); + encore.addEntry('vue_onthefly', __dirname + '/Resources/public/vuejs/OnTheFly/index.js'); }; diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js index 5d1451ff3..f742a6ea0 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js @@ -1,6 +1,7 @@ import { personMessages } from 'ChillPersonAssets/vuejs/_js/i18n'; import { thirdpartyMessages } from 'ChillThirdPartyAssets/vuejs/_js/i18n'; import { addressMessages } from 'ChillMainAssets/vuejs/Address/i18n'; +import { ontheflyMessages } from 'ChillMainAssets/vuejs/OnTheFly/i18n'; const appMessages = { fr: { @@ -142,7 +143,7 @@ const appMessages = { } }; -Object.assign(appMessages.fr, personMessages.fr, thirdpartyMessages.fr, addressMessages.fr); +Object.assign(appMessages.fr, personMessages.fr, thirdpartyMessages.fr, addressMessages.fr, ontheflyMessages.fr); export { appMessages