UI separate prefilling sources fixed Value fields
This commit is contained in:
parent
656afc2045
commit
96696f1a14
|
@ -87,7 +87,10 @@ public class PrefillingSourceDefinitionFieldPersist {
|
||||||
.failOn(PrefillingSourceDefinitionFieldPersist._code).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFieldPersist._code}, LocaleContextHolder.getLocale())),
|
.failOn(PrefillingSourceDefinitionFieldPersist._code).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFieldPersist._code}, LocaleContextHolder.getLocale())),
|
||||||
this.spec()
|
this.spec()
|
||||||
.must(() -> !this.isEmpty(item.getSemanticTarget()) || !this.isEmpty(item.getSystemFieldTarget()))
|
.must(() -> !this.isEmpty(item.getSemanticTarget()) || !this.isEmpty(item.getSystemFieldTarget()))
|
||||||
.failOn(PrefillingSourceDefinitionFieldPersist._semanticTarget).failWith(messageSource.getMessage("Validation_UnexpectedValue", new Object[]{PrefillingSourceDefinitionFieldPersist._semanticTarget}, LocaleContextHolder.getLocale()))
|
.failOn(PrefillingSourceDefinitionFieldPersist._semanticTarget).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFieldPersist._semanticTarget}, LocaleContextHolder.getLocale())),
|
||||||
|
this.spec()
|
||||||
|
.must(() -> !this.isEmpty(item.getSemanticTarget()) || !this.isEmpty(item.getSystemFieldTarget()))
|
||||||
|
.failOn(PrefillingSourceDefinitionFieldPersist._systemFieldTarget).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFieldPersist._systemFieldTarget}, LocaleContextHolder.getLocale()))
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,14 +86,11 @@ public class PrefillingSourceDefinitionFixedValueFieldPersist {
|
||||||
.must(() -> !this.isEmpty(item.getFixedValue()))
|
.must(() -> !this.isEmpty(item.getFixedValue()))
|
||||||
.failOn(PrefillingSourceDefinitionFixedValueFieldPersist._fixedValue).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFixedValueFieldPersist._fixedValue}, LocaleContextHolder.getLocale())),
|
.failOn(PrefillingSourceDefinitionFixedValueFieldPersist._fixedValue).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFixedValueFieldPersist._fixedValue}, LocaleContextHolder.getLocale())),
|
||||||
this.spec()
|
this.spec()
|
||||||
.iff(() -> !this.isEmpty(item.getFixedValue()))
|
.must(() -> !this.isEmpty(item.getSemanticTarget()) || !this.isEmpty(item.getSystemFieldTarget()))
|
||||||
.must(() -> this.isEmpty(item.getSemanticTarget()))
|
.failOn(PrefillingSourceDefinitionFixedValueFieldPersist._semanticTarget).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFixedValueFieldPersist._semanticTarget}, LocaleContextHolder.getLocale())),
|
||||||
.failOn(PrefillingSourceDefinitionFixedValueFieldPersist._semanticTarget).failWith(messageSource.getMessage("Validation_UnexpectedValue", new Object[]{PrefillingSourceDefinitionFixedValueFieldPersist._semanticTarget}, LocaleContextHolder.getLocale())),
|
|
||||||
this.spec()
|
this.spec()
|
||||||
.iff(() -> !this.isEmpty(item.getSemanticTarget()))
|
.must(() -> !this.isEmpty(item.getSemanticTarget()) || !this.isEmpty(item.getSystemFieldTarget()))
|
||||||
.must(() -> this.isEmpty(item.getFixedValue()))
|
.failOn(PrefillingSourceDefinitionFixedValueFieldPersist._systemFieldTarget).failWith(messageSource.getMessage("Validation_Required", new Object[]{PrefillingSourceDefinitionFixedValueFieldPersist._systemFieldTarget}, LocaleContextHolder.getLocale()))
|
||||||
.failOn(PrefillingSourceDefinitionFixedValueFieldPersist._fixedValue).failWith(messageSource.getMessage("Validation_UnexpectedValue", new Object[]{PrefillingSourceDefinitionFixedValueFieldPersist._fixedValue}, LocaleContextHolder.getLocale()))
|
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ export interface PrefillingSource extends BaseEntity{
|
||||||
|
|
||||||
export interface PrefillingSourceDefinition{
|
export interface PrefillingSourceDefinition{
|
||||||
fields: PrefillingSourceDefinitionField[];
|
fields: PrefillingSourceDefinitionField[];
|
||||||
|
fixedValueFields: PrefillingSourceDefinitionFixedValueField[];
|
||||||
searchConfiguration: ExternalFetcherBaseSourceConfiguration;
|
searchConfiguration: ExternalFetcherBaseSourceConfiguration;
|
||||||
getConfiguration: ExternalFetcherBaseSourceConfiguration;
|
getConfiguration: ExternalFetcherBaseSourceConfiguration;
|
||||||
}
|
}
|
||||||
|
@ -17,6 +18,12 @@ export interface PrefillingSourceDefinitionField {
|
||||||
systemFieldTarget: string;
|
systemFieldTarget: string;
|
||||||
semanticTarget: string;
|
semanticTarget: string;
|
||||||
trimRegex: string;
|
trimRegex: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PrefillingSourceDefinitionFixedValueField {
|
||||||
|
systemFieldTarget: string;
|
||||||
|
semanticTarget: string;
|
||||||
|
trimRegex: string;
|
||||||
fixedValue: string;
|
fixedValue: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +36,7 @@ export interface PrefillingSourcePersist extends BaseEntityPersist{
|
||||||
|
|
||||||
export interface PrefillingSourceDefinitionPersist{
|
export interface PrefillingSourceDefinitionPersist{
|
||||||
fields: PrefillingSourceDefinitionFieldPersist[];
|
fields: PrefillingSourceDefinitionFieldPersist[];
|
||||||
|
fixedValueFields: PrefillingSourceDefinitionFixedValueFieldPersist[];
|
||||||
searchConfiguration: ExternalFetcherBaseSourceConfigurationPersist;
|
searchConfiguration: ExternalFetcherBaseSourceConfigurationPersist;
|
||||||
getConfiguration: ExternalFetcherBaseSourceConfigurationPersist;
|
getConfiguration: ExternalFetcherBaseSourceConfigurationPersist;
|
||||||
}
|
}
|
||||||
|
@ -38,6 +46,11 @@ export interface PrefillingSourceDefinitionFieldPersist {
|
||||||
systemFieldTarget: string;
|
systemFieldTarget: string;
|
||||||
semanticTarget: string;
|
semanticTarget: string;
|
||||||
trimRegex: string;
|
trimRegex: string;
|
||||||
fixedValue: string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface PrefillingSourceDefinitionFixedValueFieldPersist {
|
||||||
|
systemFieldTarget: string;
|
||||||
|
semanticTarget: string;
|
||||||
|
trimRegex: string;
|
||||||
|
fixedValue: string;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
<div class="col">
|
||||||
|
<mat-form-field class="w-100">
|
||||||
|
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.SYSTEM-TARGET' | translate}}</mat-label>
|
||||||
|
<mat-select [formControl]="form.get('systemFieldTarget')">
|
||||||
|
<mat-option *ngFor="let systemFieldTarget of prefillingSourceSystemTargetTypeEnumValues" [value]="systemFieldTarget">{{enumUtils.toPrefillingSourceSystemTargetTypeString(systemFieldTarget)}}</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
<mat-error *ngIf="form.get('systemFieldTarget').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<mat-form-field class="w-100">
|
||||||
|
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.SEMANTIC-TARGET' | translate}}</mat-label>
|
||||||
|
<app-single-auto-complete placeholder="{{'PREFILLING-SOURCE-EDITOR.FIELDS.SEMANTIC-TARGET' | translate}}" [formControl]="form.get('semanticTarget')" [configuration]="semanticsService.singleAutocompleteConfiguration"> </app-single-auto-complete>
|
||||||
|
<mat-error *ngIf="form.get('semanticTarget').hasError('backendError')">{{formGroup.get('semanticTarget').getError('backendError').message}}</mat-error>
|
||||||
|
<mat-error *ngIf="form.get('semanticTarget').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<mat-form-field class="w-100">
|
||||||
|
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.TRIM-REGEX' | translate}}</mat-label>
|
||||||
|
<input matInput type="text" name="trimRegex" [formControl]="form.get('trimRegex')">
|
||||||
|
<mat-error *ngIf="form.get('trimRegex').hasError('backendError')">{{formGroup.get('trimRegex').getError('backendError').message}}</mat-error>
|
||||||
|
<mat-error *ngIf="form.get('trimRegex').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
|
@ -0,0 +1,28 @@
|
||||||
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
|
import { UntypedFormGroup } from '@angular/forms';
|
||||||
|
import { PrefillingSourceSystemTargetType } from '@app/core/common/enum/prefilling-source-system-target-type';
|
||||||
|
import { SemanticsService } from '@app/core/services/semantic/semantics.service';
|
||||||
|
import { EnumUtils } from '@app/core/services/utilities/enum-utils.service';
|
||||||
|
import { BaseComponent } from '@common/base/base.component';
|
||||||
|
import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-prefilling-source-field-component',
|
||||||
|
templateUrl: 'prefilling-source-field.component.html',
|
||||||
|
styleUrls: ['./prefilling-source-field.component.scss']
|
||||||
|
})
|
||||||
|
export class PrefillingSourceComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
|
@Input() form: UntypedFormGroup = null;
|
||||||
|
|
||||||
|
prefillingSourceSystemTargetTypeEnumValues = this.enumUtils.getEnumValues<PrefillingSourceSystemTargetType>(PrefillingSourceSystemTargetType);
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public enumUtils: EnumUtils,
|
||||||
|
public semanticsService: SemanticsService,
|
||||||
|
) { super(); }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -38,54 +38,31 @@
|
||||||
<mat-error *ngIf="formGroup.get('label').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('label').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<!-- Fields -->
|
</div>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
<mat-card appearance="outlined">
|
||||||
|
<mat-card-header>
|
||||||
|
<mat-card-title>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIXED-VALUE-FIELDS' | translate}}</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<div class="row">
|
||||||
|
<!-- Fixed Value Fields -->
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div *ngFor="let field of formGroup.get('definition').get('fields').controls; let fieldIndex=index;" class="row mb-3">
|
<div *ngFor="let field of formGroup.get('definition').get('fixedValueFields').controls; let fieldIndex=index;" class="row mb-3">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="row mb-3 d-flex align-items-center">
|
<div class="row mb-3 d-flex align-items-center">
|
||||||
<div class="col-auto d-flex">
|
<div class="col-auto d-flex">
|
||||||
<mat-card-title>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIELD' | translate}} {{fieldIndex + 1}}</mat-card-title>
|
<mat-card-title>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIELD' | translate}} {{fieldIndex + 1}}</mat-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto d-flex">
|
<div class="col-auto d-flex">
|
||||||
<button mat-icon-button class="action-list-icon" matTooltip="{{'PREFILLING-SOURCE-EDITOR.ACTIONS.REMOVE-FIELD' | translate}}" (click)="removeField(fieldIndex)" [disabled]="formGroup.disabled">
|
<button mat-icon-button class="action-list-icon" matTooltip="{{'PREFILLING-SOURCE-EDITOR.ACTIONS.REMOVE-FIELD' | translate}}" (click)="removeFixedValueField(fieldIndex)" [disabled]="formGroup.disabled">
|
||||||
<mat-icon>delete</mat-icon>
|
<mat-icon>delete</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" >
|
<div class="col-auto" >
|
||||||
<div class="col">
|
<app-prefilling-source-field-component [form]="field"></app-prefilling-source-field-component>
|
||||||
<mat-form-field class="w-100">
|
|
||||||
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.CODE' | translate}}</mat-label>
|
|
||||||
<input matInput type="text" name="code" [formControl]="field.get('code')">
|
|
||||||
<mat-error *ngIf="field.get('code').hasError('backendError')">{{field.get('code').getError('backendError').message}}</mat-error>
|
|
||||||
<mat-error *ngIf="field.get('code').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<mat-form-field class="w-100">
|
|
||||||
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.SYSTEM-TARGET' | translate}}</mat-label>
|
|
||||||
<mat-select [formControl]="field.get('systemFieldTarget')">
|
|
||||||
<mat-option *ngFor="let systemFieldTarget of prefillingSourceSystemTargetTypeEnumValues" [value]="systemFieldTarget">{{enumUtils.toPrefillingSourceSystemTargetTypeString(systemFieldTarget)}}</mat-option>
|
|
||||||
</mat-select>
|
|
||||||
<mat-error *ngIf="field.get('systemFieldTarget').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
<div class="col-12">
|
|
||||||
<mat-form-field class="w-100">
|
|
||||||
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.SEMANTIC-TARGET' | translate}}</mat-label>
|
|
||||||
<app-single-auto-complete placeholder="{{'PREFILLING-SOURCE-EDITOR.FIELDS.SEMANTIC-TARGET' | translate}}" [formControl]="field.get('semanticTarget')" [configuration]="semanticsService.singleAutocompleteConfiguration"> </app-single-auto-complete>
|
|
||||||
<mat-error *ngIf="field.get('semanticTarget').hasError('backendError')">{{field.get('semanticTarget').getError('backendError').message}}</mat-error>
|
|
||||||
<mat-error *ngIf="field.get('semanticTarget').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<mat-form-field class="w-100">
|
|
||||||
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.TRIM-REGEX' | translate}}</mat-label>
|
|
||||||
<input matInput type="text" name="trimRegex" [formControl]="field.get('trimRegex')">
|
|
||||||
<mat-error *ngIf="field.get('trimRegex').hasError('backendError')">{{field.get('trimRegex').getError('backendError').message}}</mat-error>
|
|
||||||
<mat-error *ngIf="field.get('trimRegex').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<mat-form-field class="w-100">
|
<mat-form-field class="w-100">
|
||||||
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIXED-VALUE' | translate}}</mat-label>
|
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIXED-VALUE' | translate}}</mat-label>
|
||||||
|
@ -97,13 +74,49 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button mat-button class="action-btn" type="button" (click)="addField()" [disabled]="formGroup.disabled">{{'PREFILLING-SOURCE-EDITOR.ACTIONS.ADD-FIELD' | translate}}</button>
|
<button mat-button class="action-btn" type="button" (click)="addFixedValiueField()" [disabled]="formGroup.disabled">{{'PREFILLING-SOURCE-EDITOR.ACTIONS.ADD-FIELD' | translate}}</button>
|
||||||
<button mat-button class="action-btn" *ngIf="formGroup.get('definition').get('fields').value != ''"
|
|
||||||
type="button" (click)="submitFields()" [disabled]="!formGroup.get('definition').get('fields').valid">{{'PREFILLING-SOURCE-EDITOR.ACTIONS.SUBMIT-FIELDS' | translate}}</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
|
<mat-card appearance="outlined">
|
||||||
|
<mat-card-header>
|
||||||
|
<mat-card-title>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIELDS' | translate}}</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<!-- Fields -->
|
||||||
|
<div class="col-12">
|
||||||
|
<div *ngFor="let field of formGroup.get('definition').get('fields').controls; let fieldIndex=index;" class="row mb-3">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="row mb-3 d-flex align-items-center">
|
||||||
|
<div class="col-auto d-flex">
|
||||||
|
<mat-card-title>{{'PREFILLING-SOURCE-EDITOR.FIELDS.FIELD' | translate}} {{fieldIndex + 1}}</mat-card-title>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto d-flex">
|
||||||
|
<button mat-icon-button class="action-list-icon" matTooltip="{{'PREFILLING-SOURCE-EDITOR.ACTIONS.REMOVE-FIELD' | translate}}" (click)="removeField(fieldIndex)" [disabled]="formGroup.disabled">
|
||||||
|
<mat-icon>delete</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto" >
|
||||||
|
<div class="col">
|
||||||
|
<mat-form-field class="w-100">
|
||||||
|
<mat-label>{{'PREFILLING-SOURCE-EDITOR.FIELDS.CODE' | translate}}</mat-label>
|
||||||
|
<input matInput type="text" name="code" [formControl]="field.get('code')">
|
||||||
|
<mat-error *ngIf="field.get('code').hasError('backendError')">{{field.get('code').getError('backendError').message}}</mat-error>
|
||||||
|
<mat-error *ngIf="field.get('code').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<app-prefilling-source-field-component [form]="field"></app-prefilling-source-field-component>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button mat-button class="action-btn" type="button" (click)="addField()" [disabled]="formGroup.disabled">{{'PREFILLING-SOURCE-EDITOR.ACTIONS.ADD-FIELD' | translate}}</button>
|
||||||
|
<button mat-button class="action-btn" *ngIf="formGroup.get('definition').get('fields').value != ''"
|
||||||
|
type="button" (click)="submitFields()" [disabled]="!formGroup.get('definition').get('fields').valid">{{'PREFILLING-SOURCE-EDITOR.ACTIONS.SUBMIT-FIELDS' | translate}}</button>
|
||||||
|
</div>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
|
||||||
<mat-card appearance="outlined">
|
<mat-card appearance="outlined">
|
||||||
<mat-card-header>
|
<mat-card-header>
|
||||||
|
|
|
@ -27,9 +27,7 @@ import { PrefillingSourceEditorResolver } from './prefilling-source-editor.resol
|
||||||
import { PrefillingSourceEditorService } from './prefilling-source-editor.service';
|
import { PrefillingSourceEditorService } from './prefilling-source-editor.service';
|
||||||
import { PrefillingSourceDefinitionEditorModel, PrefillingSourceEditorModel } from './prefilling-source-editor.model';
|
import { PrefillingSourceDefinitionEditorModel, PrefillingSourceEditorModel } from './prefilling-source-editor.model';
|
||||||
import { ResultFieldsMappingConfigurationEditorModel } from '@app/ui/external-fetcher/external-fetcher-source-editor.model';
|
import { ResultFieldsMappingConfigurationEditorModel } from '@app/ui/external-fetcher/external-fetcher-source-editor.model';
|
||||||
import { SemanticsService } from '@app/core/services/semantic/semantics.service';
|
|
||||||
import { MatCheckboxChange } from '@angular/material/checkbox';
|
import { MatCheckboxChange } from '@angular/material/checkbox';
|
||||||
import { PrefillingSourceSystemTargetType } from '@app/core/common/enum/prefilling-source-system-target-type';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-prefilling-source-editor-component',
|
selector: 'app-prefilling-source-editor-component',
|
||||||
|
@ -43,7 +41,6 @@ export class PrefillingSourceEditorComponent extends BaseEditor<PrefillingSource
|
||||||
isDeleted = false;
|
isDeleted = false;
|
||||||
formGroup: UntypedFormGroup = null;
|
formGroup: UntypedFormGroup = null;
|
||||||
showInactiveDetails = false;
|
showInactiveDetails = false;
|
||||||
prefillingSourceSystemTargetTypeEnumValues = this.enumUtils.getEnumValues<PrefillingSourceSystemTargetType>(PrefillingSourceSystemTargetType);
|
|
||||||
|
|
||||||
protected get canDelete(): boolean {
|
protected get canDelete(): boolean {
|
||||||
return !this.isDeleted && !this.isNew && this.hasPermission(this.authService.permissionEnum.DeletePrefillingSource);
|
return !this.isDeleted && !this.isNew && this.hasPermission(this.authService.permissionEnum.DeletePrefillingSource);
|
||||||
|
@ -75,7 +72,6 @@ export class PrefillingSourceEditorComponent extends BaseEditor<PrefillingSource
|
||||||
private prefillingSourceService: PrefillingSourceService,
|
private prefillingSourceService: PrefillingSourceService,
|
||||||
private logger: LoggingService,
|
private logger: LoggingService,
|
||||||
private prefillingSourceEditorService: PrefillingSourceEditorService,
|
private prefillingSourceEditorService: PrefillingSourceEditorService,
|
||||||
public semanticsService: SemanticsService,
|
|
||||||
private matomoService: MatomoService
|
private matomoService: MatomoService
|
||||||
) {
|
) {
|
||||||
super(dialog, language, formService, router, uiNotificationService, httpErrorHandlingService, filterService, datePipe, route, queryParamsService);
|
super(dialog, language, formService, router, uiNotificationService, httpErrorHandlingService, filterService, datePipe, route, queryParamsService);
|
||||||
|
@ -196,6 +192,30 @@ export class PrefillingSourceEditorComponent extends BaseEditor<PrefillingSource
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// fixed value fields
|
||||||
|
//
|
||||||
|
//
|
||||||
|
addFixedValiueField(): void {
|
||||||
|
(this.formGroup.get('definition').get('fixedValueFields') as FormArray).push(this.editorModel.createChildFixedValueField((this.formGroup.get('definition').get('fixedValueFields') as FormArray).length));
|
||||||
|
}
|
||||||
|
|
||||||
|
removeFixedValueField(fieldIndex: number): void {
|
||||||
|
const fieldForm = this.formGroup.get('definition').get('fixedValueFields') as FormArray;
|
||||||
|
|
||||||
|
fieldForm.removeAt(fieldIndex);
|
||||||
|
|
||||||
|
//Reapply validators
|
||||||
|
PrefillingSourceEditorModel.reApplyDefinitionValidators(
|
||||||
|
{
|
||||||
|
formGroup: this.formGroup,
|
||||||
|
validationErrorModel: this.editorModel.validationErrorModel
|
||||||
|
}
|
||||||
|
)
|
||||||
|
fieldForm.markAsDirty();
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// fields
|
// fields
|
||||||
|
@ -256,6 +276,7 @@ export class PrefillingSourceEditorComponent extends BaseEditor<PrefillingSource
|
||||||
const fieldsMapping = new ResultFieldsMappingConfigurationEditorModel(this.editorModel.validationErrorModel);
|
const fieldsMapping = new ResultFieldsMappingConfigurationEditorModel(this.editorModel.validationErrorModel);
|
||||||
fieldsMapping.code = code;
|
fieldsMapping.code = code;
|
||||||
formArray.push(fieldsMapping.buildForm({rootPath: "definition." + controlName + ".results.fieldsMapping[" + fieldMappingSize + "]."}));
|
formArray.push(fieldsMapping.buildForm({rootPath: "definition." + controlName + ".results.fieldsMapping[" + fieldMappingSize + "]."}));
|
||||||
|
// formArray.at(fieldMappingSize).get('code').patchValue(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeFieldMapping(baseFormGroup: any, fieldCode: string){
|
removeFieldMapping(baseFormGroup: any, fieldCode: string){
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
|
import { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
|
||||||
import { PrefillingSource, PrefillingSourceDefinition, PrefillingSourceDefinitionField, PrefillingSourceDefinitionFieldPersist, PrefillingSourceDefinitionPersist, PrefillingSourcePersist } from "@app/core/model/prefilling-source/prefilling-source";
|
import { PrefillingSource, PrefillingSourceDefinition, PrefillingSourceDefinitionField, PrefillingSourceDefinitionFieldPersist, PrefillingSourceDefinitionFixedValueField, PrefillingSourceDefinitionFixedValueFieldPersist, PrefillingSourceDefinitionPersist, PrefillingSourcePersist } from "@app/core/model/prefilling-source/prefilling-source";
|
||||||
import { ExternalFetcherBaseSourceConfigurationEditorModel, QueryCaseConfigEditorModel, QueryConfigEditorModel } from "@app/ui/external-fetcher/external-fetcher-source-editor.model";
|
import { ExternalFetcherBaseSourceConfigurationEditorModel, QueryCaseConfigEditorModel, QueryConfigEditorModel } from "@app/ui/external-fetcher/external-fetcher-source-editor.model";
|
||||||
|
|
||||||
import { BaseEditorModel } from "@common/base/base-form-editor-model";
|
import { BaseEditorModel } from "@common/base/base-form-editor-model";
|
||||||
|
@ -69,10 +69,16 @@ export class PrefillingSourceEditorModel extends BaseEditorModel implements Pref
|
||||||
const field: PrefillingSourceDefinitionFieldEditorModel = new PrefillingSourceDefinitionFieldEditorModel(this.validationErrorModel);
|
const field: PrefillingSourceDefinitionFieldEditorModel = new PrefillingSourceDefinitionFieldEditorModel(this.validationErrorModel);
|
||||||
return field.buildForm({ rootPath: 'definition.fields[' + index + '].' });
|
return field.buildForm({ rootPath: 'definition.fields[' + index + '].' });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createChildFixedValueField(index: number): UntypedFormGroup {
|
||||||
|
const field: PrefillingSourceDefinitionFixedValueFieldEditorModel = new PrefillingSourceDefinitionFixedValueFieldEditorModel(this.validationErrorModel);
|
||||||
|
return field.buildForm({ rootPath: 'definition.fixedValueFields[' + index + '].' });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class PrefillingSourceDefinitionEditorModel implements PrefillingSourceDefinitionPersist {
|
export class PrefillingSourceDefinitionEditorModel implements PrefillingSourceDefinitionPersist {
|
||||||
fields: PrefillingSourceDefinitionFieldEditorModel[] = [];
|
fields: PrefillingSourceDefinitionFieldEditorModel[] = [];
|
||||||
|
fixedValueFields: PrefillingSourceDefinitionFixedValueFieldEditorModel[] = [];
|
||||||
searchConfiguration: ExternalFetcherBaseSourceConfigurationEditorModel = new ExternalFetcherBaseSourceConfigurationEditorModel(this.validationErrorModel);
|
searchConfiguration: ExternalFetcherBaseSourceConfigurationEditorModel = new ExternalFetcherBaseSourceConfigurationEditorModel(this.validationErrorModel);
|
||||||
getConfiguration: ExternalFetcherBaseSourceConfigurationEditorModel;
|
getConfiguration: ExternalFetcherBaseSourceConfigurationEditorModel;
|
||||||
getEnabled = false;
|
getEnabled = false;
|
||||||
|
@ -86,6 +92,7 @@ export class PrefillingSourceDefinitionEditorModel implements PrefillingSourceDe
|
||||||
public fromModel(item: PrefillingSourceDefinition): PrefillingSourceDefinitionEditorModel {
|
public fromModel(item: PrefillingSourceDefinition): PrefillingSourceDefinitionEditorModel {
|
||||||
if (item) {
|
if (item) {
|
||||||
if (item.fields) { item.fields.map(x => this.fields.push(new PrefillingSourceDefinitionFieldEditorModel(this.validationErrorModel).fromModel(x))); }
|
if (item.fields) { item.fields.map(x => this.fields.push(new PrefillingSourceDefinitionFieldEditorModel(this.validationErrorModel).fromModel(x))); }
|
||||||
|
if (item.fixedValueFields) { item.fixedValueFields.map(x => this.fixedValueFields.push(new PrefillingSourceDefinitionFixedValueFieldEditorModel(this.validationErrorModel).fromModel(x))); }
|
||||||
if (item.searchConfiguration) this.searchConfiguration = new ExternalFetcherBaseSourceConfigurationEditorModel(this.validationErrorModel).fromModel(item.searchConfiguration);
|
if (item.searchConfiguration) this.searchConfiguration = new ExternalFetcherBaseSourceConfigurationEditorModel(this.validationErrorModel).fromModel(item.searchConfiguration);
|
||||||
if (item.getConfiguration) {
|
if (item.getConfiguration) {
|
||||||
this.getConfiguration = new ExternalFetcherBaseSourceConfigurationEditorModel(this.validationErrorModel).fromModel(item.getConfiguration);
|
this.getConfiguration = new ExternalFetcherBaseSourceConfigurationEditorModel(this.validationErrorModel).fromModel(item.getConfiguration);
|
||||||
|
@ -113,8 +120,15 @@ export class PrefillingSourceDefinitionEditorModel implements PrefillingSourceDe
|
||||||
(this.fields ?? []).map(
|
(this.fields ?? []).map(
|
||||||
(item, index) => item.buildForm({
|
(item, index) => item.buildForm({
|
||||||
rootPath: `${rootPath}fields[${index}].`
|
rootPath: `${rootPath}fields[${index}].`
|
||||||
}), context.getValidation('fields')
|
})
|
||||||
)
|
), context.getValidation('fields')
|
||||||
|
),
|
||||||
|
fixedValueFields: this.formBuilder.array(
|
||||||
|
(this.fixedValueFields ?? []).map(
|
||||||
|
(item, index) => item.buildForm({
|
||||||
|
rootPath: `${rootPath}fixedValueFields[${index}].`
|
||||||
|
})
|
||||||
|
), context.getValidation('fixedValueFields')
|
||||||
),
|
),
|
||||||
searchConfiguration: this.searchConfiguration.buildForm({
|
searchConfiguration: this.searchConfiguration.buildForm({
|
||||||
rootPath: `${rootPath}searchConfiguration.`
|
rootPath: `${rootPath}searchConfiguration.`
|
||||||
|
@ -149,7 +163,8 @@ export class PrefillingSourceDefinitionEditorModel implements PrefillingSourceDe
|
||||||
|
|
||||||
const baseContext: ValidationContext = new ValidationContext();
|
const baseContext: ValidationContext = new ValidationContext();
|
||||||
const baseValidationArray: Validation[] = new Array<Validation>();
|
const baseValidationArray: Validation[] = new Array<Validation>();
|
||||||
baseValidationArray.push({ key: 'fields', validators: [Validators.required, BackendErrorValidator(validationErrorModel, `${rootPath}fields`)] });
|
baseValidationArray.push({ key: 'fields', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}fields`)] });
|
||||||
|
baseValidationArray.push({ key: 'fixedValueFields', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}fixedValueFields`)] });
|
||||||
baseValidationArray.push({ key: 'searchConfiguration', validators: [Validators.required, BackendErrorValidator(validationErrorModel, `${rootPath}searchConfiguration`)] });
|
baseValidationArray.push({ key: 'searchConfiguration', validators: [Validators.required, BackendErrorValidator(validationErrorModel, `${rootPath}searchConfiguration`)] });
|
||||||
baseValidationArray.push({ key: 'getConfiguration', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}getConfiguration`)] });
|
baseValidationArray.push({ key: 'getConfiguration', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}getConfiguration`)] });
|
||||||
baseValidationArray.push({ key: 'getEnabled', validators: [Validators.required, BackendErrorValidator(validationErrorModel, `${rootPath}getConfiguration`)] });
|
baseValidationArray.push({ key: 'getEnabled', validators: [Validators.required, BackendErrorValidator(validationErrorModel, `${rootPath}getConfiguration`)] });
|
||||||
|
@ -172,6 +187,14 @@ export class PrefillingSourceDefinitionEditorModel implements PrefillingSourceDe
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
(formGroup.get('fixedValueFields') as UntypedFormArray).controls?.forEach(
|
||||||
|
(control, index) => PrefillingSourceDefinitionFixedValueFieldEditorModel.reapplyValidators({
|
||||||
|
formGroup: control as UntypedFormGroup,
|
||||||
|
rootPath: `${rootPath}fixedValueFields[${index}].`,
|
||||||
|
validationErrorModel: validationErrorModel
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
ExternalFetcherBaseSourceConfigurationEditorModel.reapplyValidators({
|
ExternalFetcherBaseSourceConfigurationEditorModel.reapplyValidators({
|
||||||
formGroup: formGroup.get('searchConfiguration') as UntypedFormGroup,
|
formGroup: formGroup.get('searchConfiguration') as UntypedFormGroup,
|
||||||
rootPath: `${rootPath}searchConfiguration.`,
|
rootPath: `${rootPath}searchConfiguration.`,
|
||||||
|
@ -193,7 +216,6 @@ export class PrefillingSourceDefinitionFieldEditorModel implements PrefillingSou
|
||||||
systemFieldTarget: string;
|
systemFieldTarget: string;
|
||||||
semanticTarget: string;
|
semanticTarget: string;
|
||||||
trimRegex: string;
|
trimRegex: string;
|
||||||
fixedValue: string;
|
|
||||||
|
|
||||||
protected formBuilder: UntypedFormBuilder = new UntypedFormBuilder();
|
protected formBuilder: UntypedFormBuilder = new UntypedFormBuilder();
|
||||||
|
|
||||||
|
@ -207,7 +229,6 @@ export class PrefillingSourceDefinitionFieldEditorModel implements PrefillingSou
|
||||||
this.systemFieldTarget = item.systemFieldTarget;
|
this.systemFieldTarget = item.systemFieldTarget;
|
||||||
this.semanticTarget = item.semanticTarget;
|
this.semanticTarget = item.semanticTarget;
|
||||||
this.trimRegex = item.trimRegex;
|
this.trimRegex = item.trimRegex;
|
||||||
this.fixedValue = item.fixedValue;
|
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -230,7 +251,6 @@ export class PrefillingSourceDefinitionFieldEditorModel implements PrefillingSou
|
||||||
systemFieldTarget: [{ value: this.systemFieldTarget, disabled: disabled }, context.getValidation('systemFieldTarget').validators],
|
systemFieldTarget: [{ value: this.systemFieldTarget, disabled: disabled }, context.getValidation('systemFieldTarget').validators],
|
||||||
semanticTarget: [{ value: this.semanticTarget, disabled: disabled }, context.getValidation('semanticTarget').validators],
|
semanticTarget: [{ value: this.semanticTarget, disabled: disabled }, context.getValidation('semanticTarget').validators],
|
||||||
trimRegex: [{ value: this.trimRegex, disabled: disabled }, context.getValidation('trimRegex').validators],
|
trimRegex: [{ value: this.trimRegex, disabled: disabled }, context.getValidation('trimRegex').validators],
|
||||||
fixedValue: [{ value: this.fixedValue, disabled: disabled }, context.getValidation('fixedValue').validators],
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -246,7 +266,6 @@ export class PrefillingSourceDefinitionFieldEditorModel implements PrefillingSou
|
||||||
baseValidationArray.push({ key: 'systemFieldTarget', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}systemFieldTarget`)] });
|
baseValidationArray.push({ key: 'systemFieldTarget', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}systemFieldTarget`)] });
|
||||||
baseValidationArray.push({ key: 'semanticTarget', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}semanticTarget`)] });
|
baseValidationArray.push({ key: 'semanticTarget', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}semanticTarget`)] });
|
||||||
baseValidationArray.push({ key: 'trimRegex', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}trimRegex`)] });
|
baseValidationArray.push({ key: 'trimRegex', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}trimRegex`)] });
|
||||||
baseValidationArray.push({ key: 'fixedValue', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}clientSecret`)] });
|
|
||||||
|
|
||||||
baseContext.validation = baseValidationArray;
|
baseContext.validation = baseValidationArray;
|
||||||
return baseContext;
|
return baseContext;
|
||||||
|
@ -264,7 +283,87 @@ export class PrefillingSourceDefinitionFieldEditorModel implements PrefillingSou
|
||||||
validationErrorModel
|
validationErrorModel
|
||||||
});
|
});
|
||||||
|
|
||||||
['code', 'systemFieldTarget', 'semanticTarget', 'trimRegex', 'fixedValue'].forEach(keyField => {
|
['code', 'systemFieldTarget', 'semanticTarget', 'trimRegex'].forEach(keyField => {
|
||||||
|
const control = formGroup?.get(keyField);
|
||||||
|
control?.clearValidators();
|
||||||
|
control?.addValidators(context.getValidation(keyField).validators);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class PrefillingSourceDefinitionFixedValueFieldEditorModel implements PrefillingSourceDefinitionFixedValueFieldPersist {
|
||||||
|
systemFieldTarget: string;
|
||||||
|
semanticTarget: string;
|
||||||
|
trimRegex: string;
|
||||||
|
fixedValue: string;
|
||||||
|
|
||||||
|
protected formBuilder: UntypedFormBuilder = new UntypedFormBuilder();
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel()
|
||||||
|
) { }
|
||||||
|
|
||||||
|
public fromModel(item: PrefillingSourceDefinitionFixedValueField): PrefillingSourceDefinitionFixedValueFieldEditorModel {
|
||||||
|
if (item) {
|
||||||
|
this.systemFieldTarget = item.systemFieldTarget;
|
||||||
|
this.semanticTarget = item.semanticTarget;
|
||||||
|
this.trimRegex = item.trimRegex;
|
||||||
|
this.fixedValue = item.fixedValue;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
buildForm(params?: {
|
||||||
|
context?: ValidationContext,
|
||||||
|
disabled?: boolean,
|
||||||
|
rootPath?: string
|
||||||
|
}): UntypedFormGroup {
|
||||||
|
let { context = null, disabled = false, rootPath } = params ?? {}
|
||||||
|
if (context == null) {
|
||||||
|
context = PrefillingSourceDefinitionFixedValueFieldEditorModel.createValidationContext({
|
||||||
|
validationErrorModel: this.validationErrorModel,
|
||||||
|
rootPath
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.formBuilder.group({
|
||||||
|
systemFieldTarget: [{ value: this.systemFieldTarget, disabled: disabled }, context.getValidation('systemFieldTarget').validators],
|
||||||
|
semanticTarget: [{ value: this.semanticTarget, disabled: disabled }, context.getValidation('semanticTarget').validators],
|
||||||
|
trimRegex: [{ value: this.trimRegex, disabled: disabled }, context.getValidation('trimRegex').validators],
|
||||||
|
fixedValue: [{ value: this.fixedValue, disabled: disabled }, context.getValidation('fixedValue').validators],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
static createValidationContext(params: {
|
||||||
|
rootPath?: string,
|
||||||
|
validationErrorModel: ValidationErrorModel
|
||||||
|
}): ValidationContext {
|
||||||
|
const { rootPath = '', validationErrorModel } = params;
|
||||||
|
|
||||||
|
const baseContext: ValidationContext = new ValidationContext();
|
||||||
|
const baseValidationArray: Validation[] = new Array<Validation>();
|
||||||
|
baseValidationArray.push({ key: 'systemFieldTarget', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}systemFieldTarget`)] });
|
||||||
|
baseValidationArray.push({ key: 'semanticTarget', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}semanticTarget`)] });
|
||||||
|
baseValidationArray.push({ key: 'trimRegex', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}trimRegex`)] });
|
||||||
|
baseValidationArray.push({ key: 'fixedValue', validators: [Validators.required, BackendErrorValidator(validationErrorModel, `${rootPath}fixedValue`)] });
|
||||||
|
|
||||||
|
baseContext.validation = baseValidationArray;
|
||||||
|
return baseContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
static reapplyValidators(params: {
|
||||||
|
formGroup: UntypedFormGroup,
|
||||||
|
validationErrorModel: ValidationErrorModel,
|
||||||
|
rootPath: string
|
||||||
|
}): void {
|
||||||
|
|
||||||
|
const { formGroup, rootPath, validationErrorModel } = params;
|
||||||
|
const context = PrefillingSourceDefinitionFixedValueFieldEditorModel.createValidationContext({
|
||||||
|
rootPath,
|
||||||
|
validationErrorModel
|
||||||
|
});
|
||||||
|
|
||||||
|
['systemFieldTarget', 'semanticTarget', 'trimRegex', 'fixedValue'].forEach(keyField => {
|
||||||
const control = formGroup?.get(keyField);
|
const control = formGroup?.get(keyField);
|
||||||
control?.clearValidators();
|
control?.clearValidators();
|
||||||
control?.addValidators(context.getValidation(keyField).validators);
|
control?.addValidators(context.getValidation(keyField).validators);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
|
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
|
||||||
import { AuthenticationConfiguration, ExternalFetcherBaseSourceConfiguration, QueryCaseConfig, QueryConfig, ResultFieldsMappingConfiguration, ResultsConfiguration } from '@app/core/model/external-fetcher/external-fetcher';
|
import { AuthenticationConfiguration, ExternalFetcherBaseSourceConfiguration, QueryCaseConfig, QueryConfig, ResultFieldsMappingConfiguration, ResultsConfiguration } from '@app/core/model/external-fetcher/external-fetcher';
|
||||||
import { PrefillingSource, PrefillingSourceDefinition, PrefillingSourceDefinitionField } from '@app/core/model/prefilling-source/prefilling-source';
|
import { PrefillingSource, PrefillingSourceDefinition, PrefillingSourceDefinitionField, PrefillingSourceDefinitionFixedValueField } from '@app/core/model/prefilling-source/prefilling-source';
|
||||||
import { PrefillingSourceService } from '@app/core/services/prefilling-source/prefilling-source.service';
|
import { PrefillingSourceService } from '@app/core/services/prefilling-source/prefilling-source.service';
|
||||||
import { BreadcrumbService } from '@app/ui/misc/breadcrumb/breadcrumb.service';
|
import { BreadcrumbService } from '@app/ui/misc/breadcrumb/breadcrumb.service';
|
||||||
import { BaseEditorResolver } from '@common/base/base-editor.resolver';
|
import { BaseEditorResolver } from '@common/base/base-editor.resolver';
|
||||||
|
@ -26,7 +26,11 @@ export class PrefillingSourceEditorResolver extends BaseEditorResolver {
|
||||||
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.systemFieldTarget)].join('.'),
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.systemFieldTarget)].join('.'),
|
||||||
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.semanticTarget)].join('.'),
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.semanticTarget)].join('.'),
|
||||||
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.trimRegex)].join('.'),
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.trimRegex)].join('.'),
|
||||||
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fields), nameof<PrefillingSourceDefinitionField>(x => x.fixedValue)].join('.'),
|
|
||||||
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fixedValueFields), nameof<PrefillingSourceDefinitionFixedValueField>(x => x.systemFieldTarget)].join('.'),
|
||||||
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fixedValueFields), nameof<PrefillingSourceDefinitionFixedValueField>(x => x.semanticTarget)].join('.'),
|
||||||
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fixedValueFields), nameof<PrefillingSourceDefinitionFixedValueField>(x => x.trimRegex)].join('.'),
|
||||||
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.fixedValueFields), nameof<PrefillingSourceDefinitionFixedValueField>(x => x.fixedValue)].join('.'),
|
||||||
|
|
||||||
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.searchConfiguration), nameof<ExternalFetcherBaseSourceConfiguration>(x => x.type)].join('.'),
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.searchConfiguration), nameof<ExternalFetcherBaseSourceConfiguration>(x => x.type)].join('.'),
|
||||||
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.searchConfiguration), nameof<ExternalFetcherBaseSourceConfiguration>(x => x.key)].join('.'),
|
[nameof<PrefillingSource>(x => x.definition), nameof<PrefillingSourceDefinition>(x => x.searchConfiguration), nameof<ExternalFetcherBaseSourceConfiguration>(x => x.key)].join('.'),
|
||||||
|
|
|
@ -15,6 +15,7 @@ import { PrefillingSourceListingComponent } from './listing/prefilling-source-li
|
||||||
import { PrefillingSourceListingFiltersComponent } from './listing/filters/prefilling-source-listing-filters.component';
|
import { PrefillingSourceListingFiltersComponent } from './listing/filters/prefilling-source-listing-filters.component';
|
||||||
import { PrefillingSourceEditorComponent } from './editor/prefilling-source-editor.component';
|
import { PrefillingSourceEditorComponent } from './editor/prefilling-source-editor.component';
|
||||||
import { ExternalFetcherSourceModule } from '@app/ui/external-fetcher/external-fetcher-source.module';
|
import { ExternalFetcherSourceModule } from '@app/ui/external-fetcher/external-fetcher-source.module';
|
||||||
|
import { PrefillingSourceComponent } from './editor/field/prefilling-source-field.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
|
@ -35,6 +36,7 @@ import { ExternalFetcherSourceModule } from '@app/ui/external-fetcher/external-f
|
||||||
declarations: [
|
declarations: [
|
||||||
PrefillingSourceEditorComponent,
|
PrefillingSourceEditorComponent,
|
||||||
PrefillingSourceListingComponent,
|
PrefillingSourceListingComponent,
|
||||||
PrefillingSourceListingFiltersComponent ]
|
PrefillingSourceListingFiltersComponent,
|
||||||
|
PrefillingSourceComponent ]
|
||||||
})
|
})
|
||||||
export class PrefillingSourceModule { }
|
export class PrefillingSourceModule { }
|
||||||
|
|
|
@ -1605,6 +1605,8 @@
|
||||||
"PREFILLING-SOURCE-EDITOR": {
|
"PREFILLING-SOURCE-EDITOR": {
|
||||||
"NEW": "New Prefilling Source",
|
"NEW": "New Prefilling Source",
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"FIXED-VALUE-FIELDS": "Fixed Value Fields",
|
||||||
|
"FIELDS": "API Fields",
|
||||||
"SOURCE-CONFIGURATION":"Search Source Configuration",
|
"SOURCE-CONFIGURATION":"Search Source Configuration",
|
||||||
"GET-SOURCE-CONFIGURATION": "Get Source Configuration",
|
"GET-SOURCE-CONFIGURATION": "Get Source Configuration",
|
||||||
"LABEL": "Label",
|
"LABEL": "Label",
|
||||||
|
|
Loading…
Reference in New Issue