diff --git a/dmp-frontend/src/app/ui/admin/description-template/description-template-preview/description-template-preview-dialog.component.ts b/dmp-frontend/src/app/ui/admin/description-template/description-template-preview/description-template-preview-dialog.component.ts
index 8bdb76a81..145b3ca5a 100644
--- a/dmp-frontend/src/app/ui/admin/description-template/description-template-preview/description-template-preview-dialog.component.ts
+++ b/dmp-frontend/src/app/ui/admin/description-template/description-template-preview/description-template-preview-dialog.component.ts
@@ -2,6 +2,7 @@ import { Component, Inject, OnInit } from '@angular/core';
import { UntypedFormGroup } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { DescriptionTemplate } from '@app/core/model/description-template/description-template';
+import { Description } from '@app/core/model/description/description';
import { DescriptionTemplateService } from '@app/core/services/description-template/description-template.service';
import { LoggingService } from '@app/core/services/logging/logging-service';
import { SnackBarNotificationLevel, UiNotificationService } from '@app/core/services/notification/ui-notification-service';
@@ -24,6 +25,7 @@ export class DescriptionTemplatePreviewDialogComponent extends BaseComponent imp
progressIndication = false;
editorModel: DescriptionEditorModel;
formGroup: UntypedFormGroup;
+ previewPropertiesFormGroup: UntypedFormGroup;
descriptionTemplate: DescriptionTemplate;
constructor(
@@ -57,7 +59,10 @@ export class DescriptionTemplatePreviewDialogComponent extends BaseComponent imp
prepareForm(data: DescriptionTemplate) {
try {
- this.editorModel = new DescriptionEditorModel();
+ const mockDescription: Description = {
+ descriptionTemplate: this.descriptionTemplate
+ }
+ this.editorModel = new DescriptionEditorModel().fromModel(mockDescription, mockDescription.descriptionTemplate);;
this.buildForm();
} catch (error) {
this.logger.error('Could not parse Description item: ' + data + error);
@@ -67,7 +72,8 @@ export class DescriptionTemplatePreviewDialogComponent extends BaseComponent imp
buildForm() {
this.formGroup = this.editorModel.buildForm(null, true);
- this.visibilityRulesService.setContext(this.descriptionTemplate.definition, this.formGroup.get('properties'));
+ this.previewPropertiesFormGroup = this.editorModel.properties.buildForm() as UntypedFormGroup;
+ this.visibilityRulesService.setContext(this.descriptionTemplate.definition, this.previewPropertiesFormGroup);
}
select(): void {
diff --git a/dmp-frontend/src/app/ui/admin/description-template/editor/components/final-preview/final-preview.component.ts b/dmp-frontend/src/app/ui/admin/description-template/editor/components/final-preview/final-preview.component.ts
index ee6504887..299c36886 100644
--- a/dmp-frontend/src/app/ui/admin/description-template/editor/components/final-preview/final-preview.component.ts
+++ b/dmp-frontend/src/app/ui/admin/description-template/editor/components/final-preview/final-preview.component.ts
@@ -1,7 +1,8 @@
import { Component, Input, OnInit, SimpleChanges } from '@angular/core';
import { UntypedFormGroup } from '@angular/forms';
-import { DescriptionTemplate } from '@app/core/model/description-template/description-template';
-import { DescriptionTemplatePersist } from '@app/core/model/description-template/description-template-persist';
+import { DescriptionTemplateFieldType } from '@app/core/common/enum/description-template-field-type';
+import { DescriptionTemplate, DescriptionTemplateBaseFieldData, DescriptionTemplateDefinition, DescriptionTemplateField, DescriptionTemplateFieldSet, DescriptionTemplateMultiplicity, DescriptionTemplatePage, DescriptionTemplateReferenceTypeData, DescriptionTemplateRule, DescriptionTemplateSection } from '@app/core/model/description-template/description-template';
+import { DescriptionTemplateBaseFieldDataPersist, DescriptionTemplateDefinitionPersist, DescriptionTemplateFieldPersist, DescriptionTemplateFieldSetPersist, DescriptionTemplateMultiplicityPersist, DescriptionTemplatePagePersist, DescriptionTemplatePersist, DescriptionTemplateReferenceTypeFieldPersist, DescriptionTemplateRulePersist, DescriptionTemplateSectionPersist } from '@app/core/model/description-template/description-template-persist';
import { Description } from '@app/core/model/description/description';
import { DescriptionEditorModel } from '@app/ui/description/editor/description-editor.model';
import { VisibilityRulesService } from '@app/ui/description/editor/description-form/visibility-rules/visibility-rules.service';
@@ -23,7 +24,7 @@ export class FinalPreviewComponent implements OnInit {
previewPropertiesFormGroup
@Input() formGroup = null;
- constructor(private visibilityRulesService: VisibilityRulesService) {
+ constructor(public visibilityRulesService: VisibilityRulesService) {
}
@@ -52,11 +53,84 @@ export class FinalPreviewComponent implements OnInit {
language: persist.language,
type: undefined,
status: persist.status,
- definition: persist.definition,
+ definition: this.buildDescriptionTemplateDefinition(persist.definition),
users: persist.users
}
}
+ private buildDescriptionTemplateDefinition(persist: DescriptionTemplateDefinitionPersist) : DescriptionTemplateDefinition{
+ if (persist == null) return null;
+ return {
+ pages: persist.pages.map(x => this.buildDescriptionTemplatePage(x))
+ }
+ }
+
+ private buildDescriptionTemplatePage(persist: DescriptionTemplatePagePersist) : DescriptionTemplatePage{
+ if (persist == null) return null;
+ return {
+ id: persist.id,
+ ordinal: persist.ordinal,
+ title: persist.title,
+ sections: persist.sections.map(x => this.buildDescriptionTemplateSection(x)),
+ }
+ }
+
+ private buildDescriptionTemplateSection(persist: DescriptionTemplateSectionPersist) : DescriptionTemplateSection{
+ if (persist == null) return null;
+ return {
+ id: persist.id,
+ ordinal: persist.ordinal,
+ defaultVisibility: persist.defaultVisibility,
+ multiplicity: persist.multiplicity,
+ title: persist.title,
+ description: persist.description,
+ sections: persist.sections.map(x => this.buildDescriptionTemplateSection(x)),
+ fieldSets: persist.fieldSets.map(x => this.buildDescriptionTemplateFieldSet(x)),
+ }
+ }
+
+ private buildDescriptionTemplateFieldSet(persist: DescriptionTemplateFieldSetPersist) : DescriptionTemplateFieldSet{
+ if (persist == null) return null;
+ return {
+ id: persist.id,
+ ordinal: persist.ordinal,
+ numbering: '',
+ title: persist.title,
+ description: persist.description,
+ extendedDescription: persist.extendedDescription,
+ additionalInformation: persist.additionalInformation,
+ multiplicity: {
+ max: persist.multiplicity.max, min: persist.multiplicity.min,
+ placeholder: persist.multiplicity.placeholder, tableView: persist.multiplicity.tableView
+ },
+ hasCommentField: persist.hasCommentField,
+ fields: persist.fields.map(x => this.buildDescriptionTemplateField(x)),
+ }
+ }
+
+ private buildDescriptionTemplateField (persist: DescriptionTemplateFieldPersist) : DescriptionTemplateField{
+ if (persist == null) return null;
+ let convertedField: DescriptionTemplateField ={
+ id: persist.id,
+ ordinal: persist.ordinal,
+ schematics: persist.schematics,
+ defaultValue: persist.defaultValue,
+ visibilityRules: persist.visibilityRules,
+ validations: persist.validations,
+ includeInExport: persist.includeInExport,
+ data: persist.data,
+ }
+
+ if (persist.data.fieldType === DescriptionTemplateFieldType.REFERENCE_TYPES) {
+ convertedField.data = persist.data;
+ (convertedField.data as DescriptionTemplateReferenceTypeData).referenceType = {
+ id: (persist.data as DescriptionTemplateReferenceTypeFieldPersist).referenceTypeId
+ };
+ } else {
+ convertedField.data = persist.data;
+ }
+ return convertedField;
+ }
ngOnInit(): void {
this.generatePreviewForm();
diff --git a/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.html b/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.html
index 3137400d4..75adb93b6 100644
--- a/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.html
+++ b/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.html
@@ -1,9 +1,11 @@
-
\ No newline at end of file
+
diff --git a/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.scss b/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.scss
index 7b6aa9a15..165073eaa 100644
--- a/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.scss
+++ b/dmp-frontend/src/app/ui/annotations/annotation-dialog-component/annotation-dialog.component.scss
@@ -4,12 +4,6 @@ $mat-card-header-size: 40px !default;
border-radius: 8px;
}
-.form-container {
- width: 100%;
- min-height: 14rem;
- padding: 1rem 2rem 2rem 2rem;
-}
-
.logo {
width: 8.44rem;
}
@@ -77,7 +71,7 @@ $mat-card-header-size: 40px !default;
display: inline-block;
width: 40px;
height: 40px;
- padding: 7px;
+ padding: 12px;
text-align: center;
}
diff --git a/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html b/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html
index 2ca81178f..d8bb4fb03 100644
--- a/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html
+++ b/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html
@@ -13,10 +13,10 @@