mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Merge pull request #2489 from omnivore-app/more-search-scope
add in:subscription and in:library in search scope
This commit is contained in:
commit
3cfd390346
2 changed files with 60 additions and 1 deletions
|
|
@ -148,8 +148,60 @@ const appendInFilter = (builder: ESBuilder, filter: InFilter): ESBuilder => {
|
|||
gte: 'now-14d',
|
||||
},
|
||||
})
|
||||
case InFilter.LIBRARY:
|
||||
return builder.query('bool', {
|
||||
should: [
|
||||
{
|
||||
nested: {
|
||||
path: 'labels',
|
||||
query: {
|
||||
term: {
|
||||
'labels.name': 'library',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
must_not: [
|
||||
{
|
||||
nested: {
|
||||
path: 'labels',
|
||||
query: {
|
||||
terms: {
|
||||
'labels.name': ['newsletter', 'rss'],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
should: [],
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
})
|
||||
case InFilter.SUBSCRIPTION:
|
||||
return builder
|
||||
.andQuery('nested', {
|
||||
path: 'labels',
|
||||
query: {
|
||||
terms: {
|
||||
'labels.name': ['newsletter', 'rss'],
|
||||
},
|
||||
},
|
||||
})
|
||||
.notQuery('nested', {
|
||||
path: 'labels',
|
||||
query: {
|
||||
term: {
|
||||
'labels.name': 'library',
|
||||
},
|
||||
},
|
||||
})
|
||||
default:
|
||||
return builder
|
||||
}
|
||||
return builder
|
||||
}
|
||||
|
||||
const appendHasFilters = (
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ export enum InFilter {
|
|||
INBOX,
|
||||
ARCHIVE,
|
||||
TRASH,
|
||||
SUBSCRIPTION,
|
||||
LIBRARY,
|
||||
}
|
||||
|
||||
export interface SearchFilter {
|
||||
|
|
@ -123,7 +125,12 @@ const parseInFilter = (
|
|||
return InFilter.ARCHIVE
|
||||
case 'TRASH':
|
||||
return InFilter.TRASH
|
||||
case 'SUBSCRIPTION':
|
||||
return InFilter.SUBSCRIPTION
|
||||
case 'LIBRARY':
|
||||
return InFilter.LIBRARY
|
||||
}
|
||||
|
||||
return query ? InFilter.ALL : InFilter.INBOX
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue