Improved context passing

This commit is contained in:
mpetrov 2025-02-06 17:01:33 +02:00
parent 5354eaa80b
commit ff647aedc7
3 changed files with 11 additions and 17 deletions

View File

@ -42,6 +42,7 @@ import {
} from '@shared/models/calculated-field.models';
import { CalculatedFieldDebugDialogComponent, CalculatedFieldDialogComponent } from './components/public-api';
import { ImportExportService } from '@shared/import-export/import-export.service';
import { CalculatedFieldId } from '@shared/models/id/calculated-field-id';
export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedField, PageLink> {
@ -52,11 +53,7 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
readonly tenantId = getCurrentAuthUser(this.store).tenantId;
additionalDebugActionConfig = {
title: this.translate.instant('calculated-fields.see-debug-events'),
action: this.openDebugDialog.bind(this),
data: {
tenantId: this.tenantId,
entityId: this.entityId,
},
action: (id?: CalculatedFieldId) => this.openDebugDialog.call(this, id),
};
constructor(private calculatedFieldsService: CalculatedFieldsService,
@ -140,7 +137,7 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
onOpenDebugConfig($event: Event, { debugSettings = {}, id }: CalculatedField): void {
const additionalActionConfig = {
...this.additionalDebugActionConfig,
action: () => this.openDebugDialog({...this.additionalDebugActionConfig.data, id }),
action: () => this.openDebugDialog(id)
};
const { viewContainerRef } = this.getTable();
if ($event) {
@ -206,11 +203,15 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
.afterClosed();
}
private openDebugDialog(data: CalculatedFieldDebugDialogData): void {
private openDebugDialog(id: CalculatedFieldId): void {
this.dialog.open<CalculatedFieldDebugDialogComponent, CalculatedFieldDebugDialogData, null>(CalculatedFieldDebugDialogComponent, {
disableClose: true,
panelClass: ['tb-dialog', 'tb-fullscreen-dialog'],
data
data: {
tenantId: this.tenantId,
entityId: this.entityId,
id
}
})
.afterClosed()
.subscribe();

View File

@ -67,10 +67,7 @@ export class CalculatedFieldDialogComponent extends DialogComponent<CalculatedFi
additionalDebugActionConfig = this.data.value?.id ? {
...this.data.additionalDebugActionConfig,
action: () => this.data.additionalDebugActionConfig.action({
...this.data.additionalDebugActionConfig.data,
id: this.data.value.id,
}),
action: () => this.data.additionalDebugActionConfig.action(this.data.value.id)
} : null;
readonly OutputTypeTranslations = OutputTypeTranslations;

View File

@ -21,7 +21,6 @@ import { DeviceCredentialMQTTBasic } from '@shared/models/device.models';
import { Lwm2mSecurityConfigModels } from '@shared/models/lwm2m-security-config.models';
import { TenantId } from '@shared/models/id/tenant-id';
import { RuleChainMetaData } from '@shared/models/rule-chain.models';
import { CalculatedFieldDebugDialogData } from '@shared/models/calculated-field.models';
export interface EntityInfo {
name?: string;
@ -204,12 +203,9 @@ export interface EntityDebugSettings {
allEnabledUntil?: number;
}
export type AdditionalDebugActionConfigData = CalculatedFieldDebugDialogData;
export interface AdditionalDebugActionConfig {
action?: (data?: AdditionalDebugActionConfigData) => void;
action?: (id?: EntityId) => void;
title: string;
data: AdditionalDebugActionConfigData;
}
export type VersionedEntity = EntityInfoData & HasVersion | RuleChainMetaData;