changer scientifiques en données

front
Gwenael PLANCHON 1 year ago
parent b2c1b8ccc3
commit fd9c4082bf

@ -8,7 +8,7 @@ export default{
return { return {
endpoint:this.$route.query.endpoint ?? "thematiques", //endpoint de l'api a recuperer endpoint:this.$route.query.endpoint ?? "thematiques", //endpoint de l'api a recuperer
//données obtenues par l'api //données obtenues par l'api
scientifiques: [], donnees: [],
page:0, page:0,
REST_API:REST_API, REST_API:REST_API,
@ -26,20 +26,20 @@ export default{
methods:{ methods:{
rafraichirEndpoint(){ rafraichirEndpoint(){
this.self=`${REST_API}/${this.endpoint}?page=${this.page}` this.self=`${REST_API}/${this.endpoint}?page=${this.page}`
this.getScientifiques(this.self) this.getdonnees(this.self)
}, },
getScientifiques(url){ getdonnees(url){
//HACK : s'assurer que les liens sont en HTTPS //HACK : s'assurer que les liens sont en HTTPS
url=url.replace("http://", "https://") url=url.replace("http://", "https://")
//enlever les anciens du tableau //enlever les anciens du tableau
this.scientifiques=[] this.donnees=[]
//TODO : ajouter un delai si jamais la requete est trop rapide pour VueJS //TODO : ajouter un delai si jamais la requete est trop rapide pour VueJS
//appeler l'API //appeler l'API
fetch(url).then(response=>{ fetch(url).then(response=>{
response.json().then(json=>{ response.json().then(json=>{
const oldLength=this.scientifiques.length const oldLength=this.donnees.length
//prendre les scientifiques de la requete //prendre les donnees de la requete
this.scientifiques.push(...json._embedded) this.donnees.push(...json._embedded)
//HATEOAS //HATEOAS
this.self=json._links.self.href; this.self=json._links.self.href;
@ -65,18 +65,18 @@ export default{
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
<th scope="col" v-for="nomColonne in Object.keys(scientifiques[0]??{})">{{nomColonne}}</th> <th scope="col" v-for="nomColonne in Object.keys(donnees[0]??{})">{{nomColonne}}</th>
<th scope="col">Actions</th> <th scope="col">Actions</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<LigneScientifique v-for="champ in scientifiques" <LigneScientifique v-for="champ in donnees"
:champs-init="champ" :champs-init="champ"
></LigneScientifique> ></LigneScientifique>
</tbody> </tbody>
</table> </table>
<button :class="{ invisible: !first }" class="btn btn-secondary" @click="this.getScientifiques(this.first)">First</button> <button :class="{ invisible: !first }" class="btn btn-secondary" @click="this.getdonnees(this.first)">First</button>
<button :class="{ invisible: !prev }" class="btn btn-secondary" @click="this.getScientifiques(this.prev)">Prev</button> <button :class="{ invisible: !prev }" class="btn btn-secondary" @click="this.getdonnees(this.prev)">Prev</button>
<button :class="{ invisible: !next }" class="btn btn-secondary" @click="this.getScientifiques(this.next)">Next</button> <button :class="{ invisible: !next }" class="btn btn-secondary" @click="this.getdonnees(this.next)">Next</button>
<button :class="{ invisible: !last }" class="btn btn-secondary" @click="this.getScientifiques(this.last)">Last</button> <button :class="{ invisible: !last }" class="btn btn-secondary" @click="this.getdonnees(this.last)">Last</button>
</template>./ligne.vue </template>./ligne.vue
Loading…
Cancel
Save