feat(OrganizationList): add pagination support

This commit is contained in:
Matthieu Bessat 2020-08-16 11:50:27 +02:00
parent 26af62e9c2
commit 676912e97f

View file

@ -4,6 +4,9 @@
<v-data-table <v-data-table
:headers="headers" :headers="headers"
:items="organizations" :items="organizations"
:loading="isLoading"
:options.sync="options"
:server-items-length="totalCount"
sort-by="validationState" sort-by="validationState"
class="elevation-1" class="elevation-1"
> >
@ -447,7 +450,8 @@ export default {
}, },
{ {
text: 'Actions', text: 'Actions',
value: 'actions' value: 'actions',
sortable: false
} }
], ],
organizations: [], organizations: [],
@ -468,7 +472,10 @@ export default {
importFile: null, importFile: null,
importLoading: false, importLoading: false,
diffModal: false, diffModal: false,
diffText: '' diffText: '',
options: null,
totalCount: 0,
isLoading: false
} }
}, },
@ -484,26 +491,58 @@ export default {
watch: { watch: {
dialog (val) { dialog (val) {
val || this.close() val || this.close()
},
options: {
handler () {
this.fetchData()
},
deep: true
} }
}, },
created () { created () {
this.$store.commit('SET_TITLE', 'Gestion des associations') this.$store.commit('SET_TITLE', 'Gestion des associations')
this.fetchData()
if (this.$route.query.approval !== undefined) {
this.fetchOne(this.$route.query.approval).then((data) => {
if (data != null) {
this.$router.push({ query: {} })
this.openApproveModal(data)
}
})
}
}, },
methods: { methods: {
fetchData () {
this.$apitator.get('/admin/organizations', { withAuth: true }).then(res => {
this.organizations = res.data.data
if (this.$route.query.approval !== undefined) { fetchOne (id) {
const organizations = this.organizations.filter(o => o._id === this.$route.query.approval) return new Promise(resolve => {
if (organizations.length > 0) { this.$apitator.get('/admin/organizations/' + id, {
this.$router.push({ query: {} }) withAuth: true
this.openApproveModal(organizations[0]) }).then(res => {
} resolve(res.data.data)
})
})
},
fetchData () {
this.isLoading = true
let params = {}
if (this.options != null) {
params = {
page: this.options.page,
limit: this.options.itemsPerPage,
sortBy: this.options.sortBy[0],
sortDesc: this.options.sortDesc[0]
} }
}
this.$apitator.get('/admin/organizations', {
withAuth: true,
axiosConfig: { params }
}).then(res => {
this.organizations = res.data.data.docs
this.totalCount = res.data.data.totalDocs
this.isLoading = false
}) })
}, },