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