@ -34,6 +34,7 @@
provider . id concatenated to provider . name is used to create the item id , if same then , there should be an issue . -- >
< NcActionButton v -for = " provider in providers "
: key = "`${provider.id}-${provider.name.replace(/\s/g, '')}`"
: disabled = "provider.disabled"
@ click = "addProviderFilter(provider)" >
< template # icon >
< img :src ="provider.icon" class = "filter-button__icon" alt = "" >
@ -378,22 +379,18 @@ export default defineComponent({
extraQueries : provider . extraParams ,
}
/ / T h i s b l o c k o f f i l t e r c h e c k s s h o u l d b e d y n a m i c s o m e h o w a n d s h o u l d b e h a n d l e d i n
/ / n e x t c l o u d / s e a r c h l i b
if ( filters . dateFilterIsApplied ) {
if ( provider . filters ? . since && provider . filters ? . until ) {
params . since = this . dateFilter . startFrom
params . until = this . dateFilter . endAt
} else {
/ / D a t e f i l t e r i s a p p l i e d b u t p r o v i d e r d o e s n o t s u p p o r t i t , n o n e e d t o s e a r c h p r o v i d e r
return
}
}
if ( filters . personFilterIsApplied ) {
if ( provider . filters ? . person ) {
params . person = this . personFilter . user
} else {
/ / P e r s o n f i l t e r i s a p p l i e d b u t p r o v i d e r d o e s n o t s u p p o r t i t , n o n e e d t o s e a r c h p r o v i d e r
return
}
}
@ -493,6 +490,10 @@ export default defineComponent({
this . filters [ existingPersonFilter ] . name = person . displayName
}
this . providers . forEach ( async ( provider , index ) => {
this . providers [ index ] . disabled = ! ( await this . providerIsCompatibleWithFilters ( provider , [ 'person' ] ) )
} )
this . debouncedFind ( this . searchQuery )
unifiedSearchLogger . debug ( 'Person filter applied' , { person } )
} ,
@ -549,6 +550,7 @@ export default defineComponent({
if ( filter . type === 'person' ) {
this . personFilterIsApplied = false
}
this . enableAllProviders ( )
break
}
}
@ -587,6 +589,9 @@ export default defineComponent({
this . filters . push ( this . dateFilter )
}
this . dateFilterIsApplied = true
this . providers . forEach ( async ( provider , index ) => {
this . providers [ index ] . disabled = ! ( await this . providerIsCompatibleWithFilters ( provider , [ 'since' , 'until' ] ) )
} )
this . debouncedFind ( this . searchQuery )
} ,
applyQuickDateRange ( range ) {
@ -677,6 +682,14 @@ export default defineComponent({
return flattenedArray
} ,
async providerIsCompatibleWithFilters ( provider , filterIds ) {
return filterIds . every ( filterId => provider . filters ? . [ filterId ] !== undefined )
} ,
async enableAllProviders ( ) {
this . providers . forEach ( async ( _ , index ) => {
this . providers [ index ] . disabled = false
} )
} ,
} ,
} )
< / script >