From f296bc44f9313f8f5fb774db3e7339785715794f Mon Sep 17 00:00:00 2001 From: Diamantis Tziotzios Date: Tue, 30 Jan 2024 19:27:55 +0200 Subject: [PATCH] description template frontend changes --- .../fielddata/ComboBoxOptionPersist.java | 8 +---- .../fielddata/RadioBoxDataPersist.java | 10 +++++-- .../DescriptionTemplateServiceImpl.java | 3 +- .../BaseFieldDataHelperService.java | 1 + ...ption-template-field-data-combobox-type.ts | 4 --- .../enum/description-template-field-type.ts | 2 +- .../description-template-persist.ts | 2 +- .../description-template.ts | 2 +- .../src/app/core/pipes/field-value.pipe.ts | 2 +- .../services/utilities/enum-utils.service.ts | 2 +- .../description-template.module.ts | 6 ++-- ...late-editor-composite-field.component.html | 4 +-- ...mplate-editor-composite-field.component.ts | 6 ++-- ...mplate-editor-default-value.component.html | 2 +- ...rofile-editor-radio-box-field.component.ts | 29 ------------------- ...ate-editor-radio-box-field.component.html} | 0 ...ate-editor-radio-box-field.component.scss} | 0 ...mplate-editor-radio-box-field.component.ts | 26 +++++++++++++++++ ...mplate-editor-select-field.component.html} | 10 +++---- ...mplate-editor-select-field.component.scss} | 0 ...template-editor-select-field.component.ts} | 12 ++++---- ...ption-template-editor-field.component.html | 8 ++--- ...ription-template-editor-field.component.ts | 8 ++--- ...description-template-editor.component.html | 4 +-- .../description-template-editor.component.ts | 4 +-- .../description-template-editor.model.ts | 16 +++++----- .../description-template-editor.resolver.ts | 6 +++- .../editor/description-editor.resolver.ts | 10 +++---- .../form-field/form-field.component.html | 2 +- .../form-field/form-field.component.ts | 8 ++--- dmp-frontend/src/assets/i18n/en.json | 12 ++++---- .../src/assets/resources/skipDisable.json | 2 +- 32 files changed, 105 insertions(+), 106 deletions(-) delete mode 100644 dmp-frontend/src/app/core/common/enum/description-template-field-data-combobox-type.ts delete mode 100644 dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/radio-box/dataset-profile-editor-radio-box-field.component.ts rename dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/radio-box/{dataset-profile-editor-radio-box-field.component.html => description-template-editor-radio-box-field.component.html} (100%) rename dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/radio-box/{dataset-profile-editor-radio-box-field.component.scss => description-template-editor-radio-box-field.component.scss} (100%) create mode 100644 dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/radio-box/description-template-editor-radio-box-field.component.ts rename dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/{word-list/description-template-editor-word-list-field.component.html => select/description-template-editor-select-field.component.html} (90%) rename dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/{word-list/description-template-editor-word-list-field.component.scss => select/description-template-editor-select-field.component.scss} (100%) rename dmp-frontend/src/app/ui/admin/description-template/editor/components/field-type/{word-list/description-template-editor-word-list-field.component.ts => select/description-template-editor-select-field.component.ts} (54%) diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/ComboBoxOptionPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/ComboBoxOptionPersist.java index 82c16ff90..8a0b6dcb5 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/ComboBoxOptionPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/ComboBoxOptionPersist.java @@ -89,13 +89,7 @@ public class ComboBoxOptionPersist { .failOn(ComboBoxOptionPersist._label).failWith(messageSource.getMessage("Validation_Required", new Object[]{ComboBoxOptionPersist._label}, LocaleContextHolder.getLocale())), this.spec() .must(() -> !this.isEmpty(item.getValue())) - .failOn(ComboBoxOptionPersist._value).failWith(messageSource.getMessage("Validation_Required", new Object[]{ComboBoxOptionPersist._value}, LocaleContextHolder.getLocale())), - this.spec() - .must(() -> !this.isEmpty(item.getSource())) - .failOn(ComboBoxOptionPersist._source).failWith(messageSource.getMessage("Validation_Required", new Object[]{ComboBoxOptionPersist._source}, LocaleContextHolder.getLocale())), - this.spec() - .must(() -> !this.isEmpty(item.getUri())) - .failOn(ComboBoxOptionPersist._uri).failWith(messageSource.getMessage("Validation_Required", new Object[]{ComboBoxOptionPersist._uri}, LocaleContextHolder.getLocale())) + .failOn(ComboBoxOptionPersist._value).failWith(messageSource.getMessage("Validation_Required", new Object[]{ComboBoxOptionPersist._value}, LocaleContextHolder.getLocale())) ); } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/RadioBoxDataPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/RadioBoxDataPersist.java index c014a5258..a19c17afe 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/RadioBoxDataPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/RadioBoxDataPersist.java @@ -10,6 +10,7 @@ import org.springframework.context.annotation.Scope; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -47,8 +48,12 @@ public class RadioBoxDataPersist extends BaseFieldDataPersist { @Override protected List specifications(RadioBoxDataPersist item) { - List specifications = getBaseSpecifications(item); - specifications.addAll(Arrays.asList( + + // For Radio Box we don't have label, since it's the actual title of the question. + return new ArrayList<>(Arrays.asList( + this.spec() + .must(() -> !this.isNull(item.getFieldType())) + .failOn(BaseFieldDataPersist._fieldType).failWith(messageSource.getMessage("Validation_Required", new Object[]{BaseFieldDataPersist._fieldType}, LocaleContextHolder.getLocale())), this.spec() .must(() -> !this.isNull(item.getOptions())) .failOn(RadioBoxDataPersist._options).failWith(messageSource.getMessage("Validation_Required", new Object[]{RadioBoxDataPersist._options}, LocaleContextHolder.getLocale())), @@ -58,7 +63,6 @@ public class RadioBoxDataPersist extends BaseFieldDataPersist { .over(item.getOptions()) .using((itm) -> this.validatorFactory.validator(RadioBoxOptionPersist.RadioBoxOptionPersistValidator.class)) )); - return specifications; } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java index cbb1dc6af..c81901593 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java @@ -178,6 +178,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic } else { data = new DescriptionTemplateEntity(); data.setId(UUID.randomUUID()); + data.setStatus(DescriptionTemplateStatus.Draft); data.setIsActive(IsActive.Active); data.setCreatedAt(Instant.now()); data.setGroupId(UUID.randomUUID()); @@ -219,7 +220,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic if (newStatus.equals(DescriptionTemplateStatus.Finalized)) { List latestVersionDescriptionTemplates = this.queryFactory.query(DescriptionTemplateQuery.class).versionStatuses(DescriptionTemplateVersionStatus.Current).isActive(IsActive.Active).groupIds(data.getGroupId()).collect(); if (latestVersionDescriptionTemplates.size() > 1) throw new MyValidationException("Multiple previous template found"); - DescriptionTemplateEntity oldDescriptionTemplateEntity = latestVersionDescriptionTemplates.getFirst(); + DescriptionTemplateEntity oldDescriptionTemplateEntity = latestVersionDescriptionTemplates.stream().findFirst().orElse(null); data.setVersionStatus(DescriptionTemplateVersionStatus.Current); diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java index be30c7e1a..f25802db7 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java @@ -83,6 +83,7 @@ public abstract class BaseFieldDataHelperService applyPersist(BaseFieldDataPersist persist, BaseFieldDataEntity data){ data.setLabel(persist.getLabel()); + data.setFieldType(persist.getFieldType()); return this.applyPersistInternal((PM)persist, (D)data); } diff --git a/dmp-frontend/src/app/core/common/enum/description-template-field-data-combobox-type.ts b/dmp-frontend/src/app/core/common/enum/description-template-field-data-combobox-type.ts deleted file mode 100644 index 9124d12dc..000000000 --- a/dmp-frontend/src/app/core/common/enum/description-template-field-data-combobox-type.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum DescriptionTemplateFieldDataComboBoxType { - Autocomplete = 'autocomplete', - Wordlist = 'wordlist' -} \ No newline at end of file diff --git a/dmp-frontend/src/app/core/common/enum/description-template-field-type.ts b/dmp-frontend/src/app/core/common/enum/description-template-field-type.ts index 109126a02..841ae1d32 100644 --- a/dmp-frontend/src/app/core/common/enum/description-template-field-type.ts +++ b/dmp-frontend/src/app/core/common/enum/description-template-field-type.ts @@ -1,7 +1,7 @@ export enum DescriptionTemplateFieldType { COMBO_BOX = "combobox", //Delete AUTO_COMPLETE = "autocomplete", - WORD_LIST = "wordlist", + SELECT = "wordlist", BOOLEAN_DECISION = "booleanDecision", RADIO_BOX = "radiobox", INTERNAL_DMP_ENTRIES = "internalDmpEntities", //Delete diff --git a/dmp-frontend/src/app/core/model/description-template/description-template-persist.ts b/dmp-frontend/src/app/core/model/description-template/description-template-persist.ts index 77addc8e2..106c7d6f2 100644 --- a/dmp-frontend/src/app/core/model/description-template/description-template-persist.ts +++ b/dmp-frontend/src/app/core/model/description-template/description-template-persist.ts @@ -173,7 +173,7 @@ export interface DescriptionTemplateDatasetIdentifierDataPersist extends Descrip export interface DescriptionTemplateCurrencyDataPersist extends DescriptionTemplateBaseFieldDataPersist { } -export interface DescriptionTemplateWordListDataPersist extends DescriptionTemplateBaseFieldDataPersist { +export interface DescriptionTemplateSelectDataPersist extends DescriptionTemplateBaseFieldDataPersist { options: DescriptionTemplateComboBoxOptionPersist[]; multiList: boolean; } diff --git a/dmp-frontend/src/app/core/model/description-template/description-template.ts b/dmp-frontend/src/app/core/model/description-template/description-template.ts index e652a7041..13103ab45 100644 --- a/dmp-frontend/src/app/core/model/description-template/description-template.ts +++ b/dmp-frontend/src/app/core/model/description-template/description-template.ts @@ -186,7 +186,7 @@ export interface DescriptionTemplateUploadData extends DescriptionTemplateBaseFi export interface DescriptionTemplateValidationData extends DescriptionTemplateBaseFieldData { } -export interface DescriptionTemplateWordListData extends DescriptionTemplateBaseFieldData { +export interface DescriptionTemplateSelectData extends DescriptionTemplateBaseFieldData { options: DescriptionTemplateComboBoxOption[]; multiList: boolean; } diff --git a/dmp-frontend/src/app/core/pipes/field-value.pipe.ts b/dmp-frontend/src/app/core/pipes/field-value.pipe.ts index 0e14cb8b5..2b52fa4f1 100644 --- a/dmp-frontend/src/app/core/pipes/field-value.pipe.ts +++ b/dmp-frontend/src/app/core/pipes/field-value.pipe.ts @@ -34,7 +34,7 @@ export class FieldValuePipe implements PipeTransform { case DescriptionTemplateFieldType.FREE_TEXT: return value; case DescriptionTemplateFieldType.AUTO_COMPLETE: - case DescriptionTemplateFieldType.WORD_LIST: + case DescriptionTemplateFieldType.SELECT: if (value && controlValue.data.options && !controlValue.data.multiList) { return controlValue.data.options.find(option => value == option.value).label; } else if (value && controlValue.data.options && controlValue.data.multiList) { diff --git a/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts b/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts index 0933e4ac2..708980f29 100644 --- a/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts +++ b/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts @@ -156,7 +156,7 @@ export class EnumUtils { switch (status) { case DescriptionTemplateFieldType.COMBO_BOX: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.COMBO-BOX'); case DescriptionTemplateFieldType.AUTO_COMPLETE: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.AUTO-COMPLETE'); - case DescriptionTemplateFieldType.WORD_LIST: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.WORD-LIST'); + case DescriptionTemplateFieldType.SELECT: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.SELECT'); case DescriptionTemplateFieldType.BOOLEAN_DECISION: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.BOOLEAN-DECISION'); case DescriptionTemplateFieldType.RADIO_BOX: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.RADIO-BOX'); case DescriptionTemplateFieldType.INTERNAL_DMP_ENTRIES: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-TYPE.INTERNAL-DMP-ENTITIES'); diff --git a/dmp-frontend/src/app/ui/admin/description-template/description-template.module.ts b/dmp-frontend/src/app/ui/admin/description-template/description-template.module.ts index 08cc416ad..8d2359e22 100644 --- a/dmp-frontend/src/app/ui/admin/description-template/description-template.module.ts +++ b/dmp-frontend/src/app/ui/admin/description-template/description-template.module.ts @@ -16,7 +16,7 @@ import { DescriptionTemplateEditorDefaultValueComponent } from './editor/compone import { DescriptionTemplateEditorAutoCompleteFieldComponent } from './editor/components/field-type/auto-complete/description-template-editor-auto-complete-field.component'; import { DescriptionTemplateEditorMultiplicityFieldComponent } from './editor/components/field-type/multiplicity-field/description-template-editor-multiplicity-field.component'; import { DescriptionTemplateEditorPlaceholderFieldComponent } from './editor/components/field-type/placeholder-field/description-template-editor-placeholder-field.component'; -import { DescriptionTemplateEditorWordListFieldComponent } from './editor/components/field-type/word-list/description-template-editor-word-list-field.component'; +import { DescriptionTemplateEditorSelectFieldComponent } from './editor/components/field-type/select/description-template-editor-select-field.component'; import { DescriptionTemplateEditorFieldComponent } from './editor/components/field/description-template-editor-field.component'; import { DescriptionTemplateEditorSectionFieldSetComponent } from './editor/components/section-fieldset/description-template-editor-section-fieldset.component'; import { DescriptionTemplateEditorSectionComponent } from './editor/components/section/description-template-editor-section.component'; @@ -27,6 +27,7 @@ import { DescriptionTemplateTableOfContentsInternalSection } from './editor/tabl import { DescriptionTemplateListingComponent } from './listing/description-template-listing.component'; import { DescriptionTemplateListingFiltersComponent } from "./listing/filters/description-template-listing-filters.component"; import { ImportDescriptionTemplateDialogComponent } from './listing/import-description-template/import-description-template.dialog.component'; +import { DescriptionTemplateEditorRadioBoxFieldComponent } from './editor/components/field-type/radio-box/description-template-editor-radio-box-field.component'; @NgModule({ imports: [ @@ -66,9 +67,10 @@ import { ImportDescriptionTemplateDialogComponent } from './listing/import-descr DescriptionTemplateEditorRuleComponent, DescriptionTemplateEditorAutoCompleteFieldComponent, - DescriptionTemplateEditorWordListFieldComponent, + DescriptionTemplateEditorSelectFieldComponent, DescriptionTemplateEditorPlaceholderFieldComponent, DescriptionTemplateEditorMultiplicityFieldComponent, + DescriptionTemplateEditorRadioBoxFieldComponent ] }) export class DescriptionTemplateModule { } diff --git a/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html b/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html index 835aee3b3..03161e52c 100644 --- a/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html +++ b/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html @@ -159,11 +159,11 @@ RadioBox icon {{enumUtils.toDescriptionTemplateFieldTypeString(descriptionTemplateFieldTypeEnum.RADIO_BOX)}} -