mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 13:54:23 +00:00
adding endpoint for LocationType. fetch types and add form fields.
This commit is contained in:
parent
b418d13190
commit
4d4662a634
@ -24,8 +24,21 @@ const getLocations = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Load Location Types
|
||||||
|
*/
|
||||||
|
const getLocationTypes = () => {
|
||||||
|
const url = `/api/1.0/main/location-type.json`;
|
||||||
|
return fetch(url)
|
||||||
|
.then(response => {
|
||||||
|
if (response.ok) { return response.json(); }
|
||||||
|
throw Error('Error with request resource response');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
getSocialIssues,
|
getSocialIssues,
|
||||||
getSocialActionByIssue,
|
getSocialActionByIssue,
|
||||||
getLocations
|
getLocations,
|
||||||
|
getLocationTypes
|
||||||
};
|
};
|
||||||
|
@ -8,9 +8,11 @@
|
|||||||
|
|
||||||
<VueMultiselect
|
<VueMultiselect
|
||||||
name="selectLocation"
|
name="selectLocation"
|
||||||
|
id="selectLocation"
|
||||||
track-by="id"
|
track-by="id"
|
||||||
:multiple="false"
|
:multiple="false"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
|
open-direction="top"
|
||||||
placeholder="Choisissez une localisation"
|
placeholder="Choisissez une localisation"
|
||||||
label="name"
|
label="name"
|
||||||
:custom-label="customLabel"
|
:custom-label="customLabel"
|
||||||
|
@ -14,11 +14,9 @@
|
|||||||
@close="modal.showModal = false">
|
@close="modal.showModal = false">
|
||||||
|
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<h3 class="modal-title">Ajouter une nouvelle localisation</h3>
|
<h3 class="modal-title">Créer une nouvelle localisation</h3>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body>
|
<template v-slot:body>
|
||||||
* select type
|
|
||||||
* input name
|
|
||||||
|
|
||||||
<add-address
|
<add-address
|
||||||
:context="addAddress.context"
|
:context="addAddress.context"
|
||||||
@ -27,6 +25,21 @@
|
|||||||
ref="addAddress">
|
ref="addAddress">
|
||||||
</add-address>
|
</add-address>
|
||||||
|
|
||||||
|
<div class="form-floating mb-3">
|
||||||
|
<input class="form-control form-control-lg" id="name" v-model="inputName" placeholder="edit me" />
|
||||||
|
<label for="name">Nom</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-floating mb-3">
|
||||||
|
<select class="form-select form-select-lg" id="type" v-model="selectType">
|
||||||
|
<option selected disabled value="">Please select one</option>
|
||||||
|
<option v-for="ltype in locationTypes" :value="ltype.id">
|
||||||
|
{{ ltype.title.fr }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
<label>Type</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:footer>
|
<template v-slot:footer>
|
||||||
<button class="btn btn-save">Enregistrer</button>
|
<button class="btn btn-save">Enregistrer</button>
|
||||||
@ -39,7 +52,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import Modal from 'ChillMainAssets/vuejs/_components/Modal.vue';
|
import Modal from 'ChillMainAssets/vuejs/_components/Modal.vue';
|
||||||
import AddAddress from "ChillMainAssets/vuejs/Address/components/AddAddress.vue";
|
import AddAddress from "ChillMainAssets/vuejs/Address/components/AddAddress.vue";
|
||||||
import {mapState} from "vuex";
|
import { mapState } from "vuex";
|
||||||
|
import { getLocationTypes } from "../../api";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "NewLocation",
|
name: "NewLocation",
|
||||||
@ -49,6 +63,12 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
selected: {
|
||||||
|
type: {},
|
||||||
|
name: null,
|
||||||
|
addressId: null
|
||||||
|
},
|
||||||
|
locationTypes: [],
|
||||||
modal: {
|
modal: {
|
||||||
showModal: false,
|
showModal: false,
|
||||||
modalDialogClass: "modal-dialog-scrollable modal-xl"
|
modalDialogClass: "modal-dialog-scrollable modal-xl"
|
||||||
@ -72,9 +92,34 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['activity']),
|
...mapState(['activity']),
|
||||||
|
selectType: {
|
||||||
|
get() {
|
||||||
|
return this.selected.type;
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.selected.type = value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
inputName: {
|
||||||
|
get() {
|
||||||
|
return this.selected.name;
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.selected.name = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getLocationTypesList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getLocationTypesList() {
|
||||||
|
getLocationTypes().then(response => new Promise(resolve => {
|
||||||
|
console.log('getLocationTypes', response);
|
||||||
|
this.locationTypes = response.results;
|
||||||
|
resolve();
|
||||||
|
}))
|
||||||
|
},
|
||||||
openModal() {
|
openModal() {
|
||||||
this.modal.showModal = true;
|
this.modal.showModal = true;
|
||||||
},
|
},
|
||||||
|
@ -464,6 +464,27 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface,
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => \Chill\MainBundle\Entity\LocationType::class,
|
||||||
|
'name' => 'location_type',
|
||||||
|
'base_path' => '/api/1.0/main/location-type',
|
||||||
|
'base_role' => 'ROLE_USER',
|
||||||
|
'actions' => [
|
||||||
|
'_index' => [
|
||||||
|
'methods' => [
|
||||||
|
Request::METHOD_GET => true,
|
||||||
|
Request::METHOD_HEAD => true
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'_entity' => [
|
||||||
|
'methods' => [
|
||||||
|
Request::METHOD_GET => true,
|
||||||
|
Request::METHOD_HEAD => true,
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
@ -548,3 +548,14 @@ paths:
|
|||||||
description: "ok"
|
description: "ok"
|
||||||
401:
|
401:
|
||||||
description: "Unauthorized"
|
description: "Unauthorized"
|
||||||
|
|
||||||
|
/1.0/main/location-type.json:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- location
|
||||||
|
summary: Return a list of location types
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: "ok"
|
||||||
|
401:
|
||||||
|
description: "Unauthorized"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user