Display authors list

This commit is contained in:
Meutel 2017-01-07 12:27:59 +01:00
parent 0faf364cd8
commit 0d4efcddc8
2 changed files with 23 additions and 2 deletions

View File

@ -16,15 +16,26 @@
<h1>Bouquins</h1> <h1>Bouquins</h1>
<p>Cette bibliothèque contient actuellement <strong>{{ booksCount }}</strong> livres et BD en format papier ou électronique.</p> <p>Cette bibliothèque contient actuellement <strong>{{ booksCount }}</strong> livres et BD en format papier ou électronique.</p>
<button class="btn btn-primary" type="button" @click="loadBooks">Livres</button> <button class="btn btn-primary" type="button" @click="loadBooks">Livres</button>
<button class="btn btn-primary" type="button" @click="loadAuthors">Authors</button>
</div> </div>
<div class="table-responsive" v-if="books.length > 0"> <div class="table-responsive" v-if="books.length > 0 || authors.length > 0">
<nav aria-label="Pages"> <nav aria-label="Pages">
<ul class="pager"> <ul class="pager">
<li class="previous" v-bind:class="{ disabled: page <= 1 }"><a href="#" @click="prevPage"><span aria-hidden="true">&larr;</span> Précédents</a></li> <li class="previous" v-bind:class="{ disabled: page <= 1 }"><a href="#" @click="prevPage"><span aria-hidden="true">&larr;</span> Précédents</a></li>
<li class="next"><a href="#" @click="nextPage">Suivants <span aria-hidden="true">&rarr;</span></a></li> <li class="next"><a href="#" @click="nextPage">Suivants <span aria-hidden="true">&rarr;</span></a></li>
</ul> </ul>
</nav> </nav>
<table class="table table-striped"> <table class="table table-striped" v-if="authors.length > 0">
<tr>
<th>Id</th>
<th>Nom</th>
</tr>
<tr v-for="author in authors">
<td>{{ author.id }}</td>
<td>{{ author.name }}</td>
</tr>
</table>
<table class="table table-striped" v-if="books.length > 0">
<tr> <tr>
<th>Titre</th> <th>Titre</th>
<th>Auteur(s)</th> <th>Auteur(s)</th>

View File

@ -2,6 +2,7 @@ var app = new Vue({
el: '#app', el: '#app',
data: { data: {
books: [], books: [],
authors: [],
booksCount: 0, booksCount: 0,
page: 1, page: 1,
perpage: 20 perpage: 20
@ -41,7 +42,12 @@ var app = new Vue({
loadIndex: function() { loadIndex: function() {
this.sendQuery('cgi-bin/bouquins/index', this.stdError, this.indexSuccess); this.sendQuery('cgi-bin/bouquins/index', this.stdError, this.indexSuccess);
}, },
authorsSuccess: function(resp) {
this.books = [];
this.authors = resp;
},
booksSuccess: function(resp) { booksSuccess: function(resp) {
this.authors = []
this.books = resp; this.books = resp;
}, },
prevPage: function() { prevPage: function() {
@ -54,6 +60,10 @@ var app = new Vue({
this.page++; this.page++;
this.loadBooks(); this.loadBooks();
}, },
loadAuthors: function() {
this.sendQuery('cgi-bin/bouquins/authors?page=' + this.page + '&perpage=' + this.perpage,
this.stdError, this.authorsSuccess);
},
loadBooks: function() { loadBooks: function() {
this.sendQuery('cgi-bin/bouquins/books?page=' + this.page + '&perpage=' + this.perpage, this.sendQuery('cgi-bin/bouquins/books?page=' + this.page + '&perpage=' + this.perpage,
this.stdError, this.booksSuccess); this.stdError, this.booksSuccess);