diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue new file mode 100644 index 000000000..5e8bd0d09 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/App_test.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js new file mode 100644 index 000000000..1da9261c4 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/accompanyingCourse.js @@ -0,0 +1,25 @@ +const + locale = 'fr', + format = 'json', + accompanying_period_id = () => window.accompanyingCourseId +; + +// 1. chill_person_accompanying_course_api_show +let getAccompanyingCourse = (accompanying_period_id) => { + const url = `/${locale}/person/api/1.0/accompanying-course/${accompanying_period_id}/show.${format}`; + return fetch(url).then(response => response.json()); +}; + +// 2. chill_person_accompanying_course_api_add_participation (POST) +let getParticipations = (accompanying_period_id) => { + const url = `/${locale}/person/api/1.0/accompanying-course/${accompanying_period_id}/participation.${format}` + return fetch(url).then(response => response.json()); +}; + +export { getAccompanyingCourse, getParticipations }; + + + +/// +// cfr. promise.all() pour plusieurs promesses +// catch throw sur le dernier then pour capturer l'erreur diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js new file mode 100644 index 000000000..f0341ccd9 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/api/participations.js @@ -0,0 +1,5 @@ + +const _participations = [] + +export default { +} diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js index 4335113f7..6d738de33 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/index.js @@ -1,8 +1,16 @@ -import App from './App.vue'; import { createApp } from 'vue'; +import createStore from './store'; +import App from './App_test.vue'; -const app = createApp({ - template: `` -}) -.component('app', App) -.mount('#accompanying-course'); +createStore.then(store => { + + //console.log('store in create_store', store); + console.log('store course', store.state.course); + + const app = createApp({ + template: ``, + }) + .use(store) + .component('app', App) + .mount('#accompanying-course'); +}); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/.keep b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js new file mode 100644 index 000000000..e9bae629b --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/js/AccompanyingCourse/store/index.js @@ -0,0 +1,21 @@ +import 'es6-promise/auto'; +import { createStore } from 'vuex'; +import { getAccompanyingCourse, getParticipations } from '../api/accompanyingCourse'; + +const debug = process.env.NODE_ENV !== 'production'; + +let promise = getAccompanyingCourse(window.accompanyingCourseId) + .then(accompanying_course => new Promise((resolve, reject) => { + let store = createStore({ + state() { + return { + course: accompanying_course + } + }, + strict: debug + }); + //console.log('store', store); + resolve(store); + })); + +export default promise;