forked from AkkomaGang/admin-fe
Return select multiple filters
This commit is contained in:
parent
b8b7e4b021
commit
28c2833583
2 changed files with 11 additions and 27 deletions
|
@ -42,8 +42,8 @@ const users = {
|
||||||
SET_SEARCH_QUERY: (state, query) => {
|
SET_SEARCH_QUERY: (state, query) => {
|
||||||
state.searchQuery = query
|
state.searchQuery = query
|
||||||
},
|
},
|
||||||
SET_USERS_FILTER: (state, filters) => {
|
SET_USERS_FILTER: (state, filter) => {
|
||||||
state.filters = filters
|
state.filters[filter] = !state.filters[filter]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
@ -72,15 +72,8 @@ const users = {
|
||||||
loadUsers(commit, page, response.data)
|
loadUsers(commit, page, response.data)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async ToggleUsersFilter({ commit, dispatch, state }, filters) {
|
async ToggleUsersFilter({ commit, dispatch, state }, filter) {
|
||||||
const newFilters = Object.keys(state.filters).reduce((acc, filter) => {
|
commit('SET_USERS_FILTER', filter)
|
||||||
if (filters.includes(filter)) {
|
|
||||||
return { ...acc, [filter]: true }
|
|
||||||
} else {
|
|
||||||
return { ...acc, [filter]: false }
|
|
||||||
}
|
|
||||||
}, {})
|
|
||||||
commit('SET_USERS_FILTER', newFilters)
|
|
||||||
// dispatch('SearchUsers', { query: state.searchQuery, page: 1 })
|
// dispatch('SearchUsers', { query: state.searchQuery, page: 1 })
|
||||||
},
|
},
|
||||||
async ToggleRight({ commit, getters }, { user, right }) {
|
async ToggleRight({ commit, getters }, { user, right }) {
|
||||||
|
|
|
@ -28,19 +28,19 @@ export default {
|
||||||
label: 'By user type',
|
label: 'By user type',
|
||||||
options: [{
|
options: [{
|
||||||
label: 'Local',
|
label: 'Local',
|
||||||
value: 'userType/showLocalUsersOnly'
|
value: 'showLocalUsersOnly'
|
||||||
}, {
|
}, {
|
||||||
label: 'External',
|
label: 'External',
|
||||||
value: 'userType/showExternalUsersOnly'
|
value: 'showExternalUsersOnly'
|
||||||
}]
|
}]
|
||||||
}, {
|
}, {
|
||||||
label: 'By status',
|
label: 'By status',
|
||||||
options: [{
|
options: [{
|
||||||
label: 'Active',
|
label: 'Active',
|
||||||
value: 'userStatus/showActiveUsersOnly'
|
value: 'showActiveUsersOnly'
|
||||||
}, {
|
}, {
|
||||||
label: 'Deactivated',
|
label: 'Deactivated',
|
||||||
value: 'userStatus/showDeactivatedUsersOnly'
|
value: 'showDeactivatedUsersOnly'
|
||||||
}]
|
}]
|
||||||
}],
|
}],
|
||||||
value: []
|
value: []
|
||||||
|
@ -52,18 +52,9 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleFilterToggle(value) {
|
handleFilterToggle(filters) {
|
||||||
const reversed = value.reverse()
|
const currentFilter = filters[filters.length - 1]
|
||||||
const userTypeFilter = reversed.find(filter => filter.includes('userType'))
|
this.$store.dispatch('ToggleUsersFilter', currentFilter)
|
||||||
const userStatusFilter = reversed.find(filter => filter.includes('userStatus'))
|
|
||||||
const filters = [userTypeFilter, userStatusFilter].filter(item => item)
|
|
||||||
this.$data.value = filters
|
|
||||||
const filtersWithoutGroupnames = filters.reduce((acc, item) => {
|
|
||||||
const filter = item.split('/')[1]
|
|
||||||
acc.push(filter)
|
|
||||||
return acc
|
|
||||||
}, [])
|
|
||||||
this.$store.dispatch('ToggleUsersFilter', filtersWithoutGroupnames)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue