|
@@ -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')
|
|
|
}
|
|
|
}
|
|
|
}
|