mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 09:18:24 +00:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			2.16.0
			...
			convert_to
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 85e1754af0 | |||
| e94bbc1271 | |||
| fb9df1dba0 | |||
| a579ff96a1 | |||
| cb1002ca04 | 
| @@ -10,7 +10,7 @@ | ||||
|  | ||||
| <script> | ||||
| import AddAddress from './components/AddAddress.vue'; | ||||
| import { postAddressToHousehold, postAddressToPerson } from "ChillPersonAssets/vuejs/_api/AddAddress"; | ||||
| import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods.js'; | ||||
|  | ||||
| export default { | ||||
|    name: "App", | ||||
| @@ -31,25 +31,17 @@ export default { | ||||
|             : this.context.target.name + '_' + this.context.target.id ; | ||||
|       } | ||||
|    }, | ||||
|    mounted() { | ||||
|       //console.log('AddAddress: data context', this.context); | ||||
|       //console.log('AddAddress: data options', this.options); | ||||
|    }, | ||||
|    methods: { | ||||
|       displayErrors() { | ||||
|          return this.$refs.addAddress.errorMsg; | ||||
|       }, | ||||
|       submitAddress(payload) { | ||||
|          console.log('@@@ click on Submit Address Button', payload); | ||||
|  | ||||
|          // Existing address | ||||
|          if (this.context.edit) { | ||||
|  | ||||
|             // address is already linked, just finish ! | ||||
|             this.$refs.addAddress.afterLastPaneAction({}); | ||||
|             this.$emit('addressEdited', payload); | ||||
|  | ||||
|          // New created address | ||||
|             // New created address | ||||
|          } else { | ||||
|             this.postAddressTo(payload); | ||||
|          } | ||||
| @@ -60,51 +52,39 @@ export default { | ||||
|       */ | ||||
|       postAddressTo(payload) { | ||||
|          this.$emit('addressCreated', payload); | ||||
|          let url = ''; | ||||
|  | ||||
|          console.log('postAddress', payload.addressId, 'To', payload.target, payload.targetId); | ||||
|          switch (payload.target) { | ||||
|             case 'household': | ||||
|                postAddressToHousehold(payload.targetId, payload.addressId) | ||||
|                   .then(address => new Promise((resolve, reject) => { | ||||
|                      console.log('..household address', address); | ||||
|                      this.$refs.addAddress.flag.loading = false; | ||||
|                      this.$refs.addAddress.flag.success = true; | ||||
|  | ||||
|                      // finish | ||||
|                      this.$refs.addAddress.afterLastPaneAction({ addressId: address.address_id }); | ||||
|  | ||||
|                      resolve(); | ||||
|                   })) | ||||
|                   .catch((error) => { | ||||
|                      this.$refs.addAddress.errorMsg.push(error); | ||||
|                      this.$refs.addAddress.flag.loading = false; | ||||
|                   }) | ||||
|                ; | ||||
|                url = `/api/1.0/person/household/${payload.targetId}/address.json` | ||||
|                break; | ||||
|             case 'person': | ||||
|                postAddressToPerson(payload.targetId, payload.addressId) | ||||
|                   .then(address => new Promise((resolve, reject) => { | ||||
|                      console.log('..person address', address); | ||||
|                      this.$refs.addAddress.flag.loading = false; | ||||
|                      this.$refs.addAddress.flag.success = true; | ||||
|  | ||||
|                      // finish | ||||
|                      this.$refs.addAddress.afterLastPaneAction({ addressId: address.address_id }); | ||||
|  | ||||
|                      resolve(); | ||||
|                   })) | ||||
|                   .catch((error) => { | ||||
|                      this.$refs.addAddress.errorMsg.push(error); | ||||
|                      this.$refs.addAddress.flag.loading = false; | ||||
|                   }) | ||||
|                ; | ||||
|                url = `/api/1.0/person/person/${payload.targetId}/address.json` | ||||
|                break; | ||||
|             case 'thirdparty': | ||||
|                console.log('TODO write postAddressToThirdparty'); | ||||
|                // TODO write postAddressToThirdparty; | ||||
|                break; | ||||
|             default: | ||||
|                this.$refs.addAddress.errorMsg.push('That entity is not managed by address !'); | ||||
|                this.$refs.addAddress.errorMsg.push('This entity is not managed by address !'); | ||||
|          } | ||||
|          const body = { | ||||
|             'id': payload.addressId | ||||
|          }; | ||||
|  | ||||
|          makeFetch('POST', url, body) | ||||
|             .then((response) => { | ||||
|                this.$refs.addAddress.flag.loading = false; | ||||
|                this.$refs.addAddress.flag.success = true; | ||||
|                this.$refs.addAddress.afterLastPaneAction({ addressId: response.address_id }); | ||||
|             }) | ||||
|             .catch(({name, violations}) => { | ||||
|                if (name === 'ValidationException' || name === 'AccessException') { | ||||
|                   violations.forEach((violation) => this.$toast.open({message: violation})); | ||||
|                } else { | ||||
|                   this.$toast.open({message: 'An error occurred'}) | ||||
|                } | ||||
|                this.$refs.addAddress.flag.loading = false; | ||||
|             }); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|   | ||||
| @@ -36,12 +36,12 @@ const fetchCities = (country) => { | ||||
| */ | ||||
| const fetchReferenceAddresses = (postalCode) => { | ||||
|     //console.log('<<< fetching references addresses for', postalCode); | ||||
|     const url = `/api/1.0/main/address-reference.json?item_per_page=1000&postal_code=${postalCode.id}`; | ||||
|     return fetch(url) | ||||
|        .then(response => { | ||||
|           if (response.ok) { return response.json(); } | ||||
|           throw Error('Error with request resource response'); | ||||
|        }); | ||||
|    const url = `/api/1.0/main/address-reference.json?item_per_page=1000&postal_code=${postalCode.id}`; | ||||
|    return fetch(url) | ||||
|       .then(response => { | ||||
|          if (response.ok) { return response.json(); } | ||||
|          throw Error('Error with request resource response'); | ||||
|       }); | ||||
| }; | ||||
|  | ||||
| /** | ||||
| @@ -87,18 +87,18 @@ const postAddress = (address) => { | ||||
|  * @returns {Promise<Response>} | ||||
|  */ | ||||
| const duplicateAddress = (address) => { | ||||
|   const url = `/api/1.0/main/address/${address.address_id}/duplicate.json`; | ||||
|   return fetch(url, { | ||||
|       'method': 'POST', | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json;charset=utf-8' | ||||
|       }, | ||||
|     }).then(response => { | ||||
|         if (response.ok) { | ||||
|           return response.json(); | ||||
|         } | ||||
|         throw Error('Error with request resource response'); | ||||
|     }); | ||||
| const url = `/api/1.0/main/address/${address.address_id}/duplicate.json`; | ||||
| return fetch(url, { | ||||
|    'method': 'POST', | ||||
|    headers: { | ||||
|       'Content-Type': 'application/json;charset=utf-8' | ||||
|    }, | ||||
|    }).then(response => { | ||||
|       if (response.ok) { | ||||
|          return response.json(); | ||||
|       } | ||||
|       throw Error('Error with request resource response'); | ||||
|    }); | ||||
| }; | ||||
|  | ||||
|  | ||||
| @@ -114,7 +114,7 @@ const patchAddress = (id, body) => { | ||||
|    return fetch(url, { | ||||
|          method: 'PATCH', | ||||
|          headers: { | ||||
|            'Content-Type': 'application/json;charset=utf-8' | ||||
|          'Content-Type': 'application/json;charset=utf-8' | ||||
|          }, | ||||
|          body: JSON.stringify(body) | ||||
|       }) | ||||
|   | ||||
| @@ -220,16 +220,15 @@ | ||||
| <script> | ||||
| import Modal from 'ChillMainAssets/vuejs/_components/Modal'; | ||||
| import { | ||||
|   duplicateAddress, | ||||
|   fetchCountries, | ||||
|   fetchCities, | ||||
|   fetchReferenceAddresses, | ||||
|   getAddress, | ||||
|   patchAddress, | ||||
|   postAddress, | ||||
|   postPostalCode, | ||||
| duplicateAddress, | ||||
| fetchCountries, | ||||
| fetchCities, | ||||
| fetchReferenceAddresses, | ||||
| getAddress, | ||||
| patchAddress, | ||||
| postAddress, | ||||
| postPostalCode, | ||||
| } from '../api'; | ||||
| import { postAddressToPerson, postAddressToHousehold } from "ChillPersonAssets/vuejs/_api/AddAddress.js"; | ||||
| import ShowPane from './ShowPane.vue'; | ||||
| import SuggestPane from './SuggestPane.vue'; | ||||
| import EditPane from './EditPane.vue'; | ||||
| @@ -246,7 +245,7 @@ export default { | ||||
|       DatePane | ||||
|    }, | ||||
|    emits: { | ||||
|      pickAddress: null | ||||
|    pickAddress: null | ||||
|    }, | ||||
|    data() { | ||||
|       return { | ||||
| @@ -329,7 +328,7 @@ export default { | ||||
|       }, | ||||
|       hasSuggestions() { | ||||
|          if (typeof(this.context.suggestions) !== 'undefined') { | ||||
|             console.log('hasSuggestions', this.context.suggestions); | ||||
|             // console.log('hasSuggestions', this.context.suggestions); | ||||
|             return this.context.suggestions.length > 0; | ||||
|          } | ||||
|          return false; | ||||
| @@ -355,14 +354,7 @@ export default { | ||||
|       } | ||||
|    }, | ||||
|    mounted() { | ||||
|  | ||||
|       //console.log('validFrom', this.validFrom); | ||||
|       //console.log('validTo', this.validTo); | ||||
|       //console.log('useDatePane', this.useDatePane); | ||||
|  | ||||
|       console.log('Mounted now !'); | ||||
|       if (this.context.edit) { | ||||
|          console.log('getInitialAddress', this.context.addressId); | ||||
|          this.getInitialAddress(this.context.addressId); | ||||
|       } | ||||
|       this.openShowPane(); | ||||
| @@ -375,32 +367,32 @@ export default { | ||||
|       */ | ||||
|       openShowPane() { | ||||
|          if (this.flag.editPane === false && this.bypassFirstStep) { | ||||
|             console.log('bypassFirstStep'); | ||||
|             // console.log('bypassFirstStep'); | ||||
|             this.closeShowPane(); | ||||
|             this.openEditPane(); | ||||
|          } else { | ||||
|             this.flag.showPane = true; | ||||
|             console.log('step0: open the Show Panel'); | ||||
|             // console.log('step0: open the Show Panel'); | ||||
|          } | ||||
|       }, | ||||
|       closeShowPane() { | ||||
|          // Show pane can be closed only when openPanesInModal is false | ||||
|          if (!this.inModal) { | ||||
|             this.flag.showPane = false; | ||||
|             console.log('step0: close the Show Panel'); | ||||
|             // console.log('step0: close the Show Panel'); | ||||
|          } | ||||
|       }, | ||||
|       openSuggestPane() { | ||||
|          this.flag.suggestPane = true; | ||||
|          console.log('step1: open the Suggestion Panel'); | ||||
|          // console.log('step1: open the Suggestion Panel'); | ||||
|       }, | ||||
|       closeSuggestPane() { | ||||
|          this.flag.suggestPane = false; | ||||
|          console.log('step1: close the Suggestion Panel'); | ||||
|          // console.log('step1: close the Suggestion Panel'); | ||||
|       }, | ||||
|       openEditPane() { | ||||
|          if (this.flag.suggestPane === false && this.displaySuggestions) { | ||||
|             console.log('displaySuggestions'); | ||||
|             // console.log('displaySuggestions'); | ||||
|             this.openSuggestPane(); | ||||
|          } else { | ||||
|             if (this.flag.datePane === false) { | ||||
| @@ -411,7 +403,7 @@ export default { | ||||
|       }, | ||||
|       closeEditPane() { | ||||
|          this.flag.editPane = false; | ||||
|          console.log('step2: close the Edit Panel'); | ||||
|          // console.log('step2: close the Edit Panel'); | ||||
|          if (!this.context.edit && this.useDatePane) { | ||||
|             this.openDatePane(); | ||||
|          } else { | ||||
| @@ -423,15 +415,15 @@ export default { | ||||
|       }, | ||||
|       openDatePane() { | ||||
|          this.flag.datePane = true; | ||||
|          console.log('step3: open the Date Panel'); | ||||
|          // console.log('step3: open the Date Panel'); | ||||
|       }, | ||||
|       closeDatePane() { | ||||
|          this.applyChanges(); | ||||
|          this.flag.datePane = false; | ||||
|          console.log('step3: close the Date Panel'); | ||||
|          // console.log('step3: close the Date Panel'); | ||||
|       }, | ||||
|       resetPane() { | ||||
|          console.log('resetPane'); | ||||
|          // console.log('resetPane'); | ||||
|          this.flag.suggestPane = false; | ||||
|          this.flag.editPane = false; | ||||
|          this.flag.datePane = false; | ||||
| @@ -446,15 +438,15 @@ export default { | ||||
|       afterLastPaneAction(params) { | ||||
|          this.initForm(); | ||||
|          if (this.forceRedirect) { | ||||
|             console.log("redirect to backUrl"); | ||||
|             // console.log("redirect to backUrl"); | ||||
|             window.location.assign(this.context.backUrl); | ||||
|          } else { | ||||
|             console.log("don't redirect"); | ||||
|             // console.log("don't redirect"); | ||||
|             this.resetPane(); | ||||
|             if (!this.context.edit) { | ||||
|                this.context.edit = true; | ||||
|                this.context.addressId = params.addressId; | ||||
|                console.log("context is now edit, with address", params.addressId); | ||||
|                // console.log("context is now edit, with address", params.addressId); | ||||
|             } | ||||
|          } | ||||
|       }, | ||||
| @@ -490,7 +482,7 @@ export default { | ||||
|                if (this.flag.datePane === true) { | ||||
|                   this.flag.datePane = false; | ||||
|                } | ||||
|                console.log('step2: open the Edit panel'); | ||||
|                // console.log('step2: open the Edit panel'); | ||||
|                this.flag.editPane = true; | ||||
|                this.flag.loading = false; | ||||
|                resolve() | ||||
| @@ -533,7 +525,7 @@ export default { | ||||
|       *   Make form ready for new changes | ||||
|       */ | ||||
|       initForm() { | ||||
|          console.log('init form'); | ||||
|          // console.log('init form'); | ||||
|  | ||||
|          this.entity.loaded.addresses = []; | ||||
|          this.entity.loaded.cities = []; | ||||
| @@ -558,7 +550,7 @@ export default { | ||||
|  | ||||
|          this.entity.selected.writeNew.address = this.context.edit; | ||||
|          this.entity.selected.writeNew.postcode = this.context.edit; | ||||
|          console.log('!! just set writeNew.postcode to', this.entity.selected.writeNew.postcode); | ||||
|          // console.log('!! just set writeNew.postcode to', this.entity.selected.writeNew.postcode); | ||||
|       }, | ||||
|  | ||||
|       /* | ||||
| @@ -568,7 +560,7 @@ export default { | ||||
|       */ | ||||
|       applyChanges() | ||||
|       { | ||||
|          console.log('apply changes'); | ||||
|          // console.log('apply changes'); | ||||
|  | ||||
|          let newAddress = { | ||||
|             'isNoAddress': this.entity.selected.isNoAddress, | ||||
| @@ -598,13 +590,13 @@ export default { | ||||
|  | ||||
|          // add the address reference, if any | ||||
|          if (this.entity.selected.address.addressReference !== undefined) { | ||||
|              newAddress = Object.assign(newAddress, { | ||||
|                  'addressReference': this.entity.selected.address.addressReference | ||||
|              }); | ||||
|             newAddress = Object.assign(newAddress, { | ||||
|                'addressReference': this.entity.selected.address.addressReference | ||||
|             }); | ||||
|          } | ||||
|  | ||||
|          if (this.validFrom) { | ||||
|             console.log('add validFrom in fetch body', this.entity.selected.valid.from); | ||||
|             // console.log('add validFrom in fetch body', this.entity.selected.valid.from); | ||||
|             newAddress = Object.assign(newAddress, { | ||||
|                'validFrom': { | ||||
|                   datetime: `${this.entity.selected.valid.from.toISOString().split('T')[0]}T00:00:00+0100` | ||||
| @@ -612,7 +604,7 @@ export default { | ||||
|             }); | ||||
|          } | ||||
|          if (this.validTo && null !== this.entity.selected.valid.to) { | ||||
|             console.log('add validTo in fetch body', this.entity.selected.valid.to); | ||||
|             // console.log('add validTo in fetch body', this.entity.selected.valid.to); | ||||
|             newAddress = Object.assign(newAddress, { | ||||
|                'validTo': { | ||||
|                   datetime: `${this.entity.selected.valid.to.toISOString().split('T')[0]}T00:00:00+0100` | ||||
| @@ -624,7 +616,7 @@ export default { | ||||
|             newPostcode = Object.assign(newPostcode, { | ||||
|                'country': {'id': this.entity.selected.country.id }, | ||||
|             });//TODO why not assign postcodeBody here = Object.assign(postcodeBody, {'origin': 3}); ? | ||||
|             console.log('writeNew postcode is true! newPostcode: ', newPostcode); | ||||
|             // console.log('writeNew postcode is true! newPostcode: ', newPostcode); | ||||
|             newAddress = Object.assign(newAddress, { | ||||
|                'newPostcode': newPostcode | ||||
|             }); | ||||
| @@ -649,17 +641,17 @@ export default { | ||||
|       */ | ||||
|       addNewAddress(payload) | ||||
|       { | ||||
|          console.log('addNewAddress', payload); | ||||
|          // console.log('addNewAddress', payload); | ||||
|          this.flag.loading = true; | ||||
|  | ||||
|          if ('newPostcode' in payload) { | ||||
|  | ||||
|             let postcodeBody = payload.newPostcode; | ||||
|             postcodeBody = Object.assign(postcodeBody, {'origin': 3}); | ||||
|             console.log('juste before post new postcode', postcodeBody); | ||||
|             // console.log('juste before post new postcode', postcodeBody); | ||||
|             return postPostalCode(postcodeBody) | ||||
|                .then(postalCode =>  { | ||||
|                   console.log('new postcode created', postalCode.id); | ||||
|                   // console.log('new postcode created', postalCode.id); | ||||
|                   payload.postcode = {'id': postalCode.id }; | ||||
|                   return this.postNewAddress(payload); | ||||
|                }); | ||||
| @@ -671,15 +663,15 @@ export default { | ||||
|  | ||||
|       postNewAddress(payload) | ||||
|       { | ||||
|          console.log('postNewAddress', payload); | ||||
|          // console.log('postNewAddress', payload); | ||||
|          return postAddress(payload) | ||||
|             .then(address => new Promise((resolve, reject) => { | ||||
|                this.entity.address = address; | ||||
|                this.flag.loading = false; | ||||
|                this.flag.success = true; | ||||
|                resolve({ | ||||
|                  address, | ||||
|                  targetOrigin: this.context.target, | ||||
|                address, | ||||
|                targetOrigin: this.context.target, | ||||
|                  // for "legacy" use: | ||||
|                   target: this.context.target.name, | ||||
|                   targetId: this.context.target.id, | ||||
| @@ -708,10 +700,10 @@ export default { | ||||
|             let postcodeBody = payload.newAddress.newPostcode; | ||||
|             postcodeBody = Object.assign(postcodeBody, {'origin': 3}); | ||||
|  | ||||
|             console.log('juste before post new postcode', postcodeBody); | ||||
|             // console.log('juste before post new postcode', postcodeBody); | ||||
|             return postPostalCode(postcodeBody) | ||||
|                .then(postalCode => { | ||||
|                   console.log('new postcode created', postalCode.id); | ||||
|                   // console.log('new postcode created', postalCode.id); | ||||
|                   payload.newAddress.postcode = {'id': postalCode.id }; | ||||
|                   return this.patchExistingAddress(payload); | ||||
|                }); | ||||
| @@ -722,15 +714,15 @@ export default { | ||||
|       }, | ||||
|  | ||||
|       patchExistingAddress(payload) { | ||||
|          console.log('patchExistingAddress', payload); | ||||
|          // console.log('patchExistingAddress', payload); | ||||
|          return patchAddress(payload.addressId, payload.newAddress) | ||||
|             .then(address => new Promise((resolve, reject) => { | ||||
|                   this.entity.address = address; | ||||
|                   this.flag.loading = false; | ||||
|                   this.flag.success = true; | ||||
|                   return resolve({ | ||||
|                     address, | ||||
|                     targetOrigin: this.context.target, | ||||
|                   address, | ||||
|                   targetOrigin: this.context.target, | ||||
|                     // for "legacy" use: | ||||
|                      target: this.context.target.name, | ||||
|                      targetId: this.context.target.id, | ||||
| @@ -744,7 +736,7 @@ export default { | ||||
|             }); | ||||
|       }, | ||||
|  | ||||
|      /** | ||||
|       /** | ||||
|       * | ||||
|       * Called when the event pick-address is emitted, which is, by the way, | ||||
|       * called when an address suggestion is picked. | ||||
| @@ -752,21 +744,21 @@ export default { | ||||
|       * @param address the address selected | ||||
|       */ | ||||
|       pickAddress(address) { | ||||
|          console.log('pickAddress', address); | ||||
|          // console.log('pickAddress', address); | ||||
|          duplicateAddress(address).then(newAddress => { | ||||
|            this.entity.address = newAddress; | ||||
|            this.flag.loading = false; | ||||
|            this.flag.success = true; | ||||
|            let payload = { | ||||
|              address: newAddress, | ||||
|              targetOrigin: this.context.target, | ||||
|              // for "legacy" use: | ||||
|              target: this.context.target.name, | ||||
|              targetId: this.context.target.id, | ||||
|              addressId: this.entity.address.address_id | ||||
|            }; | ||||
|            this.addressChangedCallback(payload); | ||||
|            this.closeSuggestPane(); | ||||
|             this.entity.address = newAddress; | ||||
|             this.flag.loading = false; | ||||
|             this.flag.success = true; | ||||
|             let payload = { | ||||
|                address: newAddress, | ||||
|                targetOrigin: this.context.target, | ||||
|                // for "legacy" use: | ||||
|                target: this.context.target.name, | ||||
|                targetId: this.context.target.id, | ||||
|                addressId: this.entity.address.address_id | ||||
|             }; | ||||
|             this.addressChangedCallback(payload); | ||||
|             this.closeSuggestPane(); | ||||
|          }); | ||||
|       } | ||||
|    } | ||||
|   | ||||
| @@ -110,15 +110,15 @@ export default { | ||||
|          ) | ||||
|          // filter persons appearing twice in requestor and resources | ||||
|          .filter( | ||||
|              (e, index, suggested) => { | ||||
|                for (let i = 0; i < suggested.length; i = i+1) { | ||||
|                  if (i < index && e.id === suggested[i].id) { | ||||
|                    return false | ||||
|                  } | ||||
|             (e, index, suggested) => { | ||||
|             for (let i = 0; i < suggested.length; i = i+1) { | ||||
|                if (i < index && e.id === suggested[i].id) { | ||||
|                   return false | ||||
|                } | ||||
|             } | ||||
|  | ||||
|                return true; | ||||
|              } | ||||
|             return true; | ||||
|             } | ||||
|          ) | ||||
|       }), | ||||
|       ...mapGetters([ | ||||
|   | ||||
| @@ -108,7 +108,7 @@ export default { | ||||
|    }, | ||||
|    methods: { | ||||
|       saveFormOnTheFly(payload) { | ||||
|          console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data); | ||||
|          // console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data); | ||||
|          payload.target = 'participation'; | ||||
|          this.$store.dispatch('patchOnTheFly', payload) | ||||
|             .catch(({name, violations}) => { | ||||
|   | ||||
| @@ -58,7 +58,7 @@ export default { | ||||
|    }, | ||||
|    methods: { | ||||
|       saveFormOnTheFly(payload) { | ||||
|          console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data); | ||||
|          // console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data); | ||||
|          payload.target = 'resource'; | ||||
|          this.$store.dispatch('patchOnTheFly', payload) | ||||
|             .catch(({name, violations}) => { | ||||
|   | ||||
| @@ -5,8 +5,6 @@ import { getAccompanyingCourse, | ||||
|    getReferrersSuggested, | ||||
|    getUsers, | ||||
| } from '../api'; | ||||
| import { patchPerson } from "ChillPersonAssets/vuejs/_api/OnTheFly"; | ||||
| import { patchThirdparty } from "ChillThirdPartyAssets/vuejs/_api/OnTheFly"; | ||||
| import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods'; | ||||
|  | ||||
|  | ||||
| @@ -17,7 +15,7 @@ let scopesPromise = fetchScopes(); | ||||
| let accompanyingCoursePromise = getAccompanyingCourse(id); | ||||
|  | ||||
| let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|   .then(([scopes, accompanyingCourse]) => new Promise((resolve, reject) => { | ||||
|    .then(([scopes, accompanyingCourse]) => new Promise((resolve, reject) => { | ||||
|  | ||||
|       const store = createStore({ | ||||
|          strict: debug, | ||||
| @@ -121,7 +119,7 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|                state.accompanyingCourse.resources.push(resource); | ||||
|             }, | ||||
|             updatePerson(state, payload) { | ||||
|                console.log('### mutation: updatePerson', payload); | ||||
|                // console.log('### mutation: updatePerson', payload); | ||||
|                let i = null; | ||||
|                switch (payload.target) { | ||||
|                   case 'participation': | ||||
| @@ -138,7 +136,7 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|                } | ||||
|             }, | ||||
|             updateThirdparty(state, payload) { | ||||
|                console.log('### mutation: updateThirdparty', payload); | ||||
|                // console.log('### mutation: updateThirdparty', payload); | ||||
|                let i = null; | ||||
|                switch (payload.target) { | ||||
|                   case 'requestor': | ||||
| @@ -166,11 +164,11 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|                state.accompanyingCourse.initialComment = comment; | ||||
|             }, | ||||
|             updateSocialIssues(state, value) { | ||||
|                console.log('updateSocialIssues', value); | ||||
|                // console.log('updateSocialIssues', value); | ||||
|                state.accompanyingCourse.socialIssues = value; | ||||
|             }, | ||||
|             refreshSocialIssues(state, issues) { | ||||
|                console.log('refreshSocialIssues', issues); | ||||
|                // console.log('refreshSocialIssues', issues); | ||||
|                state.accompanyingCourse.socialIssues = issues; | ||||
|             }, | ||||
|             updateOrigin(state, value) { | ||||
| @@ -355,39 +353,39 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|             }, | ||||
|             /** | ||||
|              * On The Fly | ||||
|              * ? should be into the dedicated component, no ? JF | ||||
|              * I think it's better to leave it here, because this action is dispatched in 3 different components, | ||||
|              * so lots of code repitition if we would put this in the components themselves. | ||||
|              */ | ||||
|             patchOnTheFly({ commit }, payload) { | ||||
|                // TODO should be into the dedicated component, no ? JF | ||||
|                console.log('## action: patch OnTheFly', payload); | ||||
|                let body = { type: payload.type }; | ||||
|                const id = payload.data.id; | ||||
|                let url = `/api/1.0/person/person/${id}.json`; | ||||
|                let mutation = "updatePerson"; | ||||
|  | ||||
|                if (payload.type === 'person') { | ||||
|                   body.firstName = payload.data.firstName; | ||||
|                   body.lastName = payload.data.lastName; | ||||
|                   if (payload.data.birthdate !== null) { body.birthdate = payload.data.birthdate; } | ||||
|                   body.phonenumber = payload.data.phonenumber; | ||||
|                   body.mobilenumber = payload.data.mobilenumber; | ||||
|                   body.gender = payload.data.gender; | ||||
|                   console.log('id', payload.data.id, 'and body', body); | ||||
|                   patchPerson(payload.data.id, body) | ||||
|                       .then(person => new Promise((resolve, reject) => { | ||||
|                          console.log('patch person', person); | ||||
|                          commit('updatePerson', { target: payload.target, person: person }); | ||||
|                          resolve(); | ||||
|                       })); | ||||
|                } | ||||
|                else if (payload.type === 'thirdparty') { | ||||
|                      body.phonenumber = payload.data.phonenumber; | ||||
|                      body.mobilenumber = payload.data.mobilenumber; | ||||
|                      body.gender = payload.data.gender; | ||||
|                } else if (payload.type === 'thirdparty') { | ||||
|                   body.name = payload.data.text; | ||||
|                   body.email = payload.data.email; | ||||
|                   body.telephone = payload.data.phonenumber; | ||||
|                   body.address = { id: payload.data.address.address_id }; | ||||
|                   console.log('id', payload.data.id, 'and body', body); | ||||
|                   patchThirdparty(payload.data.id, body) | ||||
|                       .then(thirdparty => new Promise((resolve, reject) => { | ||||
|                           console.log('patch thirdparty', thirdparty); | ||||
|                           commit('updateThirdparty', { target: payload.target, thirdparty: thirdparty }); | ||||
|                           resolve(); | ||||
|                   })); | ||||
|  | ||||
|                   url = `/api/1.0/thirdparty/thirdparty/${id}.json`; | ||||
|                   mutation = 'updateThirdparty' | ||||
|                } | ||||
|                makeFetch('PATCH', url, body) | ||||
|                   .then((response) => { | ||||
|                      commit(mutation, {target: payload.target, thirdparty: response}); | ||||
|                   }) | ||||
|                   .catch((error) => { | ||||
|                      throw error; | ||||
|                   }) | ||||
|             }, | ||||
|             /** | ||||
|              * Update accompanying course intensity/emergency/confidentiality | ||||
| @@ -482,23 +480,22 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|                let checkedScopesIds = scopes.map(scope => scope.id); | ||||
|                let removedScopesIds = currentServerScopesIds.filter(id => !checkedScopesIds.includes(id)); | ||||
|                let addedScopesIds = checkedScopesIds.filter(id => !currentServerScopesIds.includes(id)); | ||||
|                let lengthAfterOperation = currentServerScopesIds.length + addedScopesIds.length | ||||
|                  - removedScopesIds.length; | ||||
|                let lengthAfterOperation = currentServerScopesIds.length + addedScopesIds.length - removedScopesIds.length; | ||||
|  | ||||
|                return dispatch('updateScopes', { | ||||
|                   addedScopesIds, removedScopesIds | ||||
|                }) | ||||
|                  .catch(error => { | ||||
|                .catch(error => { | ||||
|                   throw error; | ||||
|                }) | ||||
|                  .then(() => { | ||||
|                .then(() => { | ||||
|                   // warning: when the operation of dispatch are too slow, the user may check / uncheck before | ||||
|                   // the end of the synchronisation with the server (done by dispatch operation). Then, it leads to | ||||
|                   // check/uncheck in the UI. I do not know of to avoid it. | ||||
|                   commit('setScopes', scopes); | ||||
|                   return Promise.resolve(); | ||||
|                }) | ||||
|                  .then(() => { | ||||
|                .then(() => { | ||||
|                   return dispatch('fetchReferrersSuggested'); | ||||
|                }); | ||||
|                /* | ||||
| @@ -624,10 +621,10 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|                let users = await getReferrersSuggested(state.accompanyingCourse); | ||||
|                commit('setReferrersSuggested', users); | ||||
|                if ( | ||||
|                  null === state.accompanyingCourse.user | ||||
|                  && !state.accompanyingCourse.confidential | ||||
|                  && !state.accompanyingCourse.step === 'DRAFT' | ||||
|                  && users.length === 1 | ||||
|                null === state.accompanyingCourse.user | ||||
|                && !state.accompanyingCourse.confidential | ||||
|                && !state.accompanyingCourse.step === 'DRAFT' | ||||
|                && users.length === 1 | ||||
|                ) { | ||||
|                   // set the user if unique | ||||
|                   commit('updateReferrer', users[0]); | ||||
| @@ -646,11 +643,11 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise]) | ||||
|                   "object": { | ||||
|                      "type": "accompanying_period", | ||||
|                      "id": id | ||||
|                    }, | ||||
|                    "class": "Chill\\PersonBundle\\Entity\\AccompanyingPeriod", | ||||
|                    "roles": [ | ||||
|                       "CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_CONFIDENTIAL" | ||||
|                      ] | ||||
|                   }, | ||||
|                   "class": "Chill\\PersonBundle\\Entity\\AccompanyingPeriod", | ||||
|                   "roles": [ | ||||
|                   "CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_CONFIDENTIAL" | ||||
|                   ] | ||||
|                } | ||||
|  | ||||
|                return makeFetch('POST', url, body) | ||||
|   | ||||
| @@ -1,51 +1,51 @@ | ||||
|  | ||||
| /* | ||||
| * Endpoint chill_api_single_person_address | ||||
| * method POST, post Person instance | ||||
| * | ||||
| *  @id     integer - id of Person | ||||
| *  @body   Object - dictionary with changes to post | ||||
| */ | ||||
| const postAddressToPerson = (personId, addressId) => { | ||||
|     //console.log(personId); | ||||
|     //console.log(addressId); | ||||
|     const body = { | ||||
|         'id': addressId | ||||
|     }; | ||||
|     const url = `/api/1.0/person/person/${personId}/address.json` | ||||
|     return fetch(url, { | ||||
|         method: 'POST', | ||||
|         headers: {'Content-Type': 'application/json;charset=utf-8'}, | ||||
|         body: JSON.stringify(body) | ||||
|     }) | ||||
|         .then(response => { | ||||
|             if (response.ok) { return response.json(); } | ||||
|             throw Error('Error with request resource response'); | ||||
|         }); | ||||
| }; | ||||
| // /* | ||||
| // * Endpoint chill_api_single_person_address | ||||
| // * method POST, post Person instance | ||||
| // * | ||||
| // *  @id     integer - id of Person | ||||
| // *  @body   Object - dictionary with changes to post | ||||
| // */ | ||||
| // const postAddressToPerson = (personId, addressId) => { | ||||
| //     //console.log(personId); | ||||
| //     //console.log(addressId); | ||||
| //     const body = { | ||||
| //         'id': addressId | ||||
| //     }; | ||||
| //     const url = `/api/1.0/person/person/${personId}/address.json` | ||||
| //     return fetch(url, { | ||||
| //         method: 'POST', | ||||
| //         headers: {'Content-Type': 'application/json;charset=utf-8'}, | ||||
| //         body: JSON.stringify(body) | ||||
| //     }) | ||||
| //         .then(response => { | ||||
| //             if (response.ok) { return response.json(); } | ||||
| //             throw Error('Error with request resource response'); | ||||
| //         }); | ||||
| // }; | ||||
|  | ||||
| /* | ||||
| * Endpoint household | ||||
| * method POST, post Household instance | ||||
| * | ||||
| *  @id     integer - id of household | ||||
| *  @body   Object - dictionary with changes to post | ||||
| */ | ||||
| const postAddressToHousehold = (householdId, addressId) => { | ||||
|     const body = { | ||||
|         'id': addressId | ||||
|     }; | ||||
|     const url = `/api/1.0/person/household/${householdId}/address.json` | ||||
|     return fetch(url, { | ||||
|         method: 'POST', | ||||
|         headers: {'Content-Type': 'application/json;charset=utf-8'}, | ||||
|         body: JSON.stringify(body) | ||||
|     }) | ||||
|         .then(response => { | ||||
|             if (response.ok) { return response.json(); } | ||||
|             throw Error('Error with request resource response'); | ||||
|         }); | ||||
| }; | ||||
| // /* | ||||
| // * Endpoint household | ||||
| // * method POST, post Household instance | ||||
| // * | ||||
| // *  @id     integer - id of household | ||||
| // *  @body   Object - dictionary with changes to post | ||||
| // */ | ||||
| // const postAddressToHousehold = (householdId, addressId) => { | ||||
| //     const body = { | ||||
| //         'id': addressId | ||||
| //     }; | ||||
| //     const url = `/api/1.0/person/household/${householdId}/address.json` | ||||
| //     return fetch(url, { | ||||
| //         method: 'POST', | ||||
| //         headers: {'Content-Type': 'application/json;charset=utf-8'}, | ||||
| //         body: JSON.stringify(body) | ||||
| //     }) | ||||
| //         .then(response => { | ||||
| //             if (response.ok) { return response.json(); } | ||||
| //             throw Error('Error with request resource response'); | ||||
| //         }); | ||||
| // }; | ||||
|  | ||||
|  | ||||
| export { postAddressToPerson, postAddressToHousehold }; | ||||
| // export { postAddressToPerson, postAddressToHousehold }; | ||||
|   | ||||
| @@ -3,16 +3,16 @@ | ||||
| */ | ||||
| const parametersToString = ({ query, options }) => { | ||||
|    let types =''; | ||||
|    options.type.forEach(function(type) {  | ||||
|    options.type.forEach(function(type) { | ||||
|       types += '&type[]=' + type; | ||||
|    });  | ||||
|    }); | ||||
|    return 'q=' + query + types; | ||||
| }; | ||||
|  | ||||
| /*  | ||||
| /* | ||||
| * Endpoint chill_person_search | ||||
| * method GET, get a list of persons | ||||
| *  | ||||
| * | ||||
| *  @query string - the query to search for | ||||
| */ | ||||
| const searchPersons =  ({ query, options }) => { | ||||
| @@ -25,10 +25,10 @@ const searchPersons =  ({ query, options }) => { | ||||
|       }); | ||||
| }; | ||||
|  | ||||
| /*  | ||||
| /* | ||||
| * Endpoint v.2 chill_main_search_global | ||||
| * method GET, get a list of persons and thirdparty | ||||
| *  | ||||
| * | ||||
| *  NOTE: this is a temporary WIP endpoint, return inconsistent random results | ||||
| *  @query string - the query to search for | ||||
| */ | ||||
|   | ||||
| @@ -1,53 +1,53 @@ | ||||
| /* | ||||
| * GET a person by id | ||||
| */ | ||||
| const getPerson = (id) => { | ||||
|    const url = `/api/1.0/person/person/${id}.json`; | ||||
|    return fetch(url) | ||||
|       .then(response => { | ||||
|          if (response.ok) { return response.json(); } | ||||
|          throw Error('Error with request resource response'); | ||||
|       }); | ||||
| }; | ||||
| // const getPerson = (id) => { | ||||
| //    const url = `/api/1.0/person/person/${id}.json`; | ||||
| //    return fetch(url) | ||||
| //       .then(response => { | ||||
| //          if (response.ok) { return response.json(); } | ||||
| //          throw Error('Error with request resource response'); | ||||
| //       }); | ||||
| // }; | ||||
|  | ||||
| /* | ||||
| * POST a new person | ||||
| */ | ||||
| const postPerson = (body) => { | ||||
|    const url = `/api/1.0/person/person.json`; | ||||
|    return fetch(url, { | ||||
|          method: 'POST', | ||||
|          headers: { | ||||
|            'Content-Type': 'application/json;charset=utf-8' | ||||
|          }, | ||||
|          body: JSON.stringify(body) | ||||
|       }) | ||||
|       .then(response => { | ||||
|          if (response.ok) { return response.json(); } | ||||
|          throw Error('Error with request resource response'); | ||||
|       }); | ||||
| }; | ||||
| // const postPerson = (body) => { | ||||
| //    const url = `/api/1.0/person/person.json`; | ||||
| //    return fetch(url, { | ||||
| //          method: 'POST', | ||||
| //          headers: { | ||||
| //          'Content-Type': 'application/json;charset=utf-8' | ||||
| //          }, | ||||
| //          body: JSON.stringify(body) | ||||
| //       }) | ||||
| //       .then(response => { | ||||
| //          if (response.ok) { return response.json(); } | ||||
| //          throw Error('Error with request resource response'); | ||||
| //       }); | ||||
| // }; | ||||
|  | ||||
| /* | ||||
| * PATCH an existing person | ||||
| */ | ||||
| const patchPerson = (id, body) => { | ||||
|     const url = `/api/1.0/person/person/${id}.json`; | ||||
|     return fetch(url, { | ||||
|         method: 'PATCH', | ||||
|         headers: { | ||||
|             'Content-Type': 'application/json;charset=utf-8' | ||||
|         }, | ||||
|         body: JSON.stringify(body) | ||||
|     }) | ||||
|         .then(response => { | ||||
|             if (response.ok) { return response.json(); } | ||||
|             throw Error('Error with request resource response'); | ||||
|         }); | ||||
| }; | ||||
| // const patchPerson = (id, body) => { | ||||
| //    const url = `/api/1.0/person/person/${id}.json`; | ||||
| //    return fetch(url, { | ||||
| //       method: 'PATCH', | ||||
| //       headers: { | ||||
| //          'Content-Type': 'application/json;charset=utf-8' | ||||
| //       }, | ||||
| //       body: JSON.stringify(body) | ||||
| //    }) | ||||
| //       .then(response => { | ||||
| //          if (response.ok) { return response.json(); } | ||||
| //          throw Error('Error with request resource response'); | ||||
| //       }); | ||||
| // }; | ||||
|  | ||||
| export { | ||||
|    getPerson, | ||||
|    postPerson, | ||||
|    patchPerson | ||||
|    // getPerson, | ||||
|    // postPerson, | ||||
|    // patchPerson | ||||
| }; | ||||
|   | ||||
| @@ -232,16 +232,16 @@ export default { | ||||
|       addPriorSuggestion() { | ||||
|          //console.log('addPriorSuggestion', this.hasPriorSuggestion); | ||||
|          if (this.hasPriorSuggestion) { | ||||
|             console.log('addPriorSuggestion',); | ||||
|             // console.log('addPriorSuggestion',); | ||||
|             this.suggested.unshift(this.priorSuggestion); | ||||
|             this.selected.unshift(this.priorSuggestion); | ||||
|  | ||||
|             console.log('reset priorSuggestion'); | ||||
|             // console.log('reset priorSuggestion'); | ||||
|             this.newPriorSuggestion(null); | ||||
|          } | ||||
|       }, | ||||
|       newPriorSuggestion(entity) { | ||||
|          console.log('newPriorSuggestion', entity); | ||||
|          // console.log('newPriorSuggestion', entity); | ||||
|          if (entity !== null) { | ||||
|             let suggestion = { | ||||
|                key: entity.type + entity.id, | ||||
| @@ -249,31 +249,30 @@ export default { | ||||
|                result: entity | ||||
|             } | ||||
|             this.search.priorSuggestion = suggestion; | ||||
|             console.log('search priorSuggestion', this.search.priorSuggestion); | ||||
|             // console.log('search priorSuggestion', this.search.priorSuggestion); | ||||
|          } else { | ||||
|             this.search.priorSuggestion = {}; | ||||
|          } | ||||
|       }, | ||||
|       saveFormOnTheFly({ type, data }) { | ||||
|          console.log('saveFormOnTheFly from addPersons, type', type, ', data', data); | ||||
|          // console.log('saveFormOnTheFly from addPersons, type', type, ', data', data); | ||||
|          if (type === 'person') { | ||||
|             console.log('type person with', data); | ||||
|             postPerson(data) | ||||
|                .then(person => new Promise((resolve, reject) => { | ||||
|                   console.log('onthefly create: post person', person); | ||||
|                   this.newPriorSuggestion(person); | ||||
|                   resolve(); | ||||
|                })); | ||||
|             const url = `/api/1.0/person/person.json`; | ||||
|          } | ||||
|          else if (type === 'thirdparty') { | ||||
|             console.log('type thirdparty with', data); | ||||
|             postThirdparty(data) | ||||
|                .then(thirdparty => new Promise((resolve, reject) => { | ||||
|                   console.log('onthefly create: post thirdparty', thirdparty); | ||||
|                   this.newPriorSuggestion(thirdparty); | ||||
|                   resolve(); | ||||
|                })); | ||||
|             const url = `/api/1.0/thirdparty/thirdparty.json`; | ||||
|          } | ||||
|          makeFetch('POST', url, data) | ||||
|             .then((response) => { | ||||
|                this.newPriorSuggestion(response); | ||||
|             }) | ||||
|             .catch(({name, violations}) => { | ||||
|                if (name === 'ValidationException' || name === 'AccessException') { | ||||
|                   violations.forEach((violation) => this.$toast.open({message: violation})); | ||||
|                } else { | ||||
|                   this.$toast.open({message: 'An error occurred'}) | ||||
|                } | ||||
|             }); | ||||
|       } | ||||
|    }, | ||||
| } | ||||
|   | ||||
| @@ -76,6 +76,7 @@ | ||||
|  | ||||
| <script> | ||||
| import { getPerson } from '../../_api/OnTheFly'; | ||||
| import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods'; | ||||
| import PersonRenderBox from '../Entity/PersonRenderBox.vue'; | ||||
|  | ||||
| export default { | ||||
| @@ -156,12 +157,18 @@ export default { | ||||
|    }, | ||||
|    methods: { | ||||
|       loadData() { | ||||
|          getPerson(this.id) | ||||
|             .then(person => new Promise((resolve, reject) => { | ||||
|                this.person = person; | ||||
|                console.log('get person', this.person); | ||||
|                resolve(); | ||||
|          })); | ||||
|          const url = `/api/1.0/person/person/${this.id}.json`; | ||||
|          makeFetch('GET', url) | ||||
|             .then((response) => { | ||||
|                this.person = response; | ||||
|             }) | ||||
|             .catch(({name, violations}) => { | ||||
|                if (name === 'ValidationException' || name === 'AccessException') { | ||||
|                   violations.forEach((violation) => this.$toast.open({message: violation})); | ||||
|                } else { | ||||
|                   this.$toast.open({message: 'An error occurred'}) | ||||
|                } | ||||
|             }); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|   | ||||
| @@ -1,55 +1,55 @@ | ||||
| /* | ||||
| * GET a thirdparty by id | ||||
| */ | ||||
| const getThirdparty = (id) => { | ||||
|    const url = `/api/1.0/thirdparty/thirdparty/${id}.json`; | ||||
|    return fetch(url) | ||||
|       .then(response => { | ||||
|          if (response.ok) {  | ||||
|              return response.json();  | ||||
|             } | ||||
|          throw Error('Error with request resource response'); | ||||
|       }); | ||||
| }; | ||||
| // const getThirdparty = (id) => { | ||||
| //    const url = `/api/1.0/thirdparty/thirdparty/${id}.json`; | ||||
| //    return fetch(url) | ||||
| //       .then(response => { | ||||
| //          if (response.ok) {  | ||||
| //              return response.json();  | ||||
| //             } | ||||
| //          throw Error('Error with request resource response'); | ||||
| //       }); | ||||
| // }; | ||||
|  | ||||
| /* | ||||
| * POST a new thirdparty | ||||
| */ | ||||
| const postThirdparty = (body) => { | ||||
|    const url = `/api/1.0/thirdparty/thirdparty.json`; | ||||
|    return fetch(url, { | ||||
|          method: 'POST', | ||||
|          headers: { | ||||
|            'Content-Type': 'application/json;charset=utf-8' | ||||
|          }, | ||||
|          body: JSON.stringify(body) | ||||
|       }) | ||||
|       .then(response => { | ||||
|          if (response.ok) { return response.json(); } | ||||
|          throw Error('Error with request resource response'); | ||||
|       }); | ||||
| }; | ||||
| // const postThirdparty = (body) => { | ||||
| //    const url = `/api/1.0/thirdparty/thirdparty.json`; | ||||
| //    return fetch(url, { | ||||
| //          method: 'POST', | ||||
| //          headers: { | ||||
| //            'Content-Type': 'application/json;charset=utf-8' | ||||
| //          }, | ||||
| //          body: JSON.stringify(body) | ||||
| //       }) | ||||
| //       .then(response => { | ||||
| //          if (response.ok) { return response.json(); } | ||||
| //          throw Error('Error with request resource response'); | ||||
| //       }); | ||||
| // }; | ||||
|  | ||||
| /* | ||||
| * PATCH an existing thirdparty | ||||
| */ | ||||
| const patchThirdparty = (id, body) => { | ||||
|     const url = `/api/1.0/thirdparty/thirdparty/${id}.json`; | ||||
|     return fetch(url, { | ||||
|         method: 'PATCH', | ||||
|         headers: { | ||||
|             'Content-Type': 'application/json;charset=utf-8' | ||||
|         }, | ||||
|         body: JSON.stringify(body) | ||||
|     }) | ||||
|         .then(response => { | ||||
|             if (response.ok) { return response.json(); } | ||||
|             throw Error('Error with request resource response'); | ||||
|         }); | ||||
| }; | ||||
| // const patchThirdparty = (id, body) => { | ||||
| //     const url = `/api/1.0/thirdparty/thirdparty/${id}.json`; | ||||
| //     return fetch(url, { | ||||
| //         method: 'PATCH', | ||||
| //         headers: { | ||||
| //             'Content-Type': 'application/json;charset=utf-8' | ||||
| //         }, | ||||
| //         body: JSON.stringify(body) | ||||
| //     }) | ||||
| //         .then(response => { | ||||
| //             if (response.ok) { return response.json(); } | ||||
| //             throw Error('Error with request resource response'); | ||||
| //         }); | ||||
| // }; | ||||
|  | ||||
| export { | ||||
|    getThirdparty, | ||||
|    postThirdparty, | ||||
|    patchThirdparty | ||||
|    // getThirdparty, | ||||
|    // postThirdparty, | ||||
|    // patchThirdparty | ||||
| }; | ||||
|   | ||||
| @@ -94,7 +94,7 @@ | ||||
| <script> | ||||
| import ThirdPartyRenderBox from '../Entity/ThirdPartyRenderBox.vue'; | ||||
| import AddAddress from 'ChillMainAssets/vuejs/Address/components/AddAddress'; | ||||
| import { getThirdparty } from '../../_api/OnTheFly'; | ||||
| import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods' | ||||
|  | ||||
| const i18n = { | ||||
|     messages: { | ||||
| @@ -165,38 +165,58 @@ export default { | ||||
|              context.addressId = this.thirdparty.address.address_id; | ||||
|              context.edit = true; | ||||
|          } | ||||
|          console.log('context', context); | ||||
|          // console.log('context', context); | ||||
|          //this.context = context; <-- | ||||
|          return context; | ||||
|       }, | ||||
|    }, | ||||
|    methods: { | ||||
|       loadData(){ | ||||
|          getThirdparty(this.id).then(thirdparty => new Promise((resolve, reject) => { | ||||
|             this.thirdparty = thirdparty; | ||||
|             this.thirdparty.kind = thirdparty.kind; | ||||
|             console.log('get thirdparty', thirdparty); | ||||
|             if (this.action !== 'show') { | ||||
|                 if (thirdparty.address !== null) { | ||||
|                     // bof! we force getInitialAddress because addressId not available when mounted | ||||
|                     this.$refs.addAddress.getInitialAddress(thirdparty.address.address_id); | ||||
|                 } | ||||
|             } | ||||
|             resolve(); | ||||
|          })); | ||||
|          const url = `/api/1.0/thirdparty/thirdparty/${this.id}.json`; | ||||
|          makeFetch('GET', url) | ||||
|             .then((response) => { | ||||
|                console.log(response); | ||||
|                this.thirdparty = response; | ||||
|                this.thirdparty.kind = response.kind | ||||
|                   if (this.action !== 'show') { | ||||
|                      if (response.address !== null) { | ||||
|                         // bof! we force getInitialAddress because addressId not available when mounted | ||||
|                         this.$refs.addAddress.getInitialAddress(response.address.address_id); | ||||
|                      } | ||||
|                   } | ||||
|             }) | ||||
|             .catch(({name, violations}) => { | ||||
|                if (name === 'ValidationException' || name === 'AccessException') { | ||||
|                   violations.forEach((violation) => this.$toast.open({message: violation})); | ||||
|                } else { | ||||
|                   this.$toast.open({message: 'An error occurred'}) | ||||
|                } | ||||
|             }); | ||||
|          // getThirdparty(this.id).then(thirdparty => new Promise((resolve, reject) => { | ||||
|          //    this.thirdparty = thirdparty; | ||||
|          //    this.thirdparty.kind = thirdparty.kind; | ||||
|          //    console.log('get thirdparty', thirdparty); | ||||
|          //    if (this.action !== 'show') { | ||||
|          //        if (thirdparty.address !== null) { | ||||
|          //            // bof! we force getInitialAddress because addressId not available when mounted | ||||
|          //            this.$refs.addAddress.getInitialAddress(thirdparty.address.address_id); | ||||
|          //        } | ||||
|          //    } | ||||
|          //    resolve(); | ||||
|          // })); | ||||
|       }, | ||||
|       submitAddress(payload) { | ||||
|          console.log('submitAddress', payload); | ||||
|          // console.log('submitAddress', payload); | ||||
|           if (typeof payload.addressId !== 'undefined') { // <-- | ||||
|               this.context.edit = true; | ||||
|               this.context.addressId = payload.addressId; // bof! use legacy and not legacy in payload | ||||
|               this.thirdparty.address = payload.address;  // <-- | ||||
|               console.log('switch address to edit mode', this.context); | ||||
|             //   console.log('switch address to edit mode', this.context); | ||||
|           } | ||||
|       } | ||||
|    }, | ||||
|    mounted() { | ||||
|        console.log('mounted', this.action); | ||||
|       //  console.log('mounted', this.action); | ||||
|       if (this.action !== 'create') { | ||||
|          this.loadData(); | ||||
|       } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user