filters on server side integrated
This commit is contained in:
@@ -17,7 +17,7 @@ export default {
|
||||
filters: { persons: [], places: [], objects: [] },
|
||||
activeFilters: { persons: [], places: [], objects: [] },
|
||||
results: [],
|
||||
resultsCount: '',
|
||||
resultsQuantity: null,
|
||||
isloading: false,
|
||||
limit: 10,
|
||||
offset: 0,
|
||||
@@ -37,9 +37,10 @@ export default {
|
||||
},
|
||||
resetResults (state) {
|
||||
state.results = []
|
||||
state.offset = 0
|
||||
},
|
||||
setResultsCount (state, quantity) {
|
||||
state.resultsCount = `${quantity.quantity} ${quantity.unit}`
|
||||
state.resultsQuantity = quantity
|
||||
},
|
||||
incrementOffset (state) {
|
||||
state.offset += state.limit
|
||||
@@ -88,7 +89,7 @@ export default {
|
||||
state.activeFilters[filters.index] = filters.value
|
||||
// console.log('state.activeFilters', state.activeFilters)
|
||||
},
|
||||
resetFiltersValues (state) {
|
||||
resetActiveFilters (state) {
|
||||
for (var index of ['persons', 'places', 'objects']) {
|
||||
state.activeFilters[index] = []
|
||||
}
|
||||
@@ -100,9 +101,6 @@ export default {
|
||||
getResults ({ dispatch, commit, state }, $infiniteLoadingState = null) {
|
||||
console.log('getResults', state.keys, $infiniteLoadingState)
|
||||
// reset results on new search
|
||||
if (!$infiniteLoadingState) {
|
||||
commit('resetResults')
|
||||
}
|
||||
commit('setIsloading', true)
|
||||
let params = {
|
||||
search: `${state.keys}`,
|
||||
@@ -112,8 +110,17 @@ export default {
|
||||
if (state.searchTypeValue.code !== 'text') {
|
||||
params.type = state.searchTypeValue.code
|
||||
}
|
||||
let f
|
||||
for (var index of ['persons', 'places', 'objects']) {
|
||||
if (state.activeFilters[index].length) {
|
||||
f = `filter${index.charAt(0).toUpperCase()}${index.slice(1)}`
|
||||
params[f] = []
|
||||
for (var i = 0; i < state.activeFilters[index].length; i++) {
|
||||
params[f].push(state.activeFilters[index][i].code)
|
||||
}
|
||||
}
|
||||
}
|
||||
// params.filterPersons = ['nomLouisXIII', 'nomChampagnePhilippeDe']
|
||||
// if ()
|
||||
// console.log('Search getResults params', params);
|
||||
let q = qs.stringify(params)
|
||||
return REST.get(`${window.apipath}/search?` + q)
|
||||
@@ -143,17 +150,31 @@ export default {
|
||||
Promise.reject(error)
|
||||
})
|
||||
},
|
||||
newSearch ({ dispatch, commit, state }) {
|
||||
commit('resetResults')
|
||||
commit('resetActiveFilters')
|
||||
dispatch('getResults')
|
||||
},
|
||||
filteredSearch ({ dispatch, commit, state }) {
|
||||
commit('resetResults')
|
||||
dispatch('getResults')
|
||||
},
|
||||
nextResultsBatch ({ dispatch, commit, state }, $infiniteLoadingState) {
|
||||
console.log('nextResultsBatch', $infiniteLoadingState)
|
||||
commit('incrementOffset')
|
||||
dispatch('getResults', $infiniteLoadingState)
|
||||
if (state.offset < state.resultsQuantity.quantity) {
|
||||
dispatch('getResults', $infiniteLoadingState)
|
||||
} else {
|
||||
$infiniteLoadingState.complete()
|
||||
}
|
||||
},
|
||||
setSearchTypeValue ({ dispatch, commit, state }, value) {
|
||||
commit('setSearchTypeValue', value)
|
||||
},
|
||||
setSearchFiltersValue ({ dispatch, commit, state }, filters) {
|
||||
setSearchActiveFilters ({ dispatch, commit, state }, filters) {
|
||||
// console.log('setSearchFiltersValue', filters)
|
||||
commit('setActiveFilters', filters)
|
||||
dispatch('filteredSearch')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user