all files / src/components/ VuetablePaginationDropdown.vue

0% Statements 0/5
100% Branches 0/0
0% Functions 0/1
0% Lines 0/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46                                                                                           
<template>
  <div :class="[css.wrapperClass]">
    <a @click="loadPage('prev')"
       :class="[css.linkClass, {[css.disabledClass] : isOnFirstPage}]">
      <i :class="css.icons.prev"></i>
    </a>
    <select :class="['vuetable-pagination-dropdown', css.dropdownClass]" @change="loadPage($event.target.selectedIndex+1)">
      <option v-for="n in totalPage" :class="[css.pageClass]" :value="n" :selected="isCurrentPage(n)">
        {{pageText}} {{n}}
      </option>
    </select>
    <a @click="loadPage('next')"
       :class="[css.linkClass, {[css.disabledClass] : isOnLastPage}]">
      <i :class="css.icons.next"></i>
    </a>
  </div>
</template>
 
<script>
import PaginationMixin from './VuetablePaginationMixin.vue'
 
export default {
  mixins: [PaginationMixin],
  props: {
    pageText: {
      type: String,
      default () {
        return 'Page'
      }
    }
  },
  methods: {
    registerEvents () {
      let self = this
 
      this.$on('vuetable:pagination-data', (tablePagination) => {
        self.setPaginationData(tablePagination)
      })
    }
  },
  created () {
    this.registerEvents()
  }
}
</script>