preserve edit dialog on test
This commit is contained in:
parent
f8d88387fa
commit
9589317e97
@ -39,7 +39,7 @@ import {
|
||||
CalculatedField,
|
||||
CalculatedFieldDebugDialogData,
|
||||
CalculatedFieldDialogData,
|
||||
CalculatedFieldTestScriptInputParams,
|
||||
CalculatedFieldTestScriptDialogData,
|
||||
} from '@shared/models/calculated-field.models';
|
||||
import {
|
||||
CalculatedFieldDebugDialogComponent,
|
||||
@ -260,21 +260,24 @@ export class CalculatedFieldsTableConfig extends EntityTableConfig<CalculatedFie
|
||||
).subscribe(() => this.updateData());
|
||||
}
|
||||
|
||||
private getTestScriptDialog(calculatedField: CalculatedField, argumentsObj?: Record<string, unknown>): Observable<string> {
|
||||
return this.dialog.open<CalculatedFieldScriptTestDialogComponent, CalculatedFieldTestScriptInputParams, string>(CalculatedFieldScriptTestDialogComponent,
|
||||
private getTestScriptDialog(calculatedField: CalculatedField, argumentsObj?: Record<string, unknown>, openCalculatedFieldEdit = true): Observable<string> {
|
||||
return this.dialog.open<CalculatedFieldScriptTestDialogComponent, CalculatedFieldTestScriptDialogData, string>(CalculatedFieldScriptTestDialogComponent,
|
||||
{
|
||||
disableClose: true,
|
||||
panelClass: ['tb-dialog', 'tb-fullscreen-dialog', 'tb-fullscreen-dialog-gt-xs'],
|
||||
data: {
|
||||
arguments: argumentsObj ?? Object.keys(calculatedField.configuration.arguments).reduce((acc, key) => { acc[key] = ''; return acc; }, {}),
|
||||
expression: calculatedField.configuration.expression,
|
||||
openCalculatedFieldEdit
|
||||
}
|
||||
}).afterClosed()
|
||||
.pipe(
|
||||
filter(Boolean),
|
||||
tap(expression =>
|
||||
tap(expression => {
|
||||
if (openCalculatedFieldEdit) {
|
||||
this.editCalculatedField({...calculatedField, configuration: {...calculatedField.configuration, expression } }, true)
|
||||
),
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,7 +121,10 @@ export class CalculatedFieldDialogComponent extends DialogComponent<CalculatedFi
|
||||
}
|
||||
|
||||
onTestScript(): void {
|
||||
this.data.getTestScriptDialogFn(this.fromGroupValue).subscribe();
|
||||
this.data.getTestScriptDialogFn(this.fromGroupValue, null, false).subscribe(expression => {
|
||||
this.configFormGroup.get('expressionSCRIPT').setValue(expression);
|
||||
this.configFormGroup.get('expressionSCRIPT').markAsDirty();
|
||||
});
|
||||
}
|
||||
|
||||
private applyDialogData(): void {
|
||||
|
||||
@ -37,7 +37,7 @@ import { beautifyJs } from '@shared/models/beautify.models';
|
||||
import { CalculatedFieldsService } from '@core/http/calculated-fields.service';
|
||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { CalculatedFieldTestScriptInputParams } from '@shared/models/calculated-field.models';
|
||||
import { CalculatedFieldTestScriptDialogData } from '@shared/models/calculated-field.models';
|
||||
|
||||
@Component({
|
||||
selector: 'tb-calculated-field-script-test-dialog',
|
||||
@ -66,7 +66,7 @@ export class CalculatedFieldScriptTestDialogComponent extends DialogComponent<Ca
|
||||
|
||||
constructor(protected store: Store<AppState>,
|
||||
protected router: Router,
|
||||
@Inject(MAT_DIALOG_DATA) public data: CalculatedFieldTestScriptInputParams,
|
||||
@Inject(MAT_DIALOG_DATA) public data: CalculatedFieldTestScriptDialogData,
|
||||
protected dialogRef: MatDialogRef<CalculatedFieldScriptTestDialogComponent, string>,
|
||||
private dialog: MatDialog,
|
||||
private fb: FormBuilder,
|
||||
@ -123,7 +123,7 @@ export class CalculatedFieldScriptTestDialogComponent extends DialogComponent<Ca
|
||||
}));
|
||||
return NEVER;
|
||||
} else {
|
||||
if (onSave) {
|
||||
if (onSave && this.data.openCalculatedFieldEdit) {
|
||||
this.dialog.closeAll();
|
||||
}
|
||||
return of(result.output);
|
||||
|
||||
@ -127,7 +127,7 @@ export interface CalculatedFieldArgumentValue extends CalculatedFieldArgument {
|
||||
argumentName: string;
|
||||
}
|
||||
|
||||
export type CalculatedFieldTestScriptFn = (calculatedField: CalculatedField, argumentsObj?: Record<string, unknown>) => Observable<string>;
|
||||
export type CalculatedFieldTestScriptFn = (calculatedField: CalculatedField, argumentsObj?: Record<string, unknown>, closeAllOnSave?: boolean) => Observable<string>;
|
||||
|
||||
export interface CalculatedFieldDialogData {
|
||||
value?: CalculatedField;
|
||||
@ -152,6 +152,10 @@ export interface CalculatedFieldTestScriptInputParams {
|
||||
expression: string;
|
||||
}
|
||||
|
||||
export interface CalculatedFieldTestScriptDialogData extends CalculatedFieldTestScriptInputParams {
|
||||
openCalculatedFieldEdit?: boolean;
|
||||
}
|
||||
|
||||
export interface ArgumentEntityTypeParams {
|
||||
title: string;
|
||||
entityType: EntityType
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user