diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue index ad790844bbaefd7005a43b0484d01e1c94874490..9ac21c6a36ec9afbf7414df88dd1b6c0146eb617 100644 --- a/src/views/feature/Feature_list.vue +++ b/src/views/feature/Feature_list.vue @@ -309,16 +309,16 @@ id="table-features_previous" >Précédent</a > - <!-- <span> <a - v-for="(page, index) in getNbPages()" + <span> <a + v-for="(page, index) in getNbPages" :key="'page' + index" - class="paginate_button current" + :class="['paginate_button', {'current' : page.value === pagination.currentPage }]" aria-controls="table-features" data-dt-idx="1" tabindex="0" - >{{index}}</a + >{{page.value}}</a > </span> - <span class="ellipsis">…</span> --> + <!-- TODO : <span v-if="getNbPages > 4" class="ellipsis">...</span> --> <a class="paginate_button next" aria-controls="table-features" @@ -414,6 +414,7 @@ export default { title: null, }, pagination: { + currentPage : 1, pagesize: 15, start: 0, end: 14, @@ -445,6 +446,24 @@ export default { baseMaps() { return this.$store.state.map.basemaps; }, + getNbPages() { + let N = Math.round( + this.getFilteredFeatures().length / this.pagination.pagesize + ); + let rest = Math.round( + this.getFilteredFeatures().length % this.pagination.pagesize + ); + if (rest > 0) + N++; + const arr = [...Array(N).keys()].map((function(x) { + ++x; + return { + index: x, + value: x + } + })); + return arr; + }, }, methods: { modalAllDelete() { @@ -586,21 +605,20 @@ export default { } return results; }, - getNbPages() { - return Math.round( - this.getFilteredFeatures().length / this.pagination.pagesize - ); - }, + toPreviousPage() { if (this.pagination.start > 0) { this.pagination.start -= this.pagination.pagesize; this.pagination.end -= this.pagination.pagesize; + this.pagination.currentPage-=1; } + }, toNextPage() { if (this.pagination.end < this.getFilteredFeatures().length) { this.pagination.start += this.pagination.pagesize; this.pagination.end += this.pagination.pagesize; + this.pagination.currentPage+=1; } }, loadFeatures(features) {