|
|
|
@ -35,10 +35,11 @@ import { |
|
|
|
import { noLeadTrailSpacesRegex } from '@shared/models/regex.constants'; |
|
|
|
import { AttributeScope } from '@shared/models/telemetry/telemetry.models'; |
|
|
|
import { EntityType } from '@shared/models/entity-type.models'; |
|
|
|
import { map, startWith } from 'rxjs/operators'; |
|
|
|
import { map, startWith, switchMap } from 'rxjs/operators'; |
|
|
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; |
|
|
|
import { ScriptLanguage } from '@shared/models/rule-node.models'; |
|
|
|
import { CalculatedFieldsService } from '@core/http/calculated-fields.service'; |
|
|
|
import { Observable } from 'rxjs'; |
|
|
|
|
|
|
|
@Component({ |
|
|
|
selector: 'tb-calculated-field-dialog', |
|
|
|
@ -136,7 +137,23 @@ export class CalculatedFieldDialogComponent extends DialogComponent<CalculatedFi |
|
|
|
} |
|
|
|
|
|
|
|
onTestScript(): void { |
|
|
|
this.data.getTestScriptDialogFn(this.fromGroupValue, null, false).subscribe(expression => { |
|
|
|
const calculatedFieldId = this.data.value?.id?.id; |
|
|
|
let testScriptDialogResult$: Observable<string>; |
|
|
|
|
|
|
|
if (calculatedFieldId) { |
|
|
|
testScriptDialogResult$ = this.calculatedFieldsService.getLatestCalculatedFieldDebugEvent(calculatedFieldId) |
|
|
|
.pipe( |
|
|
|
switchMap(event => { |
|
|
|
const args = event?.arguments ? JSON.parse(event.arguments) : null; |
|
|
|
return this.data.getTestScriptDialogFn(this.fromGroupValue, args, false); |
|
|
|
}), |
|
|
|
takeUntilDestroyed(this.destroyRef) |
|
|
|
) |
|
|
|
} else { |
|
|
|
testScriptDialogResult$ = this.data.getTestScriptDialogFn(this.fromGroupValue, null, false); |
|
|
|
} |
|
|
|
|
|
|
|
testScriptDialogResult$.subscribe(expression => { |
|
|
|
this.configFormGroup.get('expressionSCRIPT').setValue(expression); |
|
|
|
this.configFormGroup.get('expressionSCRIPT').markAsDirty(); |
|
|
|
}); |
|
|
|
|