mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			calendar/f
			...
			vue3-test0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3e7c79d6ce | |||
| bc1f624e14 | |||
| f73d3bf320 | 
| @@ -1,7 +0,0 @@ | ||||
| import Vue from 'vue' | ||||
| import App from 'ChillPersonAssets/js/AccompanyingCourse.vue' | ||||
|  | ||||
| new Vue({ | ||||
|     el: '#app', | ||||
|     render: h => h(App) | ||||
| }) | ||||
| @@ -56,7 +56,7 @@ module.exports = function(encore, entries) | ||||
|     // Chill2 new assets | ||||
|     encore.addEntry('forkawesome', __dirname + '/Resources/public/modules/forkawesome/index.js'); | ||||
|     encore.addEntry('bootstrap', __dirname + '/Resources/public/modules/bootstrap/index.js'); | ||||
|     encore.addEntry('vuejs', __dirname + '/Resources/public/modules/vue/index.js'); | ||||
|     //encore.addEntry('vuejs', __dirname + '/Resources/public/modules/vue/index.js'); | ||||
|  | ||||
|     // CKEditor5 | ||||
|     buildCKEditor(encore); | ||||
|   | ||||
| @@ -96,18 +96,21 @@ class AccompanyingCourseController extends Controller | ||||
|         $data = [ | ||||
|             'id' => $accompanyingCourse->getId(), | ||||
|             'remark' => $accompanyingCourse->getRemark(), | ||||
|             'closing_motive' => $accompanyingCourse->getClosingMotive()->getName()['fr'], | ||||
|             'closing_motive' => $accompanyingCourse->getClosingMotive() ? $accompanyingCourse->getClosingMotive()->getName()['fr'] : null, | ||||
|             'opening_date' => ($accompanyingCourse->getOpeningDate()) ? $accompanyingCourse->getOpeningDate()->format('Y-m-d') : null, | ||||
|             'closing_date' => ($accompanyingCourse->getClosingDate()) ? $accompanyingCourse->getClosingDate()->format('Y-m-d') : null, | ||||
|             'persons' => $persons | ||||
|         ]; | ||||
|  | ||||
|          | ||||
|         /** | ||||
|         $normalizer = [new ObjectNormalizer()]; | ||||
|         $encoder = [new JsonEncoder()]; | ||||
|  | ||||
|         $serializer = new Serializer($normalizer, $encoder); | ||||
|         $serialized = $serializer->serialize($data,'json', []); | ||||
|  | ||||
|          *  | ||||
|          */ | ||||
|         $serialized = \json_encode($data); | ||||
|         $response = new Response($serialized); | ||||
|         $response->headers->set('Content-Type', 'application/json'); | ||||
|         return $response; | ||||
|   | ||||
| @@ -0,0 +1,20 @@ | ||||
|  | ||||
| import Vue from 'vue'; | ||||
|  | ||||
| const AccompanyingCourseComponent = { | ||||
|   data() { | ||||
|     return { | ||||
|         id: 7, | ||||
|         persons_associated: [] | ||||
|     }; | ||||
|   }, | ||||
| }; | ||||
|  | ||||
| let app = Vue.CreateApp({ | ||||
|   delimiters: ['${', '}'] | ||||
| }) | ||||
|   .component(AccompanyingCourseComponent) | ||||
| ; | ||||
|  | ||||
|  | ||||
| app.mount('#app'); | ||||
| @@ -1,19 +1,105 @@ | ||||
| <template> | ||||
|    <div id="app"> | ||||
|       <persons_associated></persons_associated> | ||||
|    </div> | ||||
|     <div id="kkk"> | ||||
|         <h3>Usagers concernés</h3> | ||||
|         <dl> | ||||
|             <dt>id</dt> | ||||
|                 <dd>{{ course.id }}</dd> | ||||
|             <dt>opening_date</dt> | ||||
|                 <dd>{{ course.opening_date }}</dd> | ||||
|             <dt>closing_date</dt> | ||||
|                 <dd>{{ course.closing_date }}</dd> | ||||
|             <dt>remarkzzzzz</dt> | ||||
|                 <dd>{{ course.remark }}</dd> | ||||
|             <dt>closing_motive</dt> | ||||
|                 <dd>{{ course.closing_motive }}</dd> | ||||
|         </dl> | ||||
|         <label>{{counter}} usagers concernés</label> | ||||
|         <table class="rounded"> | ||||
|             <thead> | ||||
|                 <tr> | ||||
|                     <th class="chill-orange">firstname</th> | ||||
|                     <th class="chill-orange">lastname</th> | ||||
|                     <th class="chill-orange">startdate</th> | ||||
|                     <th class="chill-orange">enddate</th> | ||||
|                     <th class="chill-orange">actions</th> | ||||
|                 </tr> | ||||
|             </thead> | ||||
|             <tbody> | ||||
|                 <tr v-for="person in course.persons"> | ||||
|                     <td>{{ person.firstname }}</td> | ||||
|                     <td>{{ person.lastname }}</td> | ||||
|                     <td>{{ person.startdate }}</td> | ||||
|                     <td>{{ person.enddate }}</td> | ||||
|                     <td> | ||||
|                       <ul class="record_actions"> | ||||
|                         <li><a class="sc-button bt-show"></a></li> | ||||
|                         <li><a class="sc-button bt-update"></a></li> | ||||
|                         <li><a class="sc-button bt-delete"></a></li> | ||||
|                       </ul> | ||||
|                     </td> | ||||
|                 </tr> | ||||
|             </tbody> | ||||
|         </table> | ||||
|         <ul class="record_actions"> | ||||
|             <li> | ||||
|                 <button class="sc-button bt-create" @click="addPerson">Add Person</button> | ||||
|             </li> | ||||
|         </ul> | ||||
|     </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|    import persons_associated from './components/PersonsAssociated.vue' | ||||
|    import { createApp } from 'vue'; | ||||
|  | ||||
|    export default { | ||||
|       name: 'app', | ||||
|       components: { | ||||
|          persons_associated, | ||||
|    const App = { | ||||
|       name: 'AppAccompanyingCourse', | ||||
|       //delimiters: ['${', '}'], works only for template "in browser", not for template in vue files | ||||
|       data() { | ||||
|         return { course:  | ||||
|           { | ||||
|             id: 50, | ||||
|             opening_date: null, | ||||
|             closing_date: null, | ||||
|             remark: 'bim', | ||||
|             closing_motive: 'bam', | ||||
|             counter: 0, | ||||
|             persons: []  | ||||
|           } | ||||
|         }; | ||||
|       }, | ||||
|       computed: { | ||||
|         courseId() { | ||||
|           return window.courseId; | ||||
|         }  | ||||
|       }, | ||||
|       async mounted() { | ||||
|           console.log('mounted'); | ||||
|           console.log(this.data); | ||||
|           console.log(this.courseId); | ||||
|           await this.getCourse(); | ||||
|           console.log(this.data); | ||||
|           console.log('mounted stop'); | ||||
|       }, | ||||
|       methods: { | ||||
|         async getCourse() { | ||||
|           console.log('get course start'); | ||||
|           console.log(this); | ||||
|           courseId = this.courseId; | ||||
|           let data_; | ||||
|           return fetch(`/fr/api/parcours/${courseId}/show`) | ||||
|             .then(response => response.json()) | ||||
|             .then(data => { | ||||
|               console.log(data); | ||||
|               console.log(this); | ||||
|               this.$data.course = data; | ||||
|               console.log(this.data); | ||||
|               console.log('get course finish'); | ||||
|           }); | ||||
|         } | ||||
|       } | ||||
|    } | ||||
|    }; | ||||
|   | ||||
|    export default App; | ||||
| </script> | ||||
|  | ||||
| <style> | ||||
| </style> | ||||
| <style></style> | ||||
|   | ||||
| @@ -0,0 +1,35 @@ | ||||
|  | ||||
|     import Vue from 'vue' | ||||
|     import VueResource from 'vue-resource' | ||||
|  | ||||
|     Vue.use(VueResource); | ||||
|  | ||||
|     export default { | ||||
|         template: '#vue-usagers', | ||||
|         delimiters: ['${', '}'], | ||||
|         data () { | ||||
|             return { | ||||
|                 persons_associated: [] | ||||
|             }; | ||||
|         }, | ||||
|         http: { | ||||
|             root: 'http://localhost:8001/fr/api' | ||||
|         }, | ||||
|         methods: { | ||||
|             addPerson(){ | ||||
|                 this.persons_associated.persons.push({"firstname": "Lisa", "lastname": "Simpson", "startdate": "1975-09-15", "enddate": "2021-04-20" }) | ||||
|             } | ||||
|         }, | ||||
|         computed: { | ||||
|             counter() { | ||||
|                 return this.persons_associated.persons.length; | ||||
|             } | ||||
|         }, | ||||
|         created() { | ||||
|             this.$resource('parcours/270/show').get().then((response) => { | ||||
|                 this.persons_associated = response.data | ||||
|             }, (response) => { | ||||
|                 console.log('erreur', response); | ||||
|             }); | ||||
|         } | ||||
|     }; | ||||
| @@ -1,60 +1,12 @@ | ||||
| <template> | ||||
|     <div class="vue-component"> | ||||
|         <h3>Usagers concernés</h3> | ||||
|         <dl> | ||||
|             <dt>id</dt> | ||||
|                 <dd>{{ persons_associated.id }}</dd> | ||||
|             <dt>opening_date</dt> | ||||
|                 <dd>{{ persons_associated.opening_date }}</dd> | ||||
|             <dt>closing_date</dt> | ||||
|                 <dd>{{ persons_associated.closing_date }}</dd> | ||||
|             <dt>remark</dt> | ||||
|                 <dd>{{ persons_associated.remark }}</dd> | ||||
|             <dt>closing_motive</dt> | ||||
|                 <dd>{{ persons_associated.closing_motive }}</dd> | ||||
|         </dl> | ||||
|         <label>{{counter}} usagers concernés</label> | ||||
|         <table class="rounded"> | ||||
|             <thead> | ||||
|                 <tr> | ||||
|                     <th class="chill-orange">firstname</th> | ||||
|                     <th class="chill-orange">lastname</th> | ||||
|                     <th class="chill-orange">startdate</th> | ||||
|                     <th class="chill-orange">enddate</th> | ||||
|                     <th class="chill-orange">actions</th> | ||||
|                 </tr> | ||||
|             </thead> | ||||
|             <tbody> | ||||
|                 <tr v-for="person in persons_associated.persons"> | ||||
|                     <td>{{ person.firstname }}</td> | ||||
|                     <td>{{ person.lastname }}</td> | ||||
|                     <td>{{ person.startdate }}</td> | ||||
|                     <td>{{ person.enddate }}</td> | ||||
|                     <td> | ||||
|                       <ul class="record_actions"> | ||||
|                         <li><a class="sc-button bt-show"></a></li> | ||||
|                         <li><a class="sc-button bt-update"></a></li> | ||||
|                         <li><a class="sc-button bt-delete"></a></li> | ||||
|                       </ul> | ||||
|                     </td> | ||||
|                 </tr> | ||||
|             </tbody> | ||||
|         </table> | ||||
|         <ul class="record_actions"> | ||||
|             <li> | ||||
|                 <button class="sc-button bt-create" @click="addPerson">Add Person</button> | ||||
|             </li> | ||||
|         </ul> | ||||
|     </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|     import Vue from 'vue' | ||||
|     import VueResource from 'vue-resource' | ||||
|  | ||||
|     Vue.use(VueResource) | ||||
|  | ||||
|     export default{ | ||||
|     export default { | ||||
|         template: '#vue-usagers', | ||||
|         delimiters: ['${', '}'], | ||||
|         data () { | ||||
|             return { | ||||
|                 persons_associated: [] | ||||
| @@ -74,15 +26,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         created() { | ||||
|             this.$resource('parcours/861/show').get().then((response) => { | ||||
|             this.$resource('parcours/270/show').get().then((response) => { | ||||
|                 this.persons_associated = response.data | ||||
|             }, (response) => { | ||||
|                 console.log('erreur', response); | ||||
|             }) | ||||
|         } | ||||
|     } | ||||
| </script> | ||||
|  | ||||
| <style> | ||||
| </style> | ||||
|  | ||||
|   | ||||
							
								
								
									
										10
									
								
								src/Bundle/ChillPersonBundle/Resources/public/js/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/Bundle/ChillPersonBundle/Resources/public/js/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| import AccompanyingCourseComponent from './AccompanyingCourse.vue'; | ||||
| import { createApp } from 'vue'; | ||||
|  | ||||
|  | ||||
| const app = createApp({ | ||||
|     name: 'AccCourseGlobal', | ||||
|     template: '<div class="abcde"><accompanying-course></accompanying-course></div>', | ||||
| }) | ||||
| .component('accompanying-course', AccompanyingCourseComponent) | ||||
| .mount('#app'); | ||||
| @@ -8,24 +8,14 @@ | ||||
|  | ||||
|     <h1>{{ block('title') }}</h1> | ||||
|  | ||||
| {# | ||||
|     <pre> | ||||
| {{ accompanyingCourse.id }} | ||||
| {{ accompanyingCourse.openingDate|format_date('short') }} | ||||
| {{ accompanyingCourse.closingDate|format_date('short') }} | ||||
| {{ accompanyingCourse.closingMotive|chill_entity_render_box }} | ||||
| {{ accompanyingCourse.remark|raw }} | ||||
| {{ accompanyingCourse.user }} | ||||
| usagers: | ||||
| {% for p in accompanyingCourse.participations %} | ||||
|     {{ p.person.id }} | <a href="{{ path('chill_person_accompanying_period_list', { person_id: p.person.id }) }}">{{ p.person.fullnamecanonical }}</a> | {{ p.startdate|format_date('short') }} | {{ p.enddate|format_date('short') }} | ||||
| {% endfor %} | ||||
|     </pre> | ||||
|     {{ dump() }} | ||||
|     {% verbatim %}{% endverbatim %} | ||||
| #} | ||||
|  | ||||
|     <div id="app" data-name="{{ accompanyingCourse.id }}"></div> | ||||
|     {{ encore_entry_script_tags('vuejs') }} | ||||
|   <script type="text/javascript"> | ||||
|     window.courseId = {{ accompanyingCourse.id|e('js') }}; | ||||
|     console.log(window.courseId); | ||||
|   </script> | ||||
|    | ||||
|      | ||||
|     <div id="app"></div>     | ||||
|        | ||||
|     {{ encore_entry_script_tags('accompanying_course') }} | ||||
|  | ||||
| {% endblock %} | ||||
|   | ||||
| @@ -7,4 +7,7 @@ module.exports = function(encore, entries) | ||||
|     encore.addAliases({ | ||||
|         ChillPersonAssets: __dirname + '/Resources/public' | ||||
|     }); | ||||
|      | ||||
|     encore.addEntry('accompanying_course', __dirname + '/Resources/public/js/index.js'); | ||||
|  | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user