Added rich text area field type for response in dataset > chapter > section > questions.

1. dataset-profile.module.ts: Added in declarations "DatasetProfileEditorRichTextAreaFieldComponent".
2. dataset-profile-editor-composite-field.component.html: Added RichTextArea as input field type for response to a question.
3. dataset-profile-editor-composite-field.component.ts: In method "addNewInput()" added case for RichTextArea.
4. dataset-profile-field-view-style.ts & view-style-enum.ts: Added RichTextArea.
5. field-data.ts: Added interface RichTextAreaFieldData.
6. enum-utils.service.ts: In methods "toDatasetProfileFieldViewStyleString()" and "toDatasetProfileViewTypeString()" added cases for RichTextArea
7. field-editor-model.ts: Added richTextarea.
8. component-profile-editor-default-value.component.html: Added <mat-form-field> for RichTextArea (how rich text area is initialized when this type is selected as response).
9. dataset-profile-editor-field.component.html: Added <mat-option> for RichTextArea (to select it) and <app-dataset-profile-editor-rich-text-area-field-component> (to show it).
10. dataset-profile-editor-field.component.ts: Added RichTextArea case everywhere.
11. dataset-wizard.component.ts & dmp-editor.component.ts: In method "_getPlaceHolder()" added case for richTextarea.
12. dataset-description-form.module.ts: Imported RichTextEditorModule.
13. form-field.component.html: Added RichTextArea case with <rich-text-editor-component>.
14. assets/i18n/: Added DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RICH-TEXT-AREA-TITLE, DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RICH-TEXT-AREA-PLACEHOLDER and DMP-EDITOR.TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RICH-TEXT-AREA.
15. field-data/rich-text-area-field-data-editor-model.ts & field-type/rich-textarea/: [NEW] Files for Rich Text Area field type.
This commit is contained in:
Konstantina Galouni 2021-11-01 15:30:21 +02:00
parent 03009edaa3
commit 193e7410a8
27 changed files with 158 additions and 5 deletions

View File

@ -1,5 +1,6 @@
export enum DatasetProfileFieldViewStyle { export enum DatasetProfileFieldViewStyle {
TextArea = "textarea", TextArea = "textarea",
RichTextArea = "richTextarea",
BooleanDecision = "booleanDecision", BooleanDecision = "booleanDecision",
ComboBox = "combobox", ComboBox = "combobox",
CheckBox = "checkBox", CheckBox = "checkBox",

View File

@ -39,6 +39,10 @@ export interface TextAreaFieldData extends FieldData {
} }
export interface RichTextAreaFieldData extends FieldData {
}
export interface WordListFieldData extends FieldData { export interface WordListFieldData extends FieldData {
type: DatasetProfileComboBoxType; type: DatasetProfileComboBoxType;
options: Array<FieldDataOption>; options: Array<FieldDataOption>;

View File

@ -79,6 +79,7 @@ export class EnumUtils {
case DatasetProfileFieldViewStyle.FreeText: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.FREE-TEXT'); case DatasetProfileFieldViewStyle.FreeText: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.FREE-TEXT');
case DatasetProfileFieldViewStyle.RadioBox: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RADIO-BOX'); case DatasetProfileFieldViewStyle.RadioBox: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RADIO-BOX');
case DatasetProfileFieldViewStyle.TextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TEXT-AREA'); case DatasetProfileFieldViewStyle.TextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TEXT-AREA');
case DatasetProfileFieldViewStyle.RichTextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RICH-TEXT-AREA');
case DatasetProfileFieldViewStyle.DatePicker: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATE-PICKER'); case DatasetProfileFieldViewStyle.DatePicker: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATE-PICKER');
case DatasetProfileFieldViewStyle.ExternalDatasets: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.EXTERNAL-DATASETS'); case DatasetProfileFieldViewStyle.ExternalDatasets: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.EXTERNAL-DATASETS');
case DatasetProfileFieldViewStyle.DataRepositories: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATA-REPOSITORIES'); case DatasetProfileFieldViewStyle.DataRepositories: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATA-REPOSITORIES');
@ -101,6 +102,7 @@ export class EnumUtils {
case ViewStyleType.FreeText: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.FREE-TEXT'); 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.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.TextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.TEXT-AREA');
case ViewStyleType.RichTextArea: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.RICH-TEXT-AREA');
case ViewStyleType.DatePicker: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATE-PICKER'); 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.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.DataRepositories: return this.language.instant('TYPES.DATASET-PROFILE-FIELD-VIEW-STYLE.DATA-REPOSITORIES');

View File

@ -0,0 +1,18 @@
import { FormGroup } from '@angular/forms';
import { RichTextAreaFieldData } from '../../../../../core/model/dataset-profile-definition/field-data/field-data';
import { FieldDataEditorModel } from './field-data-editor-model';
export class RichTextAreaFieldDataEditorModel extends FieldDataEditorModel<RichTextAreaFieldDataEditorModel> {
buildForm(disabled: boolean = false, skipDisable: Array<String> = []): FormGroup {
const formGroup = this.formBuilder.group({
label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('RichTextAreaFieldDataEditorModel.label')) }]
});
return formGroup;
}
fromModel(item: RichTextAreaFieldData): RichTextAreaFieldDataEditorModel {
this.label = item.label;
return this;
}
}

View File

@ -10,6 +10,7 @@ import { FieldDataEditorModel } from './field-data/field-data-editor-model';
import { FreeTextFieldDataEditorModel } from './field-data/free-text-field-data-editor-model'; import { FreeTextFieldDataEditorModel } from './field-data/free-text-field-data-editor-model';
import { RadioBoxFieldDataEditorModel } from './field-data/radio-box-field-data-editor-model'; import { RadioBoxFieldDataEditorModel } from './field-data/radio-box-field-data-editor-model';
import { TextAreaFieldDataEditorModel } from './field-data/text-area-field-data-editor-model'; import { TextAreaFieldDataEditorModel } from './field-data/text-area-field-data-editor-model';
import { RichTextAreaFieldDataEditorModel } from './field-data/rich-text-area-field-data-editor-model';
import { WordListFieldDataEditorModel } from './field-data/word-list-field-data-editor-model'; import { WordListFieldDataEditorModel } from './field-data/word-list-field-data-editor-model';
import { ViewStyleEditorModel } from './view-style-editor-model'; import { ViewStyleEditorModel } from './view-style-editor-model';
import { VisibilityEditorModel } from './visibility-editor-model'; import { VisibilityEditorModel } from './visibility-editor-model';
@ -66,6 +67,7 @@ export class FieldEditorModel extends BaseFormModel {
if (this.viewStyle.renderStyle === 'radiobox') { this.data = new RadioBoxFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'radiobox') { this.data = new RadioBoxFieldDataEditorModel().fromModel(item.data); }
if (this.viewStyle.renderStyle === 'checkBox') { this.data = new CheckBoxFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'checkBox') { this.data = new CheckBoxFieldDataEditorModel().fromModel(item.data); }
if (this.viewStyle.renderStyle === 'textarea') { this.data = new TextAreaFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'textarea') { this.data = new TextAreaFieldDataEditorModel().fromModel(item.data); }
if (this.viewStyle.renderStyle === 'richTextarea') { this.data = new RichTextAreaFieldDataEditorModel().fromModel(item.data); }
if (this.viewStyle.renderStyle === 'freetext') { this.data = new FreeTextFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'freetext') { this.data = new FreeTextFieldDataEditorModel().fromModel(item.data); }
if (this.viewStyle.renderStyle === 'booleanDecision') { this.data = new BooleanDecisionFieldDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'booleanDecision') { this.data = new BooleanDecisionFieldDataEditorModel().fromModel(item.data); }
if (this.viewStyle.renderStyle === 'datePicker') { this.data = new DatePickerDataEditorModel().fromModel(item.data); } if (this.viewStyle.renderStyle === 'datePicker') { this.data = new DatePickerDataEditorModel().fromModel(item.data); }

View File

@ -53,6 +53,7 @@ import { DatasetProfileTableOfContents } from './table-of-contents/table-of-cont
import { DatasetProfileTableOfContentsInternalSection } from './table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section'; import { DatasetProfileTableOfContentsInternalSection } from './table-of-contents/table-of-contents-internal-section/table-of-contents-internal-section';
import {TransitionGroupModule} from "@app/ui/transition-group/transition-group.module"; import {TransitionGroupModule} from "@app/ui/transition-group/transition-group.module";
import { RichTextEditorModule } from "@app/library/rich-text-editor/rich-text-editor.module"; import { RichTextEditorModule } from "@app/library/rich-text-editor/rich-text-editor.module";
import {DatasetProfileEditorRichTextAreaFieldComponent} from "@app/ui/admin/dataset-profile/editor/components/field-type/rich-textarea/dataset-profile-editor-rich-text-area-field.component";
@ -90,6 +91,7 @@ import { RichTextEditorModule } from "@app/library/rich-text-editor/rich-text-ed
DatasetProfileEditorFreeTextFieldComponent, DatasetProfileEditorFreeTextFieldComponent,
DatasetProfileEditorRadioBoxFieldComponent, DatasetProfileEditorRadioBoxFieldComponent,
DatasetProfileEditorTextAreaFieldComponent, DatasetProfileEditorTextAreaFieldComponent,
DatasetProfileEditorRichTextAreaFieldComponent,
DatasetProfileEditorDatePickerFieldComponent, DatasetProfileEditorDatePickerFieldComponent,
DatasetProfileEditorWordListFieldComponent, DatasetProfileEditorWordListFieldComponent,
DatasetProfileEditorDefaultValueComponent, DatasetProfileEditorDefaultValueComponent,

View File

@ -268,6 +268,12 @@
{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.TextArea)}} {{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.TextArea)}}
</button> </button>
<button mat-list-item (click)="addNewInput(viewTypeEnum.RichTextArea)">
<img src="/assets/images/editor/icons/text_area.svg" class="input_icon" alt="Rich Text Area icon">
{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.RichTextArea)}}
</button>
<button mat-list-item (click)="addNewInput(viewTypeEnum.FreeText)"> <button mat-list-item (click)="addNewInput(viewTypeEnum.FreeText)">
<img src="/assets/images/editor/icons/free_text.svg" class="input_icon" alt="Free Text icon"> <img src="/assets/images/editor/icons/free_text.svg" class="input_icon" alt="Free Text icon">
{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.FreeText)}} {{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.FreeText)}}

View File

@ -40,6 +40,7 @@ import {
ServicesFieldData, ServicesFieldData,
TagsFieldData, TagsFieldData,
TextAreaFieldData, TextAreaFieldData,
RichTextAreaFieldData,
ValidationFieldData, ValidationFieldData,
WordListFieldData WordListFieldData
} from '@app/core/model/dataset-profile-definition/field-data/field-data'; } from '@app/core/model/dataset-profile-definition/field-data/field-data';
@ -683,6 +684,21 @@ export class DatasetProfileEditorCompositeFieldComponent extends BaseComponent i
break; break;
} }
case this.viewTypeEnum.RichTextArea:{
// fieldForm.get('viewStyle').get('renderStyle').setValue(DatasetProfileFieldViewStyle.TextArea)
// fieldForm.addControl('data', new TextAreaFieldDataEditorModel().buildForm());
const data: RichTextAreaFieldData = {
label:''
}
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.RichTextArea;
field.data = data;
break;
}
case this.viewTypeEnum.DatePicker:{ case this.viewTypeEnum.DatePicker:{

View File

@ -77,6 +77,13 @@
<mat-error *ngIf="form.hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> <mat-error *ngIf="form.hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field> </mat-form-field>
<!-- RichTextArea -->
<mat-form-field class="col-md-12" *ngIf="viewStyle === viewStyleEnum.RichTextArea">
<mat-label>{{placeHolder}}</mat-label>
<input matInput type="text" [placeholder]="placeHolder" [formControl]="form">
<mat-error *ngIf="form.hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field>
<!-- DatePicker --> <!-- DatePicker -->
<mat-form-field class="col-12" *ngIf="viewStyle === viewStyleEnum.DatePicker"> <mat-form-field class="col-12" *ngIf="viewStyle === viewStyleEnum.DatePicker">
<!--(focus)="date.open()" (click)="date.open()"--> <!--(focus)="date.open()" (click)="date.open()"-->

View File

@ -0,0 +1,13 @@
<div class="row" *ngIf="form.get('data')">
<h5 style="font-weight: bold" class="col-12">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RICH-TEXT-AREA-TITLE'
| translate}}</h5>
<mat-form-field class="col-12">
<mat-label>
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-RICH-TEXT-AREA-PLACEHOLDER' | translate}}
</mat-label>
<input matInput type="string"
[formControl]="form.get('data').get('label')">
</mat-form-field>
</div>

View File

@ -0,0 +1,18 @@
import { Component, Input, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { RichTextAreaFieldDataEditorModel } from '../../../../admin/field-data/rich-text-area-field-data-editor-model';
@Component({
selector: 'app-dataset-profile-editor-rich-text-area-field-component',
styleUrls: ['./dataset-profile-editor-rich-text-area-field.component.scss'],
templateUrl: './dataset-profile-editor-rich-text-area-field.component.html'
})
export class DatasetProfileEditorRichTextAreaFieldComponent implements OnInit {
@Input() form: FormGroup;
private data: RichTextAreaFieldDataEditorModel = new RichTextAreaFieldDataEditorModel();
ngOnInit() {
if (!this.form.get('data')) { this.form.addControl('data', this.data.buildForm()); }
}
}

View File

@ -75,6 +75,10 @@
<img src="/assets/images/editor/icons/text_area.svg" class="input_icon" alt="TextArea icon"> <img src="/assets/images/editor/icons/text_area.svg" class="input_icon" alt="TextArea icon">
{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.TextArea)}} {{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.TextArea)}}
</mat-option> </mat-option>
<mat-option [value]="viewTypeEnum.RichTextArea">
<img src="/assets/images/editor/icons/text_area.svg" class="input_icon" alt="RichTextArea icon">
{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.RichTextArea)}}
</mat-option>
<mat-option [value]="viewTypeEnum.FreeText"> <mat-option [value]="viewTypeEnum.FreeText">
<img src="/assets/images/editor/icons/free_text.svg" class="input_icon" alt="FreeText icon"> <img src="/assets/images/editor/icons/free_text.svg" class="input_icon" alt="FreeText icon">
{{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.FreeText)}} {{enumUtils.toDatasetProfileViewTypeString(viewTypeEnum.FreeText)}}
@ -228,6 +232,7 @@
<app-dataset-profile-editor-radio-box-field-component *ngSwitchCase="viewStyleEnum.RadioBox" class="col-12" [form]="form"></app-dataset-profile-editor-radio-box-field-component> <app-dataset-profile-editor-radio-box-field-component *ngSwitchCase="viewStyleEnum.RadioBox" class="col-12" [form]="form"></app-dataset-profile-editor-radio-box-field-component>
<app-dataset-profile-editor-free-text-field-component *ngSwitchCase="viewStyleEnum.FreeText" class="col-12" [form]="form"></app-dataset-profile-editor-free-text-field-component> <app-dataset-profile-editor-free-text-field-component *ngSwitchCase="viewStyleEnum.FreeText" class="col-12" [form]="form"></app-dataset-profile-editor-free-text-field-component>
<app-dataset-profile-editor-text-area-field-component *ngSwitchCase="viewStyleEnum.TextArea" class="col-12" [form]="form"></app-dataset-profile-editor-text-area-field-component> <app-dataset-profile-editor-text-area-field-component *ngSwitchCase="viewStyleEnum.TextArea" class="col-12" [form]="form"></app-dataset-profile-editor-text-area-field-component>
<app-dataset-profile-editor-rich-text-area-field-component *ngSwitchCase="viewStyleEnum.RichTextArea" class="col-12" [form]="form"></app-dataset-profile-editor-rich-text-area-field-component>
<app-dataset-profile-editor-date-picker-field-component *ngSwitchCase="viewStyleEnum.DatePicker" class="col-12" [form]="form"></app-dataset-profile-editor-date-picker-field-component> <app-dataset-profile-editor-date-picker-field-component *ngSwitchCase="viewStyleEnum.DatePicker" class="col-12" [form]="form"></app-dataset-profile-editor-date-picker-field-component>
<app-dataset-profile-editor-boolean-decision-field-component *ngSwitchCase="viewStyleEnum.BooleanDecision" class="col-12" <app-dataset-profile-editor-boolean-decision-field-component *ngSwitchCase="viewStyleEnum.BooleanDecision" class="col-12"

View File

@ -16,7 +16,7 @@ import { MatSlideToggleChange } from '@angular/material/slide-toggle';
import { Field } from '@app/core/model/admin/dataset-profile/dataset-profile'; import { Field } from '@app/core/model/admin/dataset-profile/dataset-profile';
import { DatasetProfileInternalDmpEntitiesType } from '@app/core/common/enum/dataset-profile-internal-dmp-entities-type'; import { DatasetProfileInternalDmpEntitiesType } from '@app/core/common/enum/dataset-profile-internal-dmp-entities-type';
import { FieldEditorModel } from '../../../admin/field-editor-model'; import { FieldEditorModel } from '../../../admin/field-editor-model';
import { AutoCompleteFieldData, BooleanDecisionFieldData, CheckBoxFieldData, CurrencyFieldData, DataRepositoriesFieldData, DatasetIdentifierFieldData, DatePickerFieldData, DmpsAutoCompleteFieldData, ExternalDatasetsFieldData, FieldDataOption, FreeTextFieldData, OrganizationsFieldData, RadioBoxFieldData, RegistriesFieldData, ResearchersAutoCompleteFieldData, ServicesFieldData, TagsFieldData, TextAreaFieldData, ValidationFieldData, WordListFieldData } from '@app/core/model/dataset-profile-definition/field-data/field-data'; import { AutoCompleteFieldData, BooleanDecisionFieldData, CheckBoxFieldData, CurrencyFieldData, DataRepositoriesFieldData, DatasetIdentifierFieldData, DatePickerFieldData, DmpsAutoCompleteFieldData, ExternalDatasetsFieldData, FieldDataOption, FreeTextFieldData, OrganizationsFieldData, RadioBoxFieldData, RegistriesFieldData, ResearchersAutoCompleteFieldData, ServicesFieldData, TagsFieldData, TextAreaFieldData, RichTextAreaFieldData, ValidationFieldData, WordListFieldData } from '@app/core/model/dataset-profile-definition/field-data/field-data';
@Component({ @Component({
selector: 'app-dataset-profile-editor-field-component', selector: 'app-dataset-profile-editor-field-component',
@ -110,6 +110,9 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
case DatasetProfileFieldViewStyle.TextArea: case DatasetProfileFieldViewStyle.TextArea:
this.viewType = this.viewTypeEnum.TextArea; this.viewType = this.viewTypeEnum.TextArea;
break; break;
case DatasetProfileFieldViewStyle.RichTextArea:
this.viewType = this.viewTypeEnum.RichTextArea;
break;
case DatasetProfileFieldViewStyle.DatePicker: case DatasetProfileFieldViewStyle.DatePicker:
this.viewType = this.viewTypeEnum.DatePicker; this.viewType = this.viewTypeEnum.DatePicker;
break; break;
@ -364,6 +367,7 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
switch(this.viewType){ switch(this.viewType){
case this.viewTypeEnum.TextArea: case this.viewTypeEnum.TextArea:
case this.viewTypeEnum.RichTextArea:
case this.viewTypeEnum.FreeText: case this.viewTypeEnum.FreeText:
case this.viewTypeEnum.BooleanDecision: case this.viewTypeEnum.BooleanDecision:
case this.viewTypeEnum.RadioBox: case this.viewTypeEnum.RadioBox:
@ -571,6 +575,16 @@ export class DatasetProfileEditorFieldComponent extends BaseComponent implements
field.data = data; field.data = data;
break; break;
} }
case this.viewTypeEnum.RichTextArea:{
const data: RichTextAreaFieldData = {
label:''
}
field.viewStyle.renderStyle = DatasetProfileFieldViewStyle.RichTextArea;
field.data = data;
break;
}
case this.viewTypeEnum.DatePicker:{ case this.viewTypeEnum.DatePicker:{

View File

@ -1,5 +1,6 @@
export enum ViewStyleType{ export enum ViewStyleType{
TextArea = "textarea", TextArea = "textarea",
RichTextArea = "richTextarea",
BooleanDecision = "booleanDecision", BooleanDecision = "booleanDecision",
CheckBox = "checkBox", CheckBox = "checkBox",
FreeText = "freetext", FreeText = "freetext",
@ -18,4 +19,4 @@ export enum ViewStyleType{
Validation = 'validation', Validation = 'validation',
Select ="selection", Select ="selection",
Other ="other" Other ="other"
} }

View File

@ -647,7 +647,8 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
} }
private _getPlaceHolder(formControl: any): string { private _getPlaceHolder(formControl: any): string {
if (formControl.nativeElement.localName === 'input' || formControl.nativeElement.localName === 'textarea') { if (formControl.nativeElement.localName === 'input' || formControl.nativeElement.localName === 'textarea'
|| formControl.nativeElement.localName === 'richTextarea') {
return formControl.nativeElement.getAttribute('placeholder'); return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'mat-select') { } else if (formControl.nativeElement.localName === 'mat-select') {
return formControl.nativeElement.getAttribute('aria-label'); return formControl.nativeElement.getAttribute('aria-label');

View File

@ -821,7 +821,8 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
} }
private _getPlaceHolder(formControl: any): string { private _getPlaceHolder(formControl: any): string {
if (formControl.nativeElement.localName === 'input' || formControl.nativeElement.localName === 'textarea') { if (formControl.nativeElement.localName === 'input' || formControl.nativeElement.localName === 'textarea'
|| formControl.nativeElement.localName === 'richTextarea') {
return formControl.nativeElement.getAttribute('placeholder'); return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'mat-select') { } else if (formControl.nativeElement.localName === 'mat-select') {
return formControl.nativeElement.getAttribute('aria-label'); return formControl.nativeElement.getAttribute('aria-label');

View File

@ -107,6 +107,19 @@
</button> </button>
<mat-error *ngIf="form.get('value')['errors'] && form.get('value')['errors']['required']">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> <mat-error *ngIf="form.get('value')['errors'] && form.get('value')['errors']['required']">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field> </mat-form-field>
<ng-container *ngSwitchCase="datasetProfileFieldViewStyleEnum.RichTextArea">
<rich-text-editor-component class="col-12"
[parentFormGroup]="form" [controlName]="'value'"
[placeholder]="form.get('data').value.label"
[required]="form.get('validationRequired').value"
[wrapperClasses]="'full-width editor ' +
((form.get('validationRequired').value) ? 'required' : '')">
</rich-text-editor-component>
<div [class]="(form.get('value')['errors'] && form.get('value')['errors']['required']) ? 'visible' : 'invisible'" class="mat-form-field form-field-subscript-wrapper">
<mat-error *ngIf="form.get('value')['errors'] && form.get('value')['errors']['required']">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</div>
</ng-container>
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.BooleanDecision" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.BooleanDecision" class="col-12">
<mat-radio-group [formControl]="form.get('value')" [required]="form.get('validationRequired').value"> <mat-radio-group [formControl]="form.get('value')" [required]="form.get('validationRequired').value">

View File

@ -14,6 +14,7 @@ import { ExternalSourcesModule } from '../external-sources/external-sources.modu
import { DatasetDescriptionComponent } from './dataset-description.component'; import { DatasetDescriptionComponent } from './dataset-description.component';
import { FormProgressIndicationModule } from './components/form-progress-indication/form-progress-indication.module'; import { FormProgressIndicationModule } from './components/form-progress-indication/form-progress-indication.module';
import { FormSectionInnerComponent } from './components/form-section/form-section-inner/form-section-inner.component'; import { FormSectionInnerComponent } from './components/form-section/form-section-inner/form-section-inner.component';
import {RichTextEditorModule} from "@app/library/rich-text-editor/rich-text-editor.module";
@NgModule({ @NgModule({
@ -22,7 +23,8 @@ import { FormSectionInnerComponent } from './components/form-section/form-sectio
CommonFormsModule, CommonFormsModule,
AutoCompleteModule, AutoCompleteModule,
ExternalSourcesModule, ExternalSourcesModule,
FormProgressIndicationModule FormProgressIndicationModule,
RichTextEditorModule
], ],
declarations: [ declarations: [
DatasetDescriptionFormComponent, DatasetDescriptionFormComponent,

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Multiplicity", "MULTIPLICITY-CHECKBOX": "Multiplicity",
"FIELD-TEXT-AREA-TITLE": "Text Area Data", "FIELD-TEXT-AREA-TITLE": "Text Area Data",
"FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text", "FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data", "FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder",
"FIELD-CHECKBOX-TITLE": "Checkbox Data", "FIELD-CHECKBOX-TITLE": "Checkbox Data",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Free Text", "FREE-TEXT": "Free Text",
"RADIO-BOX": "Radio Box", "RADIO-BOX": "Radio Box",
"TEXT-AREA": "Text Area", "TEXT-AREA": "Text Area",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Date Picker", "DATE-PICKER": "Date Picker",
"EXTERNAL-DATASETS": "External Datasets", "EXTERNAL-DATASETS": "External Datasets",
"DATA-REPOSITORIES": "Data Repositories", "DATA-REPOSITORIES": "Data Repositories",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Multiplicity", "MULTIPLICITY-CHECKBOX": "Multiplicity",
"FIELD-TEXT-AREA-TITLE": "Text Area Data", "FIELD-TEXT-AREA-TITLE": "Text Area Data",
"FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text", "FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data", "FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder Text", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder Text",
"FIELD-CHECKBOX-TITLE": "Checkbox Data", "FIELD-CHECKBOX-TITLE": "Checkbox Data",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Free Text", "FREE-TEXT": "Free Text",
"RADIO-BOX": "Radio Box", "RADIO-BOX": "Radio Box",
"TEXT-AREA": "Text Area", "TEXT-AREA": "Text Area",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Date Picker", "DATE-PICKER": "Date Picker",
"EXTERNAL-DATASETS": "External Datasets", "EXTERNAL-DATASETS": "External Datasets",
"DATA-REPOSITORIES": "Data Repositories", "DATA-REPOSITORIES": "Data Repositories",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Multiplicidad", "MULTIPLICITY-CHECKBOX": "Multiplicidad",
"FIELD-TEXT-AREA-TITLE": "Datos de área de texto", "FIELD-TEXT-AREA-TITLE": "Datos de área de texto",
"FIELD-TEXT-AREA-PLACEHOLDER": "Marcador de entrada", "FIELD-TEXT-AREA-PLACEHOLDER": "Marcador de entrada",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Datos de decisión booleana", "FIELD-BOOLEAN-DECISION-TITLE": "Datos de decisión booleana",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Marcador de entrada", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Marcador de entrada",
"FIELD-CHECKBOX-TITLE": "Datos de la casilla de verificación", "FIELD-CHECKBOX-TITLE": "Datos de la casilla de verificación",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Texto libre", "FREE-TEXT": "Texto libre",
"RADIO-BOX": "Casilla", "RADIO-BOX": "Casilla",
"TEXT-AREA": "Area de texto", "TEXT-AREA": "Area de texto",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Campo de entrada para fecha", "DATE-PICKER": "Campo de entrada para fecha",
"EXTERNAL-DATASETS": "Datasets externos", "EXTERNAL-DATASETS": "Datasets externos",
"DATA-REPOSITORIES": "Repositorios de datos", "DATA-REPOSITORIES": "Repositorios de datos",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Πολλαπλότητα", "MULTIPLICITY-CHECKBOX": "Πολλαπλότητα",
"FIELD-TEXT-AREA-TITLE": "Περιοχή Κειμένου Δεδομένων", "FIELD-TEXT-AREA-TITLE": "Περιοχή Κειμένου Δεδομένων",
"FIELD-TEXT-AREA-PLACEHOLDER": "Τοποθέτηση placeholder", "FIELD-TEXT-AREA-PLACEHOLDER": "Τοποθέτηση placeholder",
"FIELD-RICH-TEXT-AREA-TITLE": "Περιοχή Πλούσιου Κειμένου Δεδομένων",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Τοποθέτηση Placeholder",
"FIELD-BOOLEAN-DECISION-TITLE": "Boolean Δεδομένα", "FIELD-BOOLEAN-DECISION-TITLE": "Boolean Δεδομένα",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Τοποθέτηση placeholder", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Τοποθέτηση placeholder",
"FIELD-CHECKBOX-TITLE": "Πλαίσιο Ελέγχου Δεδομένων", "FIELD-CHECKBOX-TITLE": "Πλαίσιο Ελέγχου Δεδομένων",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Ελεύθερο Κείμενο", "FREE-TEXT": "Ελεύθερο Κείμενο",
"RADIO-BOX": "Πλαίσιο Επιλογής", "RADIO-BOX": "Πλαίσιο Επιλογής",
"TEXT-AREA": "Περιοχή Κειμένου", "TEXT-AREA": "Περιοχή Κειμένου",
"RICH-TEXT-AREA": "Περιοχή Πλούσιου Κειμένου",
"DATE-PICKER": "Επιλογή Ημερομηνίας", "DATE-PICKER": "Επιλογή Ημερομηνίας",
"EXTERNAL-DATASETS": "Εξωτερικά Σύνολα Δεδομένων", "EXTERNAL-DATASETS": "Εξωτερικά Σύνολα Δεδομένων",
"DATA-REPOSITORIES": "Αποθετήρια Δεδομένων", "DATA-REPOSITORIES": "Αποθετήρια Δεδομένων",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Multiplicidade", "MULTIPLICITY-CHECKBOX": "Multiplicidade",
"FIELD-TEXT-AREA-TITLE": "Dados da Área de Texto", "FIELD-TEXT-AREA-TITLE": "Dados da Área de Texto",
"FIELD-TEXT-AREA-PLACEHOLDER": "Sugestão de Preenchimento", "FIELD-TEXT-AREA-PLACEHOLDER": "Sugestão de Preenchimento",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Dados Booleanos de Decisão", "FIELD-BOOLEAN-DECISION-TITLE": "Dados Booleanos de Decisão",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Sugestão de Preenchimento", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Sugestão de Preenchimento",
"FIELD-CHECKBOX-TITLE": "Dados da caixa de verificação", "FIELD-CHECKBOX-TITLE": "Dados da caixa de verificação",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Texto Livre", "FREE-TEXT": "Texto Livre",
"RADIO-BOX": "Escolha Múltipla", "RADIO-BOX": "Escolha Múltipla",
"TEXT-AREA": "Área de Texto", "TEXT-AREA": "Área de Texto",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Escolha de Data", "DATE-PICKER": "Escolha de Data",
"EXTERNAL-DATASETS": "Datasets Externos", "EXTERNAL-DATASETS": "Datasets Externos",
"DATA-REPOSITORIES": "Repositórios de Dados", "DATA-REPOSITORIES": "Repositórios de Dados",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Multiplicity", "MULTIPLICITY-CHECKBOX": "Multiplicity",
"FIELD-TEXT-AREA-TITLE": "Text Area Data", "FIELD-TEXT-AREA-TITLE": "Text Area Data",
"FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder", "FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data", "FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder",
"FIELD-CHECKBOX-TITLE": "Checkbox Data", "FIELD-CHECKBOX-TITLE": "Checkbox Data",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Neštruktúrovaný text (Free Text)", "FREE-TEXT": "Neštruktúrovaný text (Free Text)",
"RADIO-BOX": "Pole výberu (Radio Box)", "RADIO-BOX": "Pole výberu (Radio Box)",
"TEXT-AREA": "Textová oblasť (Text Area)", "TEXT-AREA": "Textová oblasť (Text Area)",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Výber dátumu (Date Picker) ", "DATE-PICKER": "Výber dátumu (Date Picker) ",
"EXTERNAL-DATASETS": "Externé súbory dát (External Datasets)", "EXTERNAL-DATASETS": "Externé súbory dát (External Datasets)",
"DATA-REPOSITORIES": "Repozitáre dát (Data Repositories)", "DATA-REPOSITORIES": "Repozitáre dát (Data Repositories)",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Višestrukost", "MULTIPLICITY-CHECKBOX": "Višestrukost",
"FIELD-TEXT-AREA-TITLE": "Polje za tekst", "FIELD-TEXT-AREA-TITLE": "Polje za tekst",
"FIELD-TEXT-AREA-PLACEHOLDER": "Polje za unos", "FIELD-TEXT-AREA-PLACEHOLDER": "Polje za unos",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Podaci za odlučivanje", "FIELD-BOOLEAN-DECISION-TITLE": "Podaci za odlučivanje",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Polje za unos", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Polje za unos",
"FIELD-CHECKBOX-TITLE": "Podaci polja za potvrdu", "FIELD-CHECKBOX-TITLE": "Podaci polja za potvrdu",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Slobodan tekst", "FREE-TEXT": "Slobodan tekst",
"RADIO-BOX": "Polje za unos", "RADIO-BOX": "Polje za unos",
"TEXT-AREA": "Tekst", "TEXT-AREA": "Tekst",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Alat za odabir podataka", "DATE-PICKER": "Alat za odabir podataka",
"EXTERNAL-DATASETS": "Spoljni skupovi podataka", "EXTERNAL-DATASETS": "Spoljni skupovi podataka",
"DATA-REPOSITORIES": "Repozitorijumi podataka", "DATA-REPOSITORIES": "Repozitorijumi podataka",

View File

@ -390,6 +390,8 @@
"MULTIPLICITY-CHECKBOX": "Çeşitlilik", "MULTIPLICITY-CHECKBOX": "Çeşitlilik",
"FIELD-TEXT-AREA-TITLE": "Metin Alanı Verisi", "FIELD-TEXT-AREA-TITLE": "Metin Alanı Verisi",
"FIELD-TEXT-AREA-PLACEHOLDER": "Girdi Yertutucu", "FIELD-TEXT-AREA-PLACEHOLDER": "Girdi Yertutucu",
"FIELD-RICH-TEXT-AREA-TITLE": "Rich Text Area Data",
"FIELD-RICH-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-TITLE": "Boolean Kararı Verisi", "FIELD-BOOLEAN-DECISION-TITLE": "Boolean Kararı Verisi",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Girdi Yertutucu", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Girdi Yertutucu",
"FIELD-CHECKBOX-TITLE": "Onay Kutusu Verisi", "FIELD-CHECKBOX-TITLE": "Onay Kutusu Verisi",
@ -1354,6 +1356,7 @@
"FREE-TEXT": "Serbest Metin", "FREE-TEXT": "Serbest Metin",
"RADIO-BOX": "Radio Box", "RADIO-BOX": "Radio Box",
"TEXT-AREA": "Metin Alanı", "TEXT-AREA": "Metin Alanı",
"RICH-TEXT-AREA": "Rich Text Area",
"DATE-PICKER": "Tarih Seçici", "DATE-PICKER": "Tarih Seçici",
"EXTERNAL-DATASETS": "Harici Veri Setleri", "EXTERNAL-DATASETS": "Harici Veri Setleri",
"DATA-REPOSITORIES": "Veri Depoları", "DATA-REPOSITORIES": "Veri Depoları",