From bea0b69858401059c51df0e72dedbeb7573f5590 Mon Sep 17 00:00:00 2001 From: Julie Lenaerts Date: Thu, 13 Jan 2022 16:30:52 +0100 Subject: [PATCH] v-model added so data is taken from the form for all fields + modal title correction --- .../vuejs/OnTheFly/components/OnTheFly.vue | 25 +++++++---- .../Resources/public/vuejs/OnTheFly/i18n.js | 2 +- .../Entity/ThirdParty.php | 5 ++- .../vuejs/_components/OnTheFly/ThirdParty.vue | 42 ++++++++++++------- 4 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue index f65615a98..140e27c5e 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue @@ -18,7 +18,8 @@ @close="modal.showModal = false"> @@ -179,8 +180,8 @@ export default { }, methods: { openModal() { - //console.log('## OPEN ON THE FLY MODAL'); - //console.log('## type:', this.type, ', action:', this.action); + // console.log('## OPEN ON THE FLY MODAL'); + // console.log('## type:', this.type, ', action:', this.action); this.modal.showModal = true; this.$nextTick(function() { //this.$refs.search.focus(); @@ -190,7 +191,7 @@ export default { this.$data.action = action; }, saveAction() { - console.log('saveAction button: create/edit action with', this.type); + // console.log('saveAction button: create/edit action with', this.type); let type = this.type, data = {} ; @@ -205,14 +206,20 @@ export default { break; default: - if (typeof this.type === 'undefined') { // action=create - type = this.$refs.castNew.radioType; - data = this.$refs.castNew.castDataByType(); + if (typeof this.type === 'undefined') { // action=create or addContact + if (this.action === 'addContact') { + type = 'thirdparty' + data = this.$refs.castThirdparty.$data.thirdparty; + // console.log(data) + } else { + type = this.$refs.castNew.radioType; + data = this.$refs.castNew.castDataByType(); + } } else { throw 'error with object type'; } } - + console.log('type', type, 'data', data) // pass datas to parent this.$emit('saveFormOnTheFly', { type: type, data: data }); diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js index 7ed297142..aac191731 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/i18n.js @@ -18,7 +18,7 @@ const ontheflyMessages = { thirdparty: "un nouveau tiers professionnel" }, addContact: { - title: "Créer un contact pour ..." + title: "Créer un contact pour {q}" } resource_comment_title: "Un commentaire est associé à cet interlocuteur" } diff --git a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php index 95c930956..97d18ae62 100644 --- a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php +++ b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php @@ -126,13 +126,14 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface * @var Civility * @ORM\ManyToOne(targetEntity=Civility::class) * ORM\JoinColumn(name="civility", referencedColumnName="id", nullable=true) - * @Groups({"docgen:read", "read", "docgen:read:3party:parent"}) + * @Groups({"docgen:read", "read", "write", "docgen:read:3party:parent"}) * @Context(normalizationContext={"groups": "docgen:read"}, groups={"docgen:read:3party:parent"}) */ private ?Civility $civility = null; /** * @ORM\Column(name="comment", type="text", nullable=true) + * @Groups({"read", "write"}) */ private ?string $comment = null; @@ -198,7 +199,7 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface * * @ORM\ManyToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty", inversedBy="children") * @ORM\JoinColumn(name="parent_id", referencedColumnName="id") - * @Groups({"read", "docgen:read"}) + * @Groups({"read", "write", "docgen:read"}) * @Context(normalizationContext={"groups": "docgen:read:3party:parent"}, groups={"docgen:read"}) */ private ?ThirdParty $parent = null; diff --git a/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue b/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue index c03fa6c36..a51f03745 100644 --- a/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue +++ b/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue @@ -65,20 +65,27 @@ }"> -
+
- - +
-
- - +
+
+ + +
+
+ + +
@@ -121,6 +128,7 @@
@@ -218,7 +226,6 @@ export default { const url = `/api/1.0/main/civility.json`; makeFetch('GET', url) .then(response => { - console.log(response) this.$data.civilities = response.results; }) .catch((error) => { @@ -230,7 +237,6 @@ export default { const url = `/api/1.0/thirdparty/professions.json`; makeFetch('GET', url) .then(response => { - console.log(response) this.$data.professions = response.results; }) .catch((error) => { @@ -251,7 +257,9 @@ export default { mounted() { console.log('mounted', this.action); if (this.action !== 'create') { - this.loadData(); + if (this.id) { + this.loadData(); + } if (this.action === 'addContact') { this.loadProfessions(); this.loadCivilities(); @@ -284,6 +292,10 @@ dl { #child-info { display: flex; + justify-content: space-between; + div { + width: 49%; + } }