Merge pull request #12976 from maxunbearable/fix/5820-calculated-field-tenant-import
Fixed Calculated Field cross instance import with current tenant target entity argument shows unnecessary error
This commit is contained in:
commit
25ed4e9873
@ -37,6 +37,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
import { CalculatedFieldsService } from '@core/http/calculated-fields.service';
|
||||
import { catchError, filter, switchMap, tap } from 'rxjs/operators';
|
||||
import {
|
||||
ArgumentEntityType,
|
||||
ArgumentType,
|
||||
CalculatedField,
|
||||
CalculatedFieldEventArguments,
|
||||
@ -60,7 +61,7 @@ import { DatePipe } from '@angular/common';
|
||||
export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedField> {
|
||||
|
||||
readonly calculatedFieldsDebugPerTenantLimitsConfiguration =
|
||||
getCurrentAuthState(this.store)['calculatedFieldsDebugPerTenantLimitsConfiguration'] || '1:1';
|
||||
getCurrentAuthState(this.store)['calculatedFieldsDebugPerTenantLimitsConfiguration'];
|
||||
readonly maxDebugModeDuration = getCurrentAuthState(this.store).maxDebugModeDurationMinutes * MINUTE;
|
||||
readonly tenantId = getCurrentAuthUser(this.store).tenantId;
|
||||
additionalDebugActionConfig = {
|
||||
@ -252,7 +253,7 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
||||
this.importExportService.openCalculatedFieldImportDialog()
|
||||
.pipe(
|
||||
filter(Boolean),
|
||||
switchMap(calculatedField => this.getCalculatedFieldDialog(calculatedField, 'action.add')),
|
||||
switchMap(calculatedField => this.getCalculatedFieldDialog(this.updateImportedCalculatedField(calculatedField), 'action.add', true)),
|
||||
filter(Boolean),
|
||||
switchMap(calculatedField => this.calculatedFieldsService.saveCalculatedField(calculatedField)),
|
||||
filter(Boolean),
|
||||
@ -261,6 +262,18 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
||||
.subscribe(() => this.updateData());
|
||||
}
|
||||
|
||||
private updateImportedCalculatedField(calculatedField: CalculatedField): CalculatedField {
|
||||
calculatedField.configuration.arguments = Object.keys(calculatedField.configuration.arguments).reduce((acc, key) => {
|
||||
const arg = calculatedField.configuration.arguments[key];
|
||||
acc[key] = arg.refEntityId?.entityType === ArgumentEntityType.Tenant
|
||||
? { ...arg, refEntityId: { id: this.tenantId, entityType: ArgumentEntityType.Tenant } }
|
||||
: arg;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
return calculatedField;
|
||||
}
|
||||
|
||||
private onDebugConfigChanged(id: string, debugSettings: EntityDebugSettings): void {
|
||||
this.calculatedFieldsService.getCalculatedFieldById(id).pipe(
|
||||
switchMap(field => this.calculatedFieldsService.saveCalculatedField({ ...field, debugSettings })),
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
</mat-header-cell>
|
||||
<mat-cell *matCellDef="let argument" class="w-1/4 xs:hidden">
|
||||
<div tbTruncateWithTooltip>
|
||||
@if (argument.refEntityId?.id) {
|
||||
@if (argument.refEntityId?.id && argument.refEntityId?.entityType !== ArgumentEntityType.Tenant) {
|
||||
<a aria-label="Open entity details page"
|
||||
[routerLink]="getEntityDetailsPageURL(argument.refEntityId.id, argument.refEntityId.entityType)">
|
||||
{{ entityNameMap.get(argument.refEntityId.id) ?? '' }}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user