Added correct alias filtering for edge disabled/enabled events

This commit is contained in:
Volodymyr Babak 2021-09-08 15:44:31 +03:00
parent 595fb99cb4
commit cd78514bc0
3 changed files with 30 additions and 14 deletions

View File

@ -43,7 +43,13 @@ import { RuleChainService } from '@core/http/rule-chain.service';
import { AliasInfo, StateParams, SubscriptionInfo } from '@core/api/widget-api.models';
import { DataKey, Datasource, DatasourceType, KeyInfo } from '@app/shared/models/widget.models';
import { UtilsService } from '@core/services/utils.service';
import { AliasFilterType, EntityAlias, EntityAliasFilter, EntityAliasFilterResult } from '@shared/models/alias.models';
import {
AliasFilterType,
edgeAliasFilterTypes,
EntityAlias,
EntityAliasFilter,
EntityAliasFilterResult
} from '@shared/models/alias.models';
import {
EdgeImportEntityData,
EntitiesKeysByQuery,
@ -495,7 +501,16 @@ export class EntityService {
}
public getAliasFilterTypesByEntityTypes(entityTypes: Array<EntityType | AliasEntityType>): Array<AliasFilterType> {
const allAliasFilterTypes: Array<AliasFilterType> = Object.keys(AliasFilterType).map((key) => AliasFilterType[key]);
const authState = getCurrentAuthState(this.store);
const allAliasFilterTypes: Array<AliasFilterType> = Object.keys(AliasFilterType)
.map((key) => AliasFilterType[key])
.filter(aft => {
if (authState.edgesSupportEnabled) {
return true;
} else {
return edgeAliasFilterTypes.indexOf(aft) === -1;
}
});
if (!entityTypes || !entityTypes.length) {
return allAliasFilterTypes;
}
@ -622,14 +637,14 @@ export class EntityService {
case Authority.TENANT_ADMIN:
entityTypes.push(EntityType.DEVICE);
entityTypes.push(EntityType.ASSET);
if (authState.edgesSupportEnabled) {
entityTypes.push(EntityType.EDGE);
}
entityTypes.push(EntityType.ENTITY_VIEW);
entityTypes.push(EntityType.TENANT);
entityTypes.push(EntityType.CUSTOMER);
entityTypes.push(EntityType.USER);
entityTypes.push(EntityType.DASHBOARD);
if (authState.edgesSupportEnabled) {
entityTypes.push(EntityType.EDGE);
}
if (useAliasEntityTypes) {
entityTypes.push(AliasEntityType.CURRENT_CUSTOMER);
entityTypes.push(AliasEntityType.CURRENT_TENANT);
@ -638,13 +653,13 @@ export class EntityService {
case Authority.CUSTOMER_USER:
entityTypes.push(EntityType.DEVICE);
entityTypes.push(EntityType.ASSET);
if (authState.edgesSupportEnabled) {
entityTypes.push(EntityType.EDGE);
}
entityTypes.push(EntityType.ENTITY_VIEW);
entityTypes.push(EntityType.CUSTOMER);
entityTypes.push(EntityType.USER);
entityTypes.push(EntityType.DASHBOARD);
if (authState.edgesSupportEnabled) {
entityTypes.push(EntityType.EDGE);
}
if (useAliasEntityTypes) {
entityTypes.push(AliasEntityType.CURRENT_CUSTOMER);
}

View File

@ -45,7 +45,7 @@ import {
} from '@home/components/alias/entity-aliases-dialog.component';
import { ItemBufferService, WidgetItem } from '@core/services/item-buffer.service';
import { FileType, ImportWidgetResult, JSON_TYPE, WidgetsBundleItem, ZIP_TYPE } from './import-export.models';
import { AliasEntityType, EntityType } from '@shared/models/entity-type.models';
import { EntityType } from '@shared/models/entity-type.models';
import { UtilsService } from '@core/services/utils.service';
import { WidgetService } from '@core/http/widget.service';
import { NULL_UUID } from '@shared/models/id/has-uuid';
@ -686,9 +686,6 @@ export class ImportExportService {
private editMissingAliases(widgets: Array<Widget>, isSingleWidget: boolean,
customTitle: string, missingEntityAliases: EntityAliases): Observable<EntityAliases> {
const allowedEntityTypes: Array<EntityType | AliasEntityType> =
this.entityService.prepareAllowedEntityTypesList(null, true);
return this.dialog.open<EntityAliasesDialogComponent, EntityAliasesDialogData,
EntityAliases>(EntityAliasesDialogComponent, {
disableClose: true,
@ -698,8 +695,7 @@ export class ImportExportService {
widgets,
customTitle,
isSingleWidget,
disableAdd: true,
allowedEntityTypes
disableAdd: true
}
}).afterClosed().pipe(
map((updatedEntityAliases) => {

View File

@ -37,6 +37,11 @@ export enum AliasFilterType {
entityViewSearchQuery = 'entityViewSearchQuery'
}
export const edgeAliasFilterTypes = new Array<string>(
AliasFilterType.edgeType,
AliasFilterType.edgeSearchQuery
);
export const aliasFilterTypeTranslationMap = new Map<AliasFilterType, string>(
[
[ AliasFilterType.singleEntity, 'alias.filter-type-single-entity' ],