mirror of
https://github.com/nextcloud/server.git
synced 2026-06-10 09:13:19 -04:00
Merge pull request #54333 from nextcloud/backport/54312/stable31
[stable31] enh(unified-search): Smarter load more
This commit is contained in:
commit
df0556079c
3 changed files with 8 additions and 15 deletions
|
|
@ -129,7 +129,7 @@
|
|||
v-bind="result" />
|
||||
</ul>
|
||||
<div class="result-footer">
|
||||
<NcButton type="tertiary-no-background" @click="loadMoreResultsForProvider(providerResult)">
|
||||
<NcButton v-if="providerResult.results.length === providerResult.limit" type="tertiary-no-background" @click="loadMoreResultsForProvider(providerResult)">
|
||||
{{ t('core', 'Load more results') }}
|
||||
<template #icon>
|
||||
<IconDotsHorizontal :size="20" />
|
||||
|
|
@ -367,7 +367,7 @@ export default defineComponent({
|
|||
this.$refs.searchInput?.focus()
|
||||
})
|
||||
},
|
||||
find(query: string) {
|
||||
find(query: string, providersToSearchOverride = null) {
|
||||
if (query.length === 0) {
|
||||
this.results = []
|
||||
this.searching = false
|
||||
|
|
@ -382,7 +382,7 @@ export default defineComponent({
|
|||
|
||||
this.searching = true
|
||||
const newResults = []
|
||||
const providersToSearch = this.filteredProviders.length > 0 ? this.filteredProviders : this.providers
|
||||
const providersToSearch = providersToSearchOverride || (this.filteredProviders.length > 0 ? this.filteredProviders : this.providers)
|
||||
const searchProvider = (provider) => {
|
||||
const params = {
|
||||
type: provider.searchFrom ?? provider.id,
|
||||
|
|
@ -424,6 +424,7 @@ export default defineComponent({
|
|||
newResults.push({
|
||||
...provider,
|
||||
results: response.data.ocs.data.entries,
|
||||
limit: params.limit ?? 5,
|
||||
})
|
||||
|
||||
unifiedSearchLogger.debug('Unified search results:', { results: this.results, newResults })
|
||||
|
|
@ -513,15 +514,7 @@ export default defineComponent({
|
|||
},
|
||||
async loadMoreResultsForProvider(provider) {
|
||||
this.providerResultLimit += 5
|
||||
// Remove all other providers from filteredProviders except the current "loadmore" provider
|
||||
this.filteredProviders = this.filteredProviders.filter(filteredProvider => filteredProvider.id === provider.id)
|
||||
// Plugin filters may have extra parameters, so we need to keep them
|
||||
// See method handlePluginFilter for more details
|
||||
if (this.filteredProviders.length > 0 && this.filteredProviders[0].isPluginFilter) {
|
||||
provider = this.filteredProviders[0]
|
||||
}
|
||||
this.addProviderFilter(provider, true)
|
||||
this.find(this.searchQuery)
|
||||
this.find(this.searchQuery, [provider])
|
||||
},
|
||||
addProviderFilter(providerFilter, loadMoreResultsForProvider = false) {
|
||||
unifiedSearchLogger.debug('Applying provider filter', { providerFilter, loadMoreResultsForProvider })
|
||||
|
|
|
|||
4
dist/core-unified-search.js
vendored
4
dist/core-unified-search.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-unified-search.js.map
vendored
2
dist/core-unified-search.js.map
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue