Browse Source

UI: Improve resolve alias function

pull/7873/head
Igor Kulikov 4 years ago
parent
commit
f65397618b
  1. 38
      ui-ngx/src/app/core/http/entity.service.ts

38
ui-ngx/src/app/core/http/entity.service.ts

@ -869,37 +869,25 @@ export class EntityService {
}; };
aliasInfo.currentEntity = null; aliasInfo.currentEntity = null;
if (!aliasInfo.resolveMultiple && aliasInfo.entityFilter) { if (!aliasInfo.resolveMultiple && aliasInfo.entityFilter) {
let entityInfoObservable: Observable<EntityInfo>; let currentEntity: EntityInfo = null;
if (result.stateEntity && aliasInfo.entityFilter.type === AliasFilterType.singleEntity) { if (result.stateEntity && aliasInfo.entityFilter.type === AliasFilterType.singleEntity) {
let currentEntity: EntityInfo = null;
if (stateParams) { if (stateParams) {
let targetParams = stateParams;
if (result.entityParamName && result.entityParamName.length) { if (result.entityParamName && result.entityParamName.length) {
const stateEntity = stateParams[result.entityParamName]; targetParams = stateParams[result.entityParamName];
if (stateEntity) { }
currentEntity = { if (targetParams && targetParams.entityId) {
id: stateEntity.entityId.id, currentEntity = {
entityType: stateEntity.entityId.entityType, id: targetParams.entityId.id,
name: stateEntity.entityName, entityType: targetParams.entityId.entityType as EntityType,
label: stateEntity.entityLabel name: targetParams.entityName,
}; label: targetParams.entityLabel
} };
} else {
if (stateParams.entityId) {
currentEntity = {
id: stateParams.entityId.id,
entityType: stateParams.entityId.entityType as EntityType,
name: stateParams.entityName,
label: stateParams.entityLabel
};
}
} }
} }
entityInfoObservable = currentEntity ? of(currentEntity) : this.findSingleEntityInfoByEntityFilter(aliasInfo.entityFilter,
{ignoreLoading: true, ignoreErrors: true});
} else {
entityInfoObservable = this.findSingleEntityInfoByEntityFilter(aliasInfo.entityFilter,
{ignoreLoading: true, ignoreErrors: true});
} }
const entityInfoObservable = currentEntity ? of(currentEntity) : this.findSingleEntityInfoByEntityFilter(aliasInfo.entityFilter,
{ignoreLoading: true, ignoreErrors: true});
return entityInfoObservable.pipe( return entityInfoObservable.pipe(
map((entity) => { map((entity) => {
aliasInfo.currentEntity = entity; aliasInfo.currentEntity = entity;

Loading…
Cancel
Save