@ -401,20 +401,22 @@ export interface FilterInfo {
filter : string ;
editable : boolean ;
keyFilters : Array < KeyFilterInfo > ;
keyFiltersOperation? : ComplexOperation ;
}
export interface FiltersInfo {
datasourceFilters : { [ datasourceIndex : number ] : FilterInfo } ;
}
export function keyFiltersToText ( translate : TranslateService , datePipe : DatePipe , keyFilters : Array < KeyFilter > ) : string {
export function keyFiltersToText ( translate : TranslateService , datePipe : DatePipe , keyFilters : Array < KeyFilter > ,
operation : ComplexOperation = ComplexOperation . AND ) : string {
const filtersText = keyFilters . map ( keyFilter = >
keyFilterToText ( translate , datePipe , keyFilter ,
keyFilters . length > 1 ? C omplexO peration.AND : undefined ) ) ;
keyFilters . length > 1 ? operation : undefined ) ) ;
let result : string ;
if ( filtersText . length > 1 ) {
const and Text = translate . instant ( 'filter.operation.and' ) ;
result = filtersText . join ( ' <span class="tb-filter-complex-operation">' + and Text + '</span> ' ) ;
const op Text = translate . instant ( complexOperationTranslationMap . get ( operation ) ) ;
result = filtersText . join ( ' <span class="tb-filter-complex-operation">' + op Text + '</span> ' ) ;
} else {
result = filtersText [ 0 ] ;
}
@ -802,6 +804,7 @@ export const singleEntityFilterFromDeviceId = (deviceId: string): EntityFilter =
export interface EntityCountQuery {
entityFilter : EntityFilter ;
keyFilters? : Array < KeyFilter > ;
keyFiltersOperation? : ComplexOperation ;
}
export interface AbstractDataQuery < T extends EntityDataPageLink > extends EntityCountQuery {
@ -940,7 +943,8 @@ export const getFilterId = (filters: Filters, filterInfo: FilterInfo): string =>
const newFilterName = createFilterName ( filters , filterInfo . filter ) ;
newFilterId = guid ( ) ;
filters [ newFilterId ] = { id : newFilterId , filter : newFilterName ,
keyFilters : filterInfo.keyFilters , editable : filterInfo.editable } ;
keyFilters : filterInfo.keyFilters , editable : filterInfo.editable ,
keyFiltersOperation : filterInfo.keyFiltersOperation } ;
}
return newFilterId ;
}