diff --git a/app/assets/javascripts/vue_pagination/index.js.es6 b/app/assets/javascripts/vue_pagination/index.js.es6 index 8dabfef3b95..ed0d6f35ea6 100644 --- a/app/assets/javascripts/vue_pagination/index.js.es6 +++ b/app/assets/javascripts/vue_pagination/index.js.es6 @@ -10,6 +10,9 @@ ], methods: { pagestatus(n) { + if (this.getItems[1].prev) { + if (n === +this.pagenum) return true; + } if (n - 1 === +this.pagenum) return true; return false; }, @@ -27,12 +30,17 @@ const pages = this.createSection(+this.last + 1); pages.shift(); - items.push({ text: 'Prev', class: this.prevstatus() }); + if (+this.pagenum > 1) items.push({ text: 'First', first: true }); - pages.forEach(i => items.push({ text: i })); + items.push({ text: 'Prev', prev: true, class: this.prevstatus() }); - if (+this.pagenum < this.last) items.push({ text: 'Next' }); - if (+this.pagenum !== this.last) items.push({ text: 'Last »' }); + pages.forEach(i => items.push({ text: i, number: true })); + + let nextDisabled = false; + if (+this.pagenum === this.last) { nextDisabled = true; } + items.push({ text: 'Next', next: true, disabled: nextDisabled }); + + if (+this.pagenum !== this.last) items.push({ text: 'Last »', last: true }); return items; }, @@ -40,9 +48,40 @@ template: `