diff --git a/backend/core/pom.xml b/backend/core/pom.xml index da86e1101..1ab478e2e 100644 --- a/backend/core/pom.xml +++ b/backend/core/pom.xml @@ -57,12 +57,12 @@ org.opencdmp repositorydepositbase - 2.0.17 + 2.0.18 org.opencdmp common-models - 0.0.20 + 0.0.21 gr.cite @@ -72,7 +72,7 @@ org.opencdmp file-transformer-base - 0.0.25 + 0.0.26 gr.cite diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/description/PropertyDefinitionFieldSetEntity.java b/backend/core/src/main/java/org/opencdmp/commons/types/description/PropertyDefinitionFieldSetEntity.java index ea90ad4f5..b830322d1 100644 --- a/backend/core/src/main/java/org/opencdmp/commons/types/description/PropertyDefinitionFieldSetEntity.java +++ b/backend/core/src/main/java/org/opencdmp/commons/types/description/PropertyDefinitionFieldSetEntity.java @@ -5,6 +5,8 @@ import java.util.List; public class PropertyDefinitionFieldSetEntity { private List items; + private String comment; + public List getItems() { return this.items; } @@ -12,4 +14,12 @@ public class PropertyDefinitionFieldSetEntity { public void setItems(List items) { this.items = items; } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } } diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetImportExport.java b/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetImportExport.java index c8a500b34..88654b70e 100644 --- a/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetImportExport.java +++ b/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetImportExport.java @@ -16,6 +16,9 @@ public class DescriptionPropertyDefinitionFieldSetImportExport { @XmlElement(name = "item") private List items; + @XmlElement(name = "comment") + private String comment; + public List getItems() { return this.items; } @@ -31,4 +34,12 @@ public class DescriptionPropertyDefinitionFieldSetImportExport { public void setFieldSetId(String fieldSetId) { this.fieldSetId = fieldSetId; } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } } diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetItemImportExport.java b/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetItemImportExport.java index 73f3d45b2..d9bef65da 100644 --- a/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetItemImportExport.java +++ b/backend/core/src/main/java/org/opencdmp/commons/types/description/importexport/DescriptionPropertyDefinitionFieldSetItemImportExport.java @@ -14,8 +14,6 @@ public class DescriptionPropertyDefinitionFieldSetItemImportExport { @XmlElementWrapper(name = "fields") @XmlElement(name = "field") private List fields; - @XmlElement(name = "comment") - private String comment; @XmlElement(name = "ordinal") private int ordinal; @@ -27,14 +25,6 @@ public class DescriptionPropertyDefinitionFieldSetItemImportExport { this.fields = fields; } - public String getComment() { - return this.comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - public int getOrdinal() { return this.ordinal; } diff --git a/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetCommonModelBuilder.java b/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetCommonModelBuilder.java index f5f265f63..16a88b2e2 100644 --- a/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetCommonModelBuilder.java +++ b/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetCommonModelBuilder.java @@ -57,6 +57,7 @@ public class PropertyDefinitionFieldSetCommonModelBuilder extends BaseCommonMode List> models = new ArrayList<>(); for (PropertyDefinitionFieldSetEntity d : data) { PropertyDefinitionFieldSetModel m = new PropertyDefinitionFieldSetModel(); + m.setComment(d.getComment()); if (d.getItems() != null) m.setItems(this.builderFactory.builder(PropertyDefinitionFieldSetItemModelCommonModelBuilder.class).useSharedStorage(useSharedStorage).withFieldSetEntity(this.fieldSetEntity).authorize(this.authorize).build(d.getItems())); models.add(new CommonModelBuilderItemResponse<>(m, d)); } diff --git a/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetItemModelCommonModelBuilder.java b/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetItemModelCommonModelBuilder.java index 95523c825..36253b1c5 100644 --- a/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetItemModelCommonModelBuilder.java +++ b/backend/core/src/main/java/org/opencdmp/model/builder/commonmodels/description/PropertyDefinitionFieldSetItemModelCommonModelBuilder.java @@ -61,7 +61,6 @@ public class PropertyDefinitionFieldSetItemModelCommonModelBuilder extends BaseC for (PropertyDefinitionFieldSetItemEntity d : data) { PropertyDefinitionFieldSetItemModel m = new PropertyDefinitionFieldSetItemModel(); - m.setComment(d.getComment()); m.setOrdinal(d.getOrdinal()); if (d.getFields() != null && !d.getFields().isEmpty()) { m.setFields(new HashMap<>()); diff --git a/backend/core/src/main/java/org/opencdmp/model/builder/description/PropertyDefinitionFieldSetBuilder.java b/backend/core/src/main/java/org/opencdmp/model/builder/description/PropertyDefinitionFieldSetBuilder.java index df111db92..4a775b72c 100644 --- a/backend/core/src/main/java/org/opencdmp/model/builder/description/PropertyDefinitionFieldSetBuilder.java +++ b/backend/core/src/main/java/org/opencdmp/model/builder/description/PropertyDefinitionFieldSetBuilder.java @@ -58,6 +58,7 @@ public class PropertyDefinitionFieldSetBuilder extends BaseBuilder items; + public final static String _comment = "comment"; + private String comment; + public List getItems() { return items; } @@ -14,4 +17,12 @@ public class PropertyDefinitionFieldSet { public void setItems(List items) { this.items = items; } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } } diff --git a/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetItemPersist.java b/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetItemPersist.java index 1cf180d86..9de70b06b 100644 --- a/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetItemPersist.java +++ b/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetItemPersist.java @@ -25,9 +25,6 @@ public class PropertyDefinitionFieldSetItemPersist { public final static String _fields = "fields"; private Map fields; - public final static String _comment = "comment"; - private String comment; - public final static String _ordinal = "ordinal"; private Integer ordinal = null; @@ -39,14 +36,6 @@ public class PropertyDefinitionFieldSetItemPersist { this.fields = fields; } - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - public Integer getOrdinal() { return ordinal; } diff --git a/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetPersist.java b/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetPersist.java index 1799ff4f9..bea116506 100644 --- a/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetPersist.java +++ b/backend/core/src/main/java/org/opencdmp/model/persist/descriptionproperties/PropertyDefinitionFieldSetPersist.java @@ -23,6 +23,9 @@ public class PropertyDefinitionFieldSetPersist { public final static String _items = "items"; private List items; + public final static String _comment = "comment"; + private String comment; + public List getItems() { return items; } @@ -31,6 +34,14 @@ public class PropertyDefinitionFieldSetPersist { this.items = items; } + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + @Component(PersistValidator.ValidatorName) @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public static class PersistValidator extends BaseValidator { diff --git a/backend/core/src/main/java/org/opencdmp/service/description/DescriptionServiceImpl.java b/backend/core/src/main/java/org/opencdmp/service/description/DescriptionServiceImpl.java index 1d3210bff..c7a78221f 100644 --- a/backend/core/src/main/java/org/opencdmp/service/description/DescriptionServiceImpl.java +++ b/backend/core/src/main/java/org/opencdmp/service/description/DescriptionServiceImpl.java @@ -582,6 +582,7 @@ public class DescriptionServiceImpl implements DescriptionService { private @NotNull PropertyDefinitionFieldSetEntity buildPropertyDefinitionFieldSetEntity(PropertyDefinitionFieldSetPersist persist, FieldSetEntity fieldSetEntity, Map> fieldToReferenceMap, VisibilityService visibilityService) throws InvalidApplicationException { PropertyDefinitionFieldSetEntity data = new PropertyDefinitionFieldSetEntity(); if (persist == null) return data; + data.setComment(persist.getComment()); if (!this.conventionService.isListNullOrEmpty(persist.getItems())){ data.setItems(new ArrayList<>()); for (PropertyDefinitionFieldSetItemPersist itemsPersist: persist.getItems()) { @@ -596,7 +597,6 @@ public class DescriptionServiceImpl implements DescriptionService { if (persist == null) return data; if (persist.getFields() != null && !persist.getFields().isEmpty()){ data.setOrdinal(persist.getOrdinal()); - data.setComment(persist.getComment()); data.setFields(new HashMap<>()); for (String key: persist.getFields().keySet()) { org.opencdmp.commons.types.descriptiontemplate.FieldEntity fieldEntity = fieldSetEntity != null ? fieldSetEntity.getFieldById(key).stream().findFirst().orElse(null) : null; @@ -1108,6 +1108,7 @@ public class DescriptionServiceImpl implements DescriptionService { private @NotNull PropertyDefinitionFieldSetPersist buildPropertyDefinitionFieldSetPersist(PropertyDefinitionFieldSetEntity data, FieldSetEntity fieldSetEntity, List references){ PropertyDefinitionFieldSetPersist persist = new PropertyDefinitionFieldSetPersist(); if (data == null) return persist; + persist.setComment(data.getComment()); if (!this.conventionService.isListNullOrEmpty(data.getItems())){ persist.setItems(new ArrayList<>()); for (PropertyDefinitionFieldSetItemEntity itemsPersist: data.getItems()) { @@ -1122,7 +1123,6 @@ public class DescriptionServiceImpl implements DescriptionService { if (data == null) return persist; if (data.getFields() != null && !data.getFields().isEmpty()){ persist.setOrdinal(data.getOrdinal()); - persist.setComment(data.getComment()); persist.setFields(new HashMap<>()); for (String key: data.getFields().keySet()) { org.opencdmp.commons.types.descriptiontemplate.FieldEntity fieldEntity = fieldSetEntity != null ? fieldSetEntity.getFieldById(key).stream().findFirst().orElse(null) : null; @@ -1367,6 +1367,7 @@ public class DescriptionServiceImpl implements DescriptionService { xml.setFieldSetId(fieldSetId); if (entity == null) return xml; + xml.setComment(entity.getComment()); if (entity.getItems() != null && !entity.getItems().isEmpty()) { List exports = new LinkedList<>(); for (PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity : entity.getItems()) { @@ -1382,7 +1383,6 @@ public class DescriptionServiceImpl implements DescriptionService { DescriptionPropertyDefinitionFieldSetItemImportExport xml = new DescriptionPropertyDefinitionFieldSetItemImportExport(); if (entity == null) return xml; - xml.setComment(entity.getComment()); xml.setOrdinal(entity.getOrdinal()); if (entity.getFields() != null && !entity.getFields().isEmpty()) { List exports = new LinkedList<>(); @@ -1517,7 +1517,7 @@ public class DescriptionServiceImpl implements DescriptionService { return null; PropertyDefinitionFieldSetPersist persist = new PropertyDefinitionFieldSetPersist(); - + persist.setComment(importXml.getComment()); if (!this.conventionService.isListNullOrEmpty(importXml.getItems())){ List items = new ArrayList<>(); for (DescriptionPropertyDefinitionFieldSetItemImportExport fieldSetItem: importXml.getItems()) { @@ -1535,8 +1535,6 @@ public class DescriptionServiceImpl implements DescriptionService { return null; PropertyDefinitionFieldSetItemPersist persist = new PropertyDefinitionFieldSetItemPersist(); - - persist.setComment(importXml.getComment()); persist.setOrdinal(importXml.getOrdinal()); Map fields = new HashMap<>(); @@ -1730,7 +1728,7 @@ public class DescriptionServiceImpl implements DescriptionService { return null; PropertyDefinitionFieldSetPersist persist = new PropertyDefinitionFieldSetPersist(); - + persist.setComment(commonModel.getComment()); if (!this.conventionService.isListNullOrEmpty(commonModel.getItems())){ List items = new ArrayList<>(); for (PropertyDefinitionFieldSetItemModel fieldSetItem: commonModel.getItems()) { @@ -1750,7 +1748,6 @@ public class DescriptionServiceImpl implements DescriptionService { PropertyDefinitionFieldSetItemPersist persist = new PropertyDefinitionFieldSetItemPersist(); - persist.setComment(commonModel.getComment()); persist.setOrdinal(commonModel.getOrdinal()); Map fields = new HashMap<>(); diff --git a/frontend/src/app/core/model/description/description.ts b/frontend/src/app/core/model/description/description.ts index 62b852b62..df2360d51 100644 --- a/frontend/src/app/core/model/description/description.ts +++ b/frontend/src/app/core/model/description/description.ts @@ -34,11 +34,11 @@ export interface DescriptionPropertyDefinition { export interface DescriptionPropertyDefinitionFieldSet { items?: DescriptionPropertyDefinitionFieldSetItem[]; + comment?: string; } export interface DescriptionPropertyDefinitionFieldSetItem { fields?: Map; - comment?: string; ordinal?: number; } @@ -93,11 +93,11 @@ export interface DescriptionPropertyDefinitionPersist { export interface DescriptionPropertyDefinitionFieldSetPersist { items?: DescriptionPropertyDefinitionFieldSetItemPersist[]; + comment?: string; } export interface DescriptionPropertyDefinitionFieldSetItemPersist { fields?: Map; - comment?: string; ordinal?: number; } diff --git a/frontend/src/app/ui/description/editor/description-editor.model.ts b/frontend/src/app/ui/description/editor/description-editor.model.ts index e35ecc3ed..115c7f18c 100644 --- a/frontend/src/app/ui/description/editor/description-editor.model.ts +++ b/frontend/src/app/ui/description/editor/description-editor.model.ts @@ -268,6 +268,7 @@ export class DescriptionPropertyDefinitionEditorModel implements DescriptionProp export class DescriptionPropertyDefinitionFieldSetEditorModel implements DescriptionPropertyDefinitionFieldSetPersist { items?: DescriptionPropertyDefinitionFieldSetItemEditorModel[] = []; + comment?: string; protected formBuilder: UntypedFormBuilder = new UntypedFormBuilder(); fieldSetDefinition: DescriptionTemplateFieldSet; @@ -279,6 +280,7 @@ export class DescriptionPropertyDefinitionFieldSetEditorModel implements Descrip public fromModel(item: DescriptionPropertyDefinitionFieldSet, descriptionReferences: DescriptionReference[], definitionFieldSet: DescriptionTemplateFieldSet): DescriptionPropertyDefinitionFieldSetEditorModel { this.fieldSetDefinition = definitionFieldSet; if (item) { + this.comment = item.comment; if (item.items) { item.items.sort(x=> x.ordinal).map(x => this.items.push(new DescriptionPropertyDefinitionFieldSetItemEditorModel(this.validationErrorModel).fromModel(x, descriptionReferences, definitionFieldSet))); } } return this; @@ -307,7 +309,8 @@ export class DescriptionPropertyDefinitionFieldSetEditorModel implements Descrip visibilityRulesService: params.visibilityRulesService }) ), context.getValidation('items').validators - ) + ), + comment: [{ value: this.comment, disabled: disabled }, context.getValidation('comment').validators], }); } @@ -336,6 +339,7 @@ export class DescriptionPropertyDefinitionFieldSetEditorModel implements Descrip } baseValidationArray.push({ key: 'items', validators: validators }); + baseValidationArray.push({ key: 'comment', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}comment`)] }); baseContext.validation = baseValidationArray; return baseContext; } @@ -363,7 +367,6 @@ export class DescriptionPropertyDefinitionFieldSetEditorModel implements Descrip export class DescriptionPropertyDefinitionFieldSetItemEditorModel implements DescriptionPropertyDefinitionFieldSetItemPersist { fields: Map = new Map; - comment?: string; ordinal?: number; protected formBuilder: UntypedFormBuilder = new UntypedFormBuilder(); @@ -373,7 +376,6 @@ export class DescriptionPropertyDefinitionFieldSetItemEditorModel implements Des public fromModel(item: DescriptionPropertyDefinitionFieldSetItem, descriptionReferences: DescriptionReference[], definitionFieldSet: DescriptionTemplateFieldSet): DescriptionPropertyDefinitionFieldSetItemEditorModel { if (item) { - this.comment = item.comment; this.ordinal = item.ordinal; if (item.fields) { //TODO: don't like it. Find a common way to parse it either its Map or json. @@ -405,7 +407,6 @@ export class DescriptionPropertyDefinitionFieldSetItemEditorModel implements Des } const formGroup = this.formBuilder.group({}); - formGroup.addControl('comment', new FormControl({ value: this.comment, disabled: disabled }, context.getValidation('comment').validators)); formGroup.addControl('ordinal', new FormControl({ value: this.ordinal, disabled: disabled }, context.getValidation('ordinal').validators)); @@ -430,7 +431,6 @@ export class DescriptionPropertyDefinitionFieldSetItemEditorModel implements Des const baseContext: ValidationContext = new ValidationContext(); const baseValidationArray: Validation[] = new Array(); baseValidationArray.push({ key: 'fields', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}fields`)] }); - baseValidationArray.push({ key: 'comment', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}comment`)] }); baseValidationArray.push({ key: 'ordinal', validators: [BackendErrorValidator(validationErrorModel, `${rootPath}ordinal`)] }); baseContext.validation = baseValidationArray; @@ -465,7 +465,7 @@ export class DescriptionPropertyDefinitionFieldSetItemEditorModel implements Des }) }); - ['comment', 'ordinal'].forEach(keyField => { + ['ordinal'].forEach(keyField => { const control = formGroup?.get(keyField); control?.clearValidators(); control?.addValidators(context.getValidation(keyField).validators); diff --git a/frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html b/frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html index 08972bc7b..405362dc6 100644 --- a/frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html +++ b/frontend/src/app/ui/description/editor/description-form/components/form-field-set/form-field-set.component.html @@ -93,10 +93,9 @@ -
-
- +
+
diff --git a/frontend/src/app/ui/description/editor/resolvers/description-editor-entity.resolver.ts b/frontend/src/app/ui/description/editor/resolvers/description-editor-entity.resolver.ts index 74c2552ff..fb7da43a7 100644 --- a/frontend/src/app/ui/description/editor/resolvers/description-editor-entity.resolver.ts +++ b/frontend/src/app/ui/description/editor/resolvers/description-editor-entity.resolver.ts @@ -71,7 +71,7 @@ export class DescriptionEditorEntityResolver extends BaseEditorResolver { [nameof(x => x.planDescriptionTemplate), nameof(x => x.sectionId)].join('.'), [nameof(x => x.planDescriptionTemplate), nameof(x => x.isActive)].join('.'), - [nameof(x => x.properties), nameof(x => x.fieldSets), nameof(x => x.items), nameof(x => x.comment)].join('.'), + [nameof(x => x.properties), nameof(x => x.fieldSets), nameof(x => x.comment)].join('.'), [nameof(x => x.properties), nameof(x => x.fieldSets), nameof(x => x.items), nameof(x => x.ordinal)].join('.'), [nameof(x => x.properties), nameof(x => x.fieldSets), nameof(x => x.items), nameof(x => x.fields), nameof(x => x.textValue)].join('.'), [nameof(x => x.properties), nameof(x => x.fieldSets), nameof(x => x.items), nameof(x => x.fields), nameof(x => x.textListValue)].join('.'),