Dataset profile editor. Field Preview Fixes. Summary preview supports visibility rules. Minor UI fixes.
This commit is contained in:
parent
8579071cf7
commit
dd2db4ce1f
|
@ -12,6 +12,7 @@ import { DatasetProfileInternalDmpEntitiesType } from '../../common/enum/dataset
|
|||
import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order';
|
||||
import { Role } from '@app/core/common/enum/role';
|
||||
import { RoleOrganizationType } from '@app/core/common/enum/role-organization-type';
|
||||
import { ViewStyleType } from '@app/ui/admin/dataset-profile/editor/components/field/view-style-enum';
|
||||
|
||||
@Injectable()
|
||||
export class EnumUtils {
|
||||
|
@ -90,6 +91,30 @@ export class EnumUtils {
|
|||
case DatasetProfileFieldViewStyle.Validation: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.VALIDATION');
|
||||
}
|
||||
}
|
||||
toDatasetProfileViewTypeString(status: ViewStyleType) :string{
|
||||
switch (status) {
|
||||
case ViewStyleType.BooleanDecision: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.BOOLEAN-DECISION');
|
||||
case ViewStyleType.CheckBox: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.CHECKBOX');
|
||||
case ViewStyleType.Select: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.SELECT');
|
||||
case ViewStyleType.InternalDmpEntities: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.INTERNAL-DMP-ENTITIES');
|
||||
case ViewStyleType.FreeText: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.FREE-TEXT');
|
||||
case ViewStyleType.RadioBox: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RADIO-BOX');
|
||||
case ViewStyleType.TextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TEXT-AREA');
|
||||
case ViewStyleType.DatePicker: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATE-PICKER');
|
||||
case ViewStyleType.ExternalDatasets: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.EXTERNAL-DATASETS');
|
||||
case ViewStyleType.DataRepositories: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATA-REPOSITORIES');
|
||||
case ViewStyleType.Registries: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.REGISTRIES');
|
||||
case ViewStyleType.Services: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.SERVICES');
|
||||
case ViewStyleType.Tags: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TAGS');
|
||||
case ViewStyleType.Researchers: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RESEARCHERS');
|
||||
case ViewStyleType.Organizations: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.ORGANIZATIONS');
|
||||
case ViewStyleType.DatasetIdentifier: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATASET-IDENTIFIER');
|
||||
case ViewStyleType.Currency: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.CURRENCY');
|
||||
case ViewStyleType.Validation: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.VALIDATION');
|
||||
case ViewStyleType.Other: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.OTHER');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toDatasetProfileComboBoxTypeString(status: DatasetProfileComboBoxType): string {
|
||||
switch (status) {
|
||||
|
|
|
@ -168,7 +168,7 @@
|
|||
</div>
|
||||
<!-- ACTIONS LIST -->
|
||||
<div class="col-auto">
|
||||
<div class="row" class="actions-list">
|
||||
<div class="row" class="actions-list bg-white">
|
||||
<mat-list role="list">
|
||||
<!-- INPUT TOOLS -->
|
||||
<ng-container *ngIf="!viewOnly">
|
||||
|
@ -239,9 +239,9 @@
|
|||
|
||||
</app-form-composite-field> -->
|
||||
|
||||
<!-- Current FORM: {{this.form.value |json}}
|
||||
Current FORM: {{this.form.value |json}}
|
||||
<br>
|
||||
Target: {{this.targetField?.value |json}} -->
|
||||
Target: {{this.targetField?.value |json}}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-PLACEHOLDER' | translate}}"
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
|
||||
|
@ -24,20 +25,25 @@
|
|||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="col-md-12">
|
||||
<input matInput placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-URL' | translate}}" [formControl]="this.singleForm.get('url')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-URL' | translate}}</mat-label>
|
||||
<input matInput [formControl]="this.singleForm.get('url')">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col-md-3">
|
||||
<input matInput placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-OPTIONS-ROOT' | translate}}"
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-OPTIONS-ROOT' | translate}}</mat-label>
|
||||
<input matInput
|
||||
[formControl]="this.singleForm.get('optionsRoot')">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col-md-3">
|
||||
<input matInput placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-LABEL' | translate}}" [formControl]="this.singleForm.get('autoCompleteOptions').get('label')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-LABEL' | translate}}</mat-label>
|
||||
<input matInput [formControl]="this.singleForm.get('autoCompleteOptions').get('label')">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col-md-3">
|
||||
<input matInput placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-VALUE' | translate}}" [formControl]="this.singleForm.get('autoCompleteOptions').get('value')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-VALUE' | translate}}</mat-label>
|
||||
<input matInput [formControl]="this.singleForm.get('autoCompleteOptions').get('value')">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col-md-3">
|
||||
<input matInput placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-SOURCE' | translate}}" [formControl]="this.singleForm.get('autoCompleteOptions').get('source')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-SOURCE' | translate}}</mat-label>
|
||||
<input matInput [formControl]="this.singleForm.get('autoCompleteOptions').get('source')">
|
||||
</mat-form-field>
|
||||
<button mat-button type="button" (click)="removeSource(i)"><mat-icon>delete</mat-icon></button>
|
||||
</div>
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
<div class="row" *ngIf="form.get('data')">
|
||||
<!-- <div class="row" *ngIf="form.get('data')">
|
||||
|
||||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-BOOLEAN-DECISION-TITLE' | translate}}</h5>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-BOOLEAN-DECISION-PLACEHOLDER' | translate}}" [formControl]="form.get('data').get('label')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-BOOLEAN-DECISION-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string" [formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-TITLE' | translate}}</h5>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}" [formControl]="form.get('data').get('label')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string" [formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<div class="row">
|
||||
<mat-form-field class="col-12">
|
||||
<!-- <mat-form-field class="col-12">
|
||||
<mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-COMBO-BOX-TYPE' | translate}}" [formControl]="this.form.get('data').get('type')">
|
||||
<mat-option [value]="options.Autocomplete">{{enumUtils.toDatasetProfileComboBoxTypeString(options.Autocomplete)}}</mat-option>
|
||||
<mat-option [value]="options.WordList">{{enumUtils.toDatasetProfileComboBoxTypeString(options.WordList)}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</mat-form-field> -->
|
||||
<app-dataset-profile-editor-auto-complete-field-component *ngIf="this.form.get('data').get('type').value === options.Autocomplete" class="col-12" [form]="form"></app-dataset-profile-editor-auto-complete-field-component>
|
||||
<app-dataset-profile-editor-word-list-field-component *ngIf="this.form.get('data').get('type').value === options.WordList" class="col-12" [form]="form"></app-dataset-profile-editor-word-list-field-component>
|
||||
</div>
|
||||
|
|
|
@ -22,7 +22,7 @@ export class DatasetProfileEditorComboBoxFieldComponent extends BaseComponent im
|
|||
) { super(); }
|
||||
|
||||
ngOnInit() {
|
||||
this.setupListeners();
|
||||
// this.setupListeners();
|
||||
}
|
||||
|
||||
setupListeners() {
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE'
|
||||
| translate}}</h5>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -5,8 +5,8 @@
|
|||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-MULTIPLE-AUTOCOMPLETE' | translate}}
|
||||
</mat-checkbox>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE'
|
||||
| translate}}</h5>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -6,7 +6,8 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATASETS-PLACEHOLDER' | translate}}"
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATASETS-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE'
|
||||
| translate}}</h5>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -6,7 +6,8 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DMPS-PLACEHOLDER' | translate}}"
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DMPS-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-FREE-TEXT-TITLE' | translate}}</h5>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-FREE-TEXT-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-FREE-TEXT-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -6,8 +6,8 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -3,22 +3,22 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-TITLE'
|
||||
| translate}}</h5>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<!-- <mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</mat-form-field> -->
|
||||
|
||||
<div class="col-12">
|
||||
<div *ngFor="let option of form.get('data').get('options')['controls'] index as i" class="row">
|
||||
<mat-form-field class="col">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-LABEL' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-LABEL' | translate}}"
|
||||
[formControl]="this.form.get('data').get('options').get(''+i).get('label')">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-VALUE' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RADIO-BOX-VALUE' | translate}}"
|
||||
[formControl]="this.form.get('data').get('options').get(''+i).get('value')">
|
||||
</mat-form-field>
|
||||
<button mat-icon-button class="col-auto" (click)="deleteRow(i)" type="button"
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-MULTIPLE-AUTOCOMPLETE' | translate}}
|
||||
</mat-checkbox>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RESEARCHERS-PLACEHOLDER' | translate}}"
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RESEARCHERS-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-MULTIPLE-AUTOCOMPLETE' | translate}}
|
||||
</mat-checkbox>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-MULTIPLE-AUTOCOMPLETE' | translate}}
|
||||
</mat-checkbox>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE'
|
||||
| translate}}</h5>
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -4,7 +4,10 @@
|
|||
| translate}}</h5>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-TEXT-AREA-PLACEHOLDER' | translate}}"
|
||||
<mat-label>
|
||||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-TEXT-AREA-PLACEHOLDER' | translate}}
|
||||
</mat-label>
|
||||
<input matInput type="string"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -2,8 +2,8 @@
|
|||
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATE-PICKER-TITLE'
|
||||
| translate}}</h5>
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-CHECKBOX-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -7,22 +7,20 @@
|
|||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-WORD-LIST-PLACEHOLDER' | translate}}</mat-label>
|
||||
<input matInput type="string"
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-WORD-LIST-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
|
||||
<div class="col-12">
|
||||
<div *ngFor="let option of form.get('data').get('options')['controls'] index as i" class="row">
|
||||
<mat-form-field class="col">
|
||||
<input matInput
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-WORD-LIST-LABEL' | translate}}"
|
||||
type="text" [formControl]="form.get('data').get('options').get(''+i).get('label')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-WORD-LIST-LABEL' | translate}}</mat-label>
|
||||
<input matInput type="text" [formControl]="form.get('data').get('options').get(''+i).get('label')">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col">
|
||||
<input matInput
|
||||
placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-WORD-LIST-VALUE' | translate}}"
|
||||
[formControl]="form.get('data').get('options').get(''+i).get('value')">
|
||||
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-WORD-LIST-VALUE' | translate}}</mat-label>
|
||||
<input matInput [formControl]="form.get('data').get('options').get(''+i).get('value')">
|
||||
</mat-form-field>
|
||||
<button mat-icon-button class="col-auto" (click)="deleteRow(i)" type="button"
|
||||
[disabled]="this.form.disabled">
|
||||
|
|
|
@ -10,26 +10,81 @@
|
|||
</mat-form-field> -->
|
||||
|
||||
<mat-form-field class="col">
|
||||
<mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VIEW-STYLE' | translate}}" [formControl]="this.form.get('viewStyle').get('renderStyle')"
|
||||
<!-- <mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VIEW-STYLE' | translate}}" [formControl]="this.form.get('viewStyle').get('renderStyle')"
|
||||
required>
|
||||
<mat-option [value]="viewStyleEnum.BooleanDecision">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.BooleanDecision)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.CheckBox">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.CheckBox)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.TextArea">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.TextArea)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.FreeText">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.FreeText)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.ComboBox">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.ComboBox)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.InternalDmpEntities">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.InternalDmpEntities)}}</mat-option>
|
||||
<mat-divider></mat-divider>
|
||||
<mat-option [value]="viewStyleEnum.BooleanDecision">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.BooleanDecision)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.RadioBox">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.RadioBox)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.CheckBox">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.CheckBox)}}</mat-option>
|
||||
|
||||
<mat-option [value]="viewStyleEnum.ComboBox">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.ComboBox)}}</mat-option>
|
||||
<mat-divider></mat-divider>
|
||||
|
||||
<mat-option [value]="viewStyleEnum.DatePicker">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DatePicker)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.ExternalDatasets">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.ExternalDatasets)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.DataRepositories">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DataRepositories)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Registries">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Registries)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Services">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Services)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Tags">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Tags)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Researchers">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Researchers)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Organizations">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Organizations)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.DatasetIdentifier">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DatasetIdentifier)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Currency">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Currency)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Validation">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Validation)}}</mat-option>
|
||||
|
||||
<mat-divider></mat-divider>
|
||||
|
||||
|
||||
<mat-optgroup label="APIs">
|
||||
<mat-option [value]="viewStyleEnum.Registries">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Registries)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Services">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Services)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Researchers">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Researchers)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Organizations">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Organizations)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.ExternalDatasets">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.ExternalDatasets)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.DataRepositories">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DataRepositories)}}</mat-option>
|
||||
</mat-optgroup>
|
||||
|
||||
<mat-divider></mat-divider>
|
||||
<mat-optgroup label="Argos Entities">
|
||||
<mat-option [value]="viewStyleEnum.InternalDmpEntities">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.InternalDmpEntities)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Tags">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Tags)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.DatasetIdentifier">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DatasetIdentifier)}}</mat-option>
|
||||
<mat-option [value]="viewStyleEnum.Validation">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Validation)}}</mat-option>
|
||||
</mat-optgroup>
|
||||
|
||||
</mat-select> -->
|
||||
|
||||
<!-- NEW VERSION -->
|
||||
<mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VIEW-STYLE' | translate}}" [(value)]="viewType" (selectionChange)="onInputTypeChange()"
|
||||
[disabled]="viewOnly"
|
||||
required>
|
||||
<mat-option [value]="viewTypeEnum.TextArea">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.TextArea)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.FreeText">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.FreeText)}}</mat-option>
|
||||
<mat-divider></mat-divider>
|
||||
<mat-option [value]="viewTypeEnum.BooleanDecision">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.BooleanDecision)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.RadioBox">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.RadioBox)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Select">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Select)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.CheckBox">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.CheckBox)}}</mat-option>
|
||||
<!-- TO DO -->
|
||||
<mat-divider></mat-divider>
|
||||
|
||||
<mat-option [value]="viewTypeEnum.DatePicker">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.DatePicker)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Currency">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Currency)}}</mat-option>
|
||||
|
||||
<mat-divider></mat-divider>
|
||||
<!-- APIS -->
|
||||
|
||||
<mat-optgroup label="APIs">
|
||||
<mat-option [value]="viewTypeEnum.Registries">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Registries)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Services">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Services)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Researchers">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Researchers)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Organizations">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Organizations)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.ExternalDatasets">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.ExternalDatasets)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.DataRepositories">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.DataRepositories)}}</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Other">{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.Other)}}</mat-option>
|
||||
</mat-optgroup>
|
||||
<!-- TODO -->
|
||||
<mat-divider></mat-divider>
|
||||
<mat-optgroup label="Argos Entities">
|
||||
<mat-option [value]="viewTypeEnum.InternalDmpEntities">Internal DMPs</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Tags">Tags</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.DatasetIdentifier">Dataset Identifier</mat-option>
|
||||
<mat-option [value]="viewTypeEnum.Validation">Validation</mat-option>
|
||||
</mat-optgroup>
|
||||
|
||||
</mat-select>
|
||||
<mat-error *ngIf="this.form.get('viewStyle').get('renderStyle').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||
</mat-form-field>
|
||||
|
@ -39,13 +94,6 @@
|
|||
<input matInput type="number" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.ORDER' | translate}}" [formControl]="this.form.get('ordinal')" required>
|
||||
</mat-form-field>
|
||||
|
||||
<!-- Default Value -->
|
||||
<app-component-profile-editor-default-value-component *ngIf="form.get('viewStyle').get('renderStyle').value" class="col"
|
||||
[viewStyle]="form.get('viewStyle').get('renderStyle').value" [form]="this.form.get('defaultValue').get('value')" [formArrayOptions]="form.get('data')?.get('options')"
|
||||
[comboBoxType]="this.form.get('data')?.get('type')?.value" [internalDmpEntitiesType]="this.form.get('data')?.get('type')?.value"
|
||||
placeHolder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.DEFAULT-VALUE' | translate}}" [required]="defaulValueRequired(form.get('viewStyle').get('renderStyle').value)">
|
||||
</app-component-profile-editor-default-value-component>
|
||||
|
||||
<!-- Validation -->
|
||||
<!-- <mat-form-field class="col" *ngIf="!(defaulValueRequired(form.get('viewStyle').get('renderStyle').value))">
|
||||
<mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VALIDATION' | translate}}" [formControl]="this.form.get('validations')"
|
||||
|
@ -64,6 +112,13 @@
|
|||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<!-- Default Value -->
|
||||
<app-component-profile-editor-default-value-component *ngIf="form.get('viewStyle').get('renderStyle').value" class="col-12"
|
||||
[viewStyle]="form.get('viewStyle').get('renderStyle').value" [form]="this.form.get('defaultValue').get('value')" [formArrayOptions]="form.get('data')?.get('options')"
|
||||
[comboBoxType]="this.form.get('data')?.get('type')?.value" [internalDmpEntitiesType]="this.form.get('data')?.get('type')?.value"
|
||||
placeHolder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.DEFAULT-VALUE' | translate}}" [required]="defaulValueRequired(form.get('viewStyle').get('renderStyle').value)">
|
||||
</app-component-profile-editor-default-value-component>
|
||||
|
||||
</div>
|
||||
<div class="row" [ngSwitch]="form.get('viewStyle').get('renderStyle').value" *ngIf="expandView">
|
||||
<app-dataset-profile-editor-combo-box-field-component *ngSwitchCase="viewStyleEnum.ComboBox" class="col-12" [form]="form"></app-dataset-profile-editor-combo-box-field-component>
|
||||
|
@ -123,12 +178,12 @@
|
|||
<mat-radio-button [value]="false">No</mat-radio-button>
|
||||
</mat-radio-group>
|
||||
</div> -->
|
||||
<div class="col-12">
|
||||
<div class="col-12" *ngIf="showPreview">
|
||||
<app-form-field [form]="previewForm" *ngIf="previewForm">
|
||||
|
||||
</app-form-field>
|
||||
</div>
|
||||
<div class="col-12" *ngIf="!previewForm">
|
||||
<div class="col-12" *ngIf="!this.form.get('viewStyle').get('renderStyle').value">
|
||||
<em>
|
||||
Not initialized yet
|
||||
</em>
|
||||
|
|
|
@ -29,6 +29,10 @@ import { CurrencyDataEditorModel } from '../../../admin/field-data/currency-data
|
|||
import { ValidationDataEditorModel } from '../../../admin/field-data/validation-data-editor-models';
|
||||
import { DatasetDescriptionFieldEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { ViewStyleType } from './view-style-enum';
|
||||
import { AutoCompleteFieldDataEditorModel } from '../../../admin/field-data/auto-complete-field-data-editor-model';
|
||||
import { DatasetsAutoCompleteFieldDataEditorModel } from '../../../admin/field-data/datasets-autocomplete-field-data-editor-mode';
|
||||
import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dataset-profile-editor-field-component',
|
||||
|
@ -44,6 +48,10 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
|
|||
viewStyleEnum = DatasetProfileFieldViewStyle;
|
||||
isFieldMultiplicityEnabled = false;
|
||||
|
||||
viewType: ViewStyleType;
|
||||
viewTypeEnum = ViewStyleType;
|
||||
|
||||
|
||||
@Input() expandView: boolean = true;
|
||||
|
||||
constructor(
|
||||
|
@ -58,83 +66,155 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
|
|||
this.isFieldMultiplicityEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(this.form.get('viewStyle').get('renderStyle').value){
|
||||
const type = this.form.get('viewStyle').get('renderStyle').value;
|
||||
|
||||
switch(type){
|
||||
case DatasetProfileFieldViewStyle.BooleanDecision:
|
||||
this.viewType = this.viewTypeEnum.BooleanDecision;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.CheckBox:
|
||||
this.viewType = this.viewTypeEnum.CheckBox;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.ComboBox:
|
||||
|
||||
const comboType = this.form.get('data').get('type').value;
|
||||
if(comboType === DatasetProfileComboBoxType.Autocomplete){
|
||||
this.viewType = this.viewTypeEnum.Other;
|
||||
}else if(comboType === DatasetProfileComboBoxType.WordList){
|
||||
this.viewType = this.viewTypeEnum.Select;
|
||||
}
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.InternalDmpEntities:
|
||||
this.viewType = this.viewTypeEnum.InternalDmpEntities;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.FreeText:
|
||||
this.viewType = this.viewTypeEnum.FreeText;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.RadioBox:
|
||||
this.viewType = this.viewTypeEnum.RadioBox;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.TextArea:
|
||||
this.viewType = this.viewTypeEnum.TextArea;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.DatePicker:
|
||||
this.viewType = this.viewTypeEnum.DatePicker;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.ExternalDatasets:
|
||||
this.viewType = this.viewTypeEnum.ExternalDatasets;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.DataRepositories:
|
||||
this.viewType = this.viewTypeEnum.DataRepositories;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Registries:
|
||||
this.viewType = this.viewTypeEnum.Registries;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Services:
|
||||
this.viewType = this.viewTypeEnum.Services;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Tags:
|
||||
this.viewType = this.viewTypeEnum.Tags;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Researchers:
|
||||
this.viewType = this.viewTypeEnum.Researchers;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Organizations:
|
||||
this.viewType = this.viewTypeEnum.Organizations;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.DatasetIdentifier:
|
||||
this.viewType = this.viewTypeEnum.DatasetIdentifier;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Currency:
|
||||
this.viewType = this.viewTypeEnum.Currency;
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Validation:
|
||||
this.viewType = this.viewTypeEnum.Validation;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// this.addNewRule();
|
||||
|
||||
this.form.get('viewStyle').get('renderStyle').valueChanges
|
||||
.pipe(takeUntil(this._destroyed))
|
||||
.subscribe(x => {
|
||||
// this.form.get('viewStyle').get('renderStyle').valueChanges
|
||||
// .pipe(takeUntil(this._destroyed))
|
||||
// .subscribe(x => {
|
||||
|
||||
|
||||
// const previewStatus = this.showPreview;
|
||||
//!! Important to be before the if statement
|
||||
this.showPreview = false;
|
||||
// // const previewStatus = this.showPreview;
|
||||
// //!! Important to be before the if statement
|
||||
// this.showPreview = false;
|
||||
|
||||
if (this.form.get('data')) {
|
||||
this.form.removeControl('data');
|
||||
// if (this.form.get('data')) {
|
||||
// this.form.removeControl('data');
|
||||
|
||||
switch (x) {
|
||||
case DatasetProfileFieldViewStyle.BooleanDecision:
|
||||
this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.CheckBox:
|
||||
this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.ComboBox:
|
||||
this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.InternalDmpEntities:
|
||||
this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.FreeText:
|
||||
this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.RadioBox:
|
||||
this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.TextArea:
|
||||
this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.DatePicker:
|
||||
this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.ExternalDatasets:
|
||||
this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.DataRepositories:
|
||||
this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Registries:
|
||||
this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Services:
|
||||
this.form.addControl('data', new ServicesDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Tags:
|
||||
this.form.addControl('data', new TagsDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Researchers:
|
||||
this.form.addControl('data', new ResearchersDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Organizations:
|
||||
this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.DatasetIdentifier:
|
||||
this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Currency:
|
||||
this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
|
||||
break;
|
||||
case DatasetProfileFieldViewStyle.Validation:
|
||||
this.form.addControl('data', new ValidationDataEditorModel().buildForm());
|
||||
break;
|
||||
}
|
||||
}
|
||||
// switch (x) {
|
||||
// case DatasetProfileFieldViewStyle.BooleanDecision:
|
||||
// this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.CheckBox:
|
||||
// this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.ComboBox:
|
||||
// this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.InternalDmpEntities:
|
||||
// this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.FreeText:
|
||||
// this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.RadioBox:
|
||||
// this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.TextArea:
|
||||
// this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.DatePicker:
|
||||
// this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.ExternalDatasets:
|
||||
// this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.DataRepositories:
|
||||
// this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Registries:
|
||||
// this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Services:
|
||||
// this.form.addControl('data', new ServicesDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Tags:
|
||||
// this.form.addControl('data', new TagsDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Researchers:
|
||||
// this.form.addControl('data', new ResearchersDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Organizations:
|
||||
// this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.DatasetIdentifier:
|
||||
// this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Currency:
|
||||
// this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
|
||||
// break;
|
||||
// case DatasetProfileFieldViewStyle.Validation:
|
||||
// this.form.addControl('data', new ValidationDataEditorModel().buildForm());
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
//reset the preview status
|
||||
// this.showPreview = previewStatus;
|
||||
this.showPreview = true;
|
||||
});
|
||||
// //reset the preview status
|
||||
// // this.showPreview = previewStatus;
|
||||
// this.showPreview = true;
|
||||
// });
|
||||
}
|
||||
|
||||
defaulValueRequired(viewStile: DatasetProfileFieldViewStyle): boolean {
|
||||
|
@ -205,30 +285,26 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
|
|||
}
|
||||
}
|
||||
|
||||
this._formChangesSubscription = this.form.valueChanges.subscribe(()=>{
|
||||
this.generatePreviewForm();
|
||||
});
|
||||
//initialize
|
||||
if(this.form.get('viewStyle').get('renderStyle').value){
|
||||
this.generatePreviewForm();
|
||||
this._generatePreviewForm();
|
||||
}
|
||||
this._formChangesSubscription = this.form.valueChanges.subscribe(()=>{
|
||||
this._generatePreviewForm();
|
||||
});
|
||||
}
|
||||
|
||||
this._showPreview = value;
|
||||
|
||||
}
|
||||
|
||||
previewForm: FormGroup;
|
||||
|
||||
generatePreviewForm(){
|
||||
|
||||
private _generatePreviewForm(){
|
||||
|
||||
if(!this.form.get('data')){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
this.previewForm = null;
|
||||
// this._showPreview = false;
|
||||
const fieldEditorModel = new DatasetDescriptionFieldEditorModel();
|
||||
|
||||
fieldEditorModel.viewStyle= {
|
||||
|
@ -244,10 +320,13 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
|
|||
if(this.form.get('viewStyle').get('renderStyle').value == DatasetProfileFieldViewStyle.CheckBox){
|
||||
fieldEditorModel.value = this.form.get('defaultValue').get('value').value === 'true';
|
||||
}
|
||||
// if(this.form.get('viewStyle').get('renderStyle').value == DatasetProfileFieldViewStyle.Researchers){
|
||||
// fieldEditorModel.data = new ResearchersAutoCompleteFieldDataEditorModel().buildForm().getRawValue();
|
||||
// }
|
||||
|
||||
this.previewForm = fieldEditorModel.buildForm();
|
||||
|
||||
// this._showPreview = true;
|
||||
setTimeout(() => {
|
||||
this.previewForm = fieldEditorModel.buildForm();
|
||||
});
|
||||
};
|
||||
|
||||
// generatePreview(){
|
||||
|
@ -273,4 +352,99 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
|
|||
|
||||
|
||||
// }
|
||||
onInputTypeChange(){
|
||||
|
||||
|
||||
const x = this.viewType;
|
||||
|
||||
this.showPreview = false;
|
||||
|
||||
if (this.form.get('data')) {
|
||||
this.form.removeControl('data');
|
||||
}
|
||||
|
||||
switch (x) {
|
||||
case this.viewTypeEnum.BooleanDecision:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.BooleanDecision)
|
||||
this.form.addControl('data', new BooleanDecisionFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.CheckBox:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.CheckBox)
|
||||
this.form.addControl('data', new CheckBoxFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Select:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
|
||||
this.form.addControl('data', new WordListFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Other:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ComboBox)
|
||||
this.form.addControl('data', new AutoCompleteFieldDataEditorModel().buildForm()); //TODO SEE
|
||||
break;
|
||||
case this.viewTypeEnum.InternalDmpEntities:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.InternalDmpEntities)
|
||||
this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());//TODO TO SEE
|
||||
break;
|
||||
case this.viewTypeEnum.FreeText:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.FreeText)
|
||||
this.form.addControl('data', new FreeTextFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.RadioBox:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.RadioBox)
|
||||
this.form.addControl('data', new RadioBoxFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.TextArea:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.TextArea)
|
||||
this.form.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.DatePicker:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatePicker)
|
||||
this.form.addControl('data', new DatePickerDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.ExternalDatasets:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.ExternalDatasets)
|
||||
this.form.addControl('data', new ExternalDatasetsDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.DataRepositories:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DataRepositories)
|
||||
this.form.addControl('data', new DataRepositoriesDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Registries:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Registries)
|
||||
this.form.addControl('data', new RegistriesDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Services:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Services)
|
||||
this.form.addControl('data', new ServicesDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Tags:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Tags)
|
||||
this.form.addControl('data', new TagsDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Researchers:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Researchers)
|
||||
// this.form.addControl('data', new ResearchersDataEditorModel().buildForm()); //TODO TO ASK
|
||||
this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Organizations:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Organizations)
|
||||
// this.form.addControl('data', new OrganizationsDataEditorModel().buildForm());
|
||||
this.form.addControl('data', new DatasetsAutoCompleteFieldDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.DatasetIdentifier:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.DatasetIdentifier)
|
||||
this.form.addControl('data', new DatasetIdentifierDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Currency:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Currency)
|
||||
this.form.addControl('data', new CurrencyDataEditorModel().buildForm());
|
||||
break;
|
||||
case this.viewTypeEnum.Validation:
|
||||
this.form.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.Validation)
|
||||
this.form.addControl('data', new ValidationDataEditorModel().buildForm());
|
||||
break;
|
||||
}
|
||||
setTimeout(() => { //TODO
|
||||
this.showPreview = true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
export enum ViewStyleType{
|
||||
TextArea = "textarea",
|
||||
BooleanDecision = "booleanDecision",
|
||||
CheckBox = "checkBox",
|
||||
FreeText = "freetext",
|
||||
RadioBox = "radiobox",
|
||||
DatePicker = "datePicker",
|
||||
InternalDmpEntities = "internalDmpEntities",
|
||||
ExternalDatasets = "externalDatasets",
|
||||
DataRepositories = "dataRepositories",
|
||||
Registries = "registries",
|
||||
Services = "services",
|
||||
Tags = "tags",
|
||||
Researchers = "researchers",
|
||||
Organizations = "organizations",
|
||||
DatasetIdentifier = "datasetIdentifier",
|
||||
Currency = "currency",
|
||||
Validation = 'validation',
|
||||
Select ="selection",
|
||||
Other ="other"
|
||||
}
|
|
@ -57,8 +57,13 @@
|
|||
</mat-card>
|
||||
</div>
|
||||
|
||||
<div class="col-12"><button mat-button class="full-width" (click)="addField()" [disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.SECTION.ACTIONS.ADD-FIELD'
|
||||
| translate}}</button></div> -->
|
||||
-->
|
||||
<!-- Able to add fieldsets if only the sections has no subsections -->
|
||||
<ng-container *ngIf="form.get('sections').controls?.length == 0">
|
||||
<div class="col-12"><button mat-button class="full-width" (click)="addField()" [disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.SECTION.ACTIONS.ADD-FIELD'
|
||||
| translate}}</button>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Component, Input, OnInit } from '@angular/core';
|
||||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||
import { FormArray, FormGroup } from '@angular/forms';
|
||||
import { FieldEditorModel } from '@app/ui/admin/dataset-profile/admin/field-editor-model';
|
||||
import { FieldSetEditorModel } from '@app/ui/admin/dataset-profile/admin/field-set-editor-model';
|
||||
|
@ -18,6 +18,7 @@ export class DatasetProfileEditorSectionComponent extends BaseComponent implemen
|
|||
//@Input() dataModel: SectionEditorModel;
|
||||
@Input() indexPath: string;
|
||||
@Input() viewOnly: boolean;
|
||||
@Output() fieldsetAdded = new EventEmitter<String>(); //returns the id of the fieldset added
|
||||
|
||||
constructor() { super(); }
|
||||
|
||||
|
@ -38,7 +39,15 @@ export class DatasetProfileEditorSectionComponent extends BaseComponent implemen
|
|||
fieldSet.id = Guid.create().toString();
|
||||
//this.dataModel.fieldSets.push(fieldSet);
|
||||
//}
|
||||
(<FormArray>this.form.get('fieldSets')).push(fieldSet.buildForm());
|
||||
const fieldsetsArray = this.form.get('fieldSets') as FormArray;
|
||||
fieldsetsArray.push(fieldSet.buildForm());
|
||||
|
||||
const fieldSetForm = fieldsetsArray.at(fieldsetsArray.length-1);
|
||||
//emit id inserted
|
||||
if(fieldSetForm){
|
||||
const id: string = fieldSetForm.get('id').value;
|
||||
this.fieldsetAdded.emit(id);
|
||||
}
|
||||
}
|
||||
|
||||
addSectioninSection() {
|
||||
|
|
|
@ -172,7 +172,7 @@
|
|||
<app-dataset-profile-editor-section-component class="col-12"
|
||||
*ngIf="selectedTocEntry.type === tocEntryEnumValues.Section"
|
||||
[form]="selectedTocEntry.form" [indexPath]="'tbd'" [viewOnly]="viewOnly"
|
||||
>
|
||||
(fieldsetAdded)="displayItem(_findTocEntryById($event, getTocEntries()))">
|
||||
</app-dataset-profile-editor-section-component>
|
||||
|
||||
<!-- FIELDSET INFO -->
|
||||
|
@ -248,7 +248,7 @@
|
|||
<mat-step label="Preview and Finalize">
|
||||
Preview and finalize
|
||||
<!-- <button (click)="generatePreviewForm()">foo</button> -->
|
||||
<app-dataset-description [form]="previewForm">
|
||||
<app-dataset-description [form]="previewForm" [visibilityRules]="visibilityRules" *ngIf="previewForm">
|
||||
|
||||
</app-dataset-description>
|
||||
</mat-step>
|
||||
|
|
|
@ -37,6 +37,7 @@ import { FieldEditorModel } from '../admin/field-editor-model';
|
|||
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
|
||||
import { StepperSelectionEvent } from '@angular/cdk/stepper';
|
||||
import { DatasetDescriptionCompositeFieldEditorModel, DatasetDescriptionFieldEditorModel, DatasetDescriptionFormEditorModel, DatasetDescriptionPageEditorModel, DatasetDescriptionSectionEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
|
||||
import { Rule } from '@app/core/model/dataset-profile-definition/rule';
|
||||
|
||||
const skipDisable: any[] = require('../../../../../assets/resources/skipDisable.json');
|
||||
|
||||
|
@ -884,9 +885,24 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
|||
//in case selectedtocentrhy is child of the removed element
|
||||
if(this.selectedTocEntry ){
|
||||
|
||||
//
|
||||
if(this.tocEntryIsChildOf(this.selectedTocEntry,tce)){
|
||||
this.selectedTocEntry = null;
|
||||
if(this.selectedTocEntry.type == ToCEntryType.Page){
|
||||
this.selectedTocEntry = null;
|
||||
}else{
|
||||
const parentId = tce.form.parent.parent.get('id').value;
|
||||
if(parentId){
|
||||
const tocentries = this.getTocEntries();
|
||||
const parent = this._findTocEntryById(parentId, tocentries);
|
||||
|
||||
if(parent){
|
||||
this.selectedTocEntry = parent;
|
||||
}else{
|
||||
this.selectedTocEntry = null;
|
||||
}
|
||||
}else{
|
||||
this.selectedTocEntry = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1030,9 +1046,35 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
|||
});
|
||||
|
||||
|
||||
//populate rules
|
||||
const rules:Rule[] =[];
|
||||
const fieldSets = this._getFieldSets(toCentries);
|
||||
|
||||
fieldSets.forEach(fs=>{
|
||||
const fields = fs.form.get('fields') as FormArray;
|
||||
if(fields){
|
||||
fields.controls.forEach(field=>{
|
||||
const rulesArray = field.get('visible').get('rules').value;
|
||||
if(rulesArray){
|
||||
rulesArray.forEach(ruleElement => {
|
||||
const rule: Rule = new Rule();
|
||||
rule.targetField = ruleElement.target;
|
||||
rule.sourceField = field.get('id').value;
|
||||
rule.requiredValue = ruleElement.value;
|
||||
rules.push(rule);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
model.rules = rules;
|
||||
this.visibilityRules = rules;
|
||||
|
||||
this.previewForm = model.buildForm();
|
||||
}
|
||||
|
||||
visibilityRules:Rule[];
|
||||
private _buildSectionsRecursively( tocentries: ToCEntry[]): DatasetDescriptionSectionEditorModel[]{
|
||||
|
||||
|
||||
|
@ -1079,6 +1121,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
|||
fieldset.multiplicity = fs.form.get('multiplicity').value;
|
||||
fieldset.additionalInformation = fs.form.get('additionalInformation').value;
|
||||
fieldset.ordinal = fs.form.get('ordinal').value;
|
||||
fieldset.numbering = fs.numbering;
|
||||
fieldset.hasCommentField = fs.form.get('hasCommentField').value;
|
||||
fieldset.title = fs.label;
|
||||
// fieldset.fields = (fs.form.get('fields') as FormArray).getRawValue();
|
||||
|
@ -1089,7 +1132,8 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
|||
fieldModel.data = (field.get('data') as FormGroup).getRawValue();
|
||||
fieldModel.id = field.get('id').value;
|
||||
fieldModel.viewStyle = (field.get('viewStyle') as FormGroup).getRawValue();
|
||||
fieldModel.defaultValue = field.get('defaultValue').value;
|
||||
// fieldModel.defaultValue = (field.get('defaultValue') as FormGroup).getRawValue();
|
||||
fieldModel.value = (field.get('defaultValue') as FormGroup).get('value').value;
|
||||
fieldModel.page = field.get('page').value;
|
||||
fieldModel.validations = field.get('validations').value;
|
||||
|
||||
|
@ -1104,12 +1148,32 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
|||
return fieldsets;
|
||||
}
|
||||
|
||||
private _getFieldSets(tocentries: ToCEntry[]):ToCEntry[]{
|
||||
|
||||
const fieldsets:ToCEntry[] = [];
|
||||
|
||||
if(!tocentries) return fieldsets;
|
||||
|
||||
tocentries.forEach(entry=>{
|
||||
if(entry.type == ToCEntryType.FieldSet){
|
||||
fieldsets.push(entry);
|
||||
}else{
|
||||
fieldsets.push(...this._getFieldSets(entry.subEntries));
|
||||
}
|
||||
});
|
||||
|
||||
return fieldsets;
|
||||
}
|
||||
|
||||
onMatStepperSelectionChange(event: StepperSelectionEvent){
|
||||
|
||||
if(event.selectedIndex === 2){//preview selected
|
||||
this.generatePreviewForm();//TODO LAZY LOADING IN THE TEMPLATE
|
||||
}else{
|
||||
this.previewForm = null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
previewForm:FormGroup;
|
||||
|
|
|
@ -1,85 +1,108 @@
|
|||
<!-- <span style="cursor: pointer;" [ngClass]="{'active': itemSelected?.id == parentLink?.id}" (click)="itemClicked(parentLink)" *ngIf="!(parentLink.type == undefined)" >
|
||||
{{parentLink?.numbering}} {{parentLink?.label? parentLink?.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
|
||||
<span class="mat-button" (click)="deleteEntry(parentLink)" *ngIf="itemSelected?.id == parentLink?.id"><mat-icon>delete</mat-icon></span>
|
||||
</span> -->
|
||||
|
||||
<div *ngFor="let link of links; let i = index; last as isLast " class="docs-link mt-0" style="border-left: 1px solid black; padding-left: 1em;">
|
||||
<div class="link-name">
|
||||
<div class="table-item row" *ngIf="!(parentLink.type == undefined)">
|
||||
<div class="col link-info">
|
||||
<span style="cursor: pointer;" [ngClass]="{'active': itemSelected?.id == parentLink?.id}" (click)="itemClicked(parentLink)" >
|
||||
{{parentLink?.numbering}} {{parentLink?.label? parentLink?.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-auto" *ngIf="!viewOnly && (itemSelected?.id == parentLink?.id)">
|
||||
<span class="mat-button" (click)="deleteEntry(parentLink)"><mat-icon>delete</mat-icon></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-item row">
|
||||
<div class="col link-info">
|
||||
<span style="cursor: pointer;" [ngClass]="{'active': itemSelected?.id == link.id}" (click)="itemClicked(link)" >
|
||||
{{link.numbering}} {{link.label? link.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
|
||||
<!-- <span class="mat-button table-item-actions" (click)="deleteEntry(link)"><mat-icon>delete</mat-icon></span> -->
|
||||
</span>
|
||||
</div>
|
||||
<div class="table-item-actions col-auto" *ngIf="!viewOnly">
|
||||
<button class="mat-button" (click)="deleteEntry(link)"><mat-icon>delete</mat-icon></button>
|
||||
</div>
|
||||
<!-- When item is not selected then show only the pages (first level) -->
|
||||
<!-- <ng-container *ngIf="tocEntryIsChildOf(itemSelected,parentLink) || (!itemSelected && parentLink?.subEntriesType == tocEntryType.Page)"> -->
|
||||
<div *ngFor="let link of links" class="docs-link mt-0" [ngClass]="{'border-left':itemSelected?.id == parentLink?.id}">
|
||||
<!-- <div class="link-name"> -->
|
||||
|
||||
<!-- <div class="table-item row">
|
||||
<div class="col link-info">
|
||||
<span style="cursor: pointer;" [ngClass]="{'active': itemSelected?.id == link.id}" (click)="itemClicked(link)" >
|
||||
{{link.numbering}} {{link.label? link.label : 'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.UNTITLED' | translate}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="table-item-actions col-auto" *ngIf="!viewOnly">
|
||||
<button class="mat-button" (click)="deleteEntry(link)"><mat-icon>delete</mat-icon></button>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
<!-- For dev purposes -->
|
||||
<!-- <ng-container [ngSwitch]="link.type">
|
||||
<div *ngSwitchCase="tocEntryType.FieldSet">
|
||||
<span style="background-color: yellow;"> Fieldset</span>
|
||||
</div>
|
||||
<div *ngSwitchCase="tocEntryType.Page">
|
||||
<span style="background-color: lightblue;"> Page</span>
|
||||
</div>
|
||||
<div *ngSwitchCase="tocEntryType.Section">
|
||||
<span style="background-color: lightgreen;"> Section</span>
|
||||
</div>
|
||||
</ng-container> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<div class="ml-2" >
|
||||
<app-dataset-profile-table-of-contents-internal-section
|
||||
[links]="link.subEntries"
|
||||
(itemClick)="itemClicked($event)"
|
||||
(removeEntry)="deleteEntry($event)"
|
||||
[parentLink]="link"
|
||||
[itemSelected] = "itemSelected"
|
||||
(createFooEntry)="createNewEntry($event)"
|
||||
[viewOnly]="viewOnly">
|
||||
</app-dataset-profile-table-of-contents-internal-section>
|
||||
</div>
|
||||
</div><!-- END OF LOOP-->
|
||||
|
||||
<!-- BUILD SUBENTRIES IF THEY DONT EXIST -- CURRENT ITEM DOES HAVE CHILDREN -->
|
||||
<div *ngIf="(!links && parentLink.type!= tocEntryType.FieldSet) && !viewOnly &&parentLink?.id == itemSelected?.id" class="docs-link mt-0">
|
||||
<div class="ml-2">
|
||||
|
||||
<!-- Give option to generate section -->
|
||||
<button class="mat-button" style="padding-left: 0px; display: block;" (click)="createNewEntry({childType:tocEntryType.Section,parent:parentLink})">
|
||||
<mat-icon>add</mat-icon>Sebsection
|
||||
</button>
|
||||
|
||||
|
||||
<!-- For dev purposes -->
|
||||
<!-- <ng-container [ngSwitch]="link.type">
|
||||
<div *ngSwitchCase="tocEntryType.FieldSet">
|
||||
<span style="background-color: yellow;"> Fieldset</span>
|
||||
</div>
|
||||
<div *ngSwitchCase="tocEntryType.Page">
|
||||
<span style="background-color: lightblue;"> Page</span>
|
||||
</div>
|
||||
<div *ngSwitchCase="tocEntryType.Section">
|
||||
<span style="background-color: lightgreen;"> Section</span>
|
||||
</div>
|
||||
</ng-container> -->
|
||||
<!-- Give option to generate fieldset (only if parent is section)-->
|
||||
<!-- <button *ngIf="parentLink.type == tocEntryType.Section" class="mat-button" style="padding-left: 0px;" (click)="createNewEntry({childType:tocEntryType.FieldSet,parent:parentLink})">
|
||||
<mat-icon>add</mat-icon> Fieldset
|
||||
</button> -->
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ml-2">
|
||||
<app-dataset-profile-table-of-contents-internal-section
|
||||
[links]="link.subEntries"
|
||||
(itemClick)="itemClicked($event)"
|
||||
(removeEntry)="deleteEntry($event)"
|
||||
[parentLink]="link"
|
||||
[itemSelected] = "itemSelected"
|
||||
(createFooEntry)="createNewEntry($event)"
|
||||
[viewOnly]="viewOnly">
|
||||
</app-dataset-profile-table-of-contents-internal-section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- BUILD SUBENTRIES IF THEY DONT EXIST -- CURRENT ITEM DOES HAVE CHILDREN -->
|
||||
<div *ngIf="(!links && parentLink.type!= tocEntryType.FieldSet) && !viewOnly" class="docs-link mt-0" style="border: 1px solid ;">
|
||||
NoEntries
|
||||
<div class="ml-2">
|
||||
|
||||
<!-- Give option to generate section -->
|
||||
<button class="mat-button" style="padding-left: 0px; display: block;" (click)="createNewEntry({childType:tocEntryType.Section,parent:parentLink})">
|
||||
<mat-icon>add</mat-icon>Section
|
||||
</button>
|
||||
|
||||
|
||||
<!-- Give option to generate fieldset (only if parent is section)-->
|
||||
<button *ngIf="parentLink.type == tocEntryType.Section" class="mat-button" style="padding-left: 0px;" (click)="createNewEntry({childType:tocEntryType.FieldSet,parent:parentLink})">
|
||||
<mat-icon>add</mat-icon> Fieldset
|
||||
</button>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- BUILD TYPE OF SAME LEVEL AS LINK OF LINKS -->
|
||||
<div *ngIf="links && !viewOnly" >
|
||||
<button class="mat-button" style="padding-left: 0px;" (click)="createNewEntry({childType:parentLink.subEntriesType,parent:parentLink})">
|
||||
<mat-icon>add</mat-icon>
|
||||
<!-- Create => {{parentLink?.subEntriesType}} -->
|
||||
<ng-container [ngSwitch]="parentLink?.subEntriesType">
|
||||
<ng-container *ngSwitchCase="tocEntryType.Section">
|
||||
Section
|
||||
</ng-container>
|
||||
<ng-container *ngSwitchCase="tocEntryType.Page">
|
||||
Page
|
||||
</ng-container>
|
||||
<ng-container *ngSwitchCase="tocEntryType.FieldSet">
|
||||
Fieldset
|
||||
</ng-container>
|
||||
<!-- BUILD TYPE OF SAME LEVEL AS LINK OF LINKS -->
|
||||
<div *ngIf="links && !viewOnly && !(parentLink?.subEntriesType == tocEntryType.Page) && parentLink?.id == itemSelected?.id" >
|
||||
<ng-container *ngIf="parentLink?.subEntriesType != tocEntryType.FieldSet">
|
||||
<button class="mat-button" style="padding-left: 0px;" (click)="createNewEntry({childType:parentLink.subEntriesType,parent:parentLink})">
|
||||
<mat-icon>add</mat-icon>
|
||||
<!-- Create => {{parentLink?.subEntriesType}} -->
|
||||
<ng-container [ngSwitch]="parentLink?.subEntriesType">
|
||||
<ng-container *ngSwitchCase="tocEntryType.Section">
|
||||
Subsection
|
||||
</ng-container>
|
||||
<ng-container *ngSwitchCase="tocEntryType.Page">
|
||||
Section
|
||||
</ng-container>
|
||||
<!-- <ng-container *ngSwitchCase="tocEntryType.FieldSet">
|
||||
Fieldset
|
||||
</ng-container> -->
|
||||
|
||||
</ng-container>
|
||||
</button>
|
||||
</ng-container>
|
||||
</div>
|
||||
<!-- </ng-container> -->
|
||||
|
||||
<!-- Only for the page -->
|
||||
<div *ngIf="parentLink?.subEntriesType == tocEntryType.Page && !viewOnly">
|
||||
<button class="mat-button" (click)="createNewEntry({childType:parentLink.subEntriesType,parent:parentLink})" style="padding-left:0px">
|
||||
<mat-icon>add</mat-icon> Section
|
||||
</button>
|
||||
</div>
|
|
@ -49,4 +49,25 @@ export class DatasetProfileTableOfContentsInternalSection extends BaseComponent
|
|||
createNewEntry(foo: Foo){
|
||||
this.createFooEntry.emit(foo);
|
||||
}
|
||||
|
||||
tocEntryIsChildOf(testingChild: ToCEntry,parent: ToCEntry): boolean{
|
||||
|
||||
if(!testingChild || !parent) return false;
|
||||
|
||||
if(testingChild.id == parent.id){return true;}
|
||||
|
||||
if(parent.subEntries){
|
||||
let childFound:boolean = false;
|
||||
|
||||
parent.subEntries.forEach(subEntry=>{
|
||||
if(this.tocEntryIsChildOf(testingChild, subEntry)){
|
||||
childFound = true;
|
||||
return true;
|
||||
}
|
||||
})
|
||||
|
||||
return childFound;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
<div class="docs-toc-container">
|
||||
<div class="">
|
||||
<!-- <div class="docs-toc-heading">Contents</div> -->
|
||||
<!-- <nav> -->
|
||||
<!-- <a [href]="_rootUrl + '#' + link.id" -->
|
||||
|
@ -9,7 +9,7 @@
|
|||
<app-dataset-profile-table-of-contents-internal-section [links]="links" (itemClick)="itemClicked($event)"
|
||||
(newEntry)="addNewEntry($event)" (removeEntry)="deleteEntry($event)"
|
||||
(createFooEntry)="createNewEntry($event)"
|
||||
[parentLink]="{ subEntriesType: tocEntryType.Page }"
|
||||
[parentLink]="{ subEntriesType: tocEntryType.Page, subEntries : links }"
|
||||
[itemSelected]="itemSelected"
|
||||
[viewOnly]="viewOnly"></app-dataset-profile-table-of-contents-internal-section>
|
||||
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Organizations",
|
||||
"DATASET-IDENTIFIER": "Dataset Identifier",
|
||||
"CURRENCY": "Currency",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Word List",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Organizations",
|
||||
"DATASET-IDENTIFIER": "Dataset Identifier",
|
||||
"CURRENCY": "Currency",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Word List",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Organizaciones",
|
||||
"DATASET-IDENTIFIER": "Identificador del dataset",
|
||||
"CURRENCY": "Moneda",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Lista de palabras",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Οργανισμοί",
|
||||
"DATASET-IDENTIFIER": "Αναγνωριστικό Συνόλου Δεδομένων",
|
||||
"CURRENCY": "Επικαιρότητα",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Λίστα Λέξεων",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Organizações",
|
||||
"DATASET-IDENTIFIER": "Identificador de Dataset",
|
||||
"CURRENCY": "Moeda",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Lista de Palavras",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Organizácie (Organizations)",
|
||||
"DATASET-IDENTIFIER": "Identifikátor súborov dát (Dataset Identifier)",
|
||||
"CURRENCY": "Mena (Currency)",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Zoznam slov",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Institucije",
|
||||
"DATASET-IDENTIFIER": "Identifikatori skupa podataka",
|
||||
"CURRENCY": "Valuta",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Lista reči",
|
||||
|
|
|
@ -1180,7 +1180,9 @@
|
|||
"ORGANIZATIONS": "Kurumlar",
|
||||
"DATASET-IDENTIFIER": "Veri Seti Tanımlayıcısı",
|
||||
"CURRENCY": "Değer",
|
||||
"VALIDATION": "Validator"
|
||||
"VALIDATION": "Validator",
|
||||
"OTHER": "Other",
|
||||
"SELECT":"Select"
|
||||
},
|
||||
"DATASET-PROFILE-COMBO-BOX-TYPE": {
|
||||
"WORD-LIST": "Kelime Listesi",
|
||||
|
|
Loading…
Reference in New Issue