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; calculatedFieldDebugPerTenantLimitsConfiguration?: string;
intermediateAggregationIntervalInSecForCF: number; intermediateAggregationIntervalInSecForCF: number;
trendzSettings: TrendzSettings; trendzSettings: TrendzSettings;
allowKeyFiltersOrConditions: boolean;
} }
export interface SysParams extends SysParamsState { 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; filter: string;
editable: boolean; editable: boolean;
keyFilters: Array<KeyFilterInfo>; keyFilters: Array<KeyFilterInfo>;
keyFiltersOperation?: ComplexOperation;
} }
export interface FiltersInfo { export interface FiltersInfo {
datasourceFilters: {[datasourceIndex: number]: FilterInfo}; 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 => const filtersText = keyFilters.map(keyFilter =>
keyFilterToText(translate, datePipe, keyFilter, keyFilterToText(translate, datePipe, keyFilter,
keyFilters.length > 1 ? ComplexOperation.AND : undefined)); keyFilters.length > 1 ? operation : undefined));
let result: string; let result: string;
if (filtersText.length > 1) { if (filtersText.length > 1) {
const andText = translate.instant('filter.operation.and'); const opText = translate.instant(complexOperationTranslationMap.get(operation));
result = filtersText.join(' <span class="tb-filter-complex-operation">' + andText + '</span> '); result = filtersText.join(' <span class="tb-filter-complex-operation">' + opText + '</span> ');
} else { } else {
result = filtersText[0]; result = filtersText[0];
} }
@ -802,6 +804,7 @@ export const singleEntityFilterFromDeviceId = (deviceId: string): EntityFilter =
export interface EntityCountQuery { export interface EntityCountQuery {
entityFilter: EntityFilter; entityFilter: EntityFilter;
keyFilters?: Array<KeyFilter>; keyFilters?: Array<KeyFilter>;
keyFiltersOperation?: ComplexOperation;
} }
export interface AbstractDataQuery<T extends EntityDataPageLink> extends EntityCountQuery { 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); const newFilterName = createFilterName(filters, filterInfo.filter);
newFilterId = guid(); newFilterId = guid();
filters[newFilterId] = {id: newFilterId, filter: newFilterName, filters[newFilterId] = {id: newFilterId, filter: newFilterName,
keyFilters: filterInfo.keyFilters, editable: filterInfo.editable}; keyFilters: filterInfo.keyFilters, editable: filterInfo.editable,
keyFiltersOperation: filterInfo.keyFiltersOperation};
} }
return newFilterId; return newFilterId;
} }

Loading…
Cancel
Save