Browse Source

Update TypeScript models for OR conditions support

- Add allowKeyFiltersOrConditions to SysParamsState interface
- Add keyFiltersOperation to FilterInfo and EntityCountQuery interfaces
- Update keyFiltersToText to accept dynamic operation parameter with AND default
- Propagate keyFiltersOperation in getFilterId helper
pull/15394/head
Viacheslav Klimov 6 months ago
parent
commit
16a92eefa0
Failed to extract signature
  1. 1
      ui-ngx/src/app/core/auth/auth.models.ts
  2. 14
      ui-ngx/src/app/shared/models/query/query.models.ts

1
ui-ngx/src/app/core/auth/auth.models.ts

@ -40,6 +40,7 @@ export interface SysParamsState {
calculatedFieldDebugPerTenantLimitsConfiguration?: string;
intermediateAggregationIntervalInSecForCF: number;
trendzSettings: TrendzSettings;
allowKeyFiltersOrConditions: boolean;
}
export interface SysParams extends SysParamsState {

14
ui-ngx/src/app/shared/models/query/query.models.ts

@ -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 ? ComplexOperation.AND : undefined));
keyFilters.length > 1 ? operation : undefined));
let result: string;
if (filtersText.length > 1) {
const andText = translate.instant('filter.operation.and');
result = filtersText.join(' <span class="tb-filter-complex-operation">' + andText + '</span> ');
const opText = translate.instant(complexOperationTranslationMap.get(operation));
result = filtersText.join(' <span class="tb-filter-complex-operation">' + opText + '</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;
}

Loading…
Cancel
Save