From ed96403d25ac39a31e8c80f62b8146adcfb07723 Mon Sep 17 00:00:00 2001 From: sgiannopoulos Date: Thu, 18 Apr 2024 10:08:46 +0300 Subject: [PATCH] update file formatters to use exportEntityTypes importEntityTypes --- dmp-backend/core/pom.xml | 2 +- .../eudat/model/file/RepositoryFileFormat.java | 16 +++++++++++++++- .../transformer/FileTransformerServiceImpl.java | 2 +- .../common/enum/file-transformer-entity-type.ts | 4 ++++ .../src/app/core/model/file/file-format.model.ts | 3 +++ .../file-transformer/file-transformer.service.ts | 8 ++++++++ .../editor/description-editor.component.html | 2 +- .../editor/description-editor.component.ts | 4 +++- .../description-listing-item.component.html | 4 ++-- .../description-listing-item.component.ts | 2 ++ .../overview/description-overview.component.html | 4 ++-- .../overview/description-overview.component.ts | 2 ++ .../listing-item/dmp-listing-item.component.html | 4 ++-- .../listing-item/dmp-listing-item.component.ts | 2 ++ .../ui/dmp/overview/dmp-overview.component.html | 4 ++-- .../ui/dmp/overview/dmp-overview.component.ts | 2 ++ 16 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 dmp-frontend/src/app/core/common/enum/file-transformer-entity-type.ts diff --git a/dmp-backend/core/pom.xml b/dmp-backend/core/pom.xml index bcd30acdc..ee105de3d 100644 --- a/dmp-backend/core/pom.xml +++ b/dmp-backend/core/pom.xml @@ -61,7 +61,7 @@ gr.cite.opendmp file-transformer-base - 0.0.11 + 0.0.12 gr.cite diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/file/RepositoryFileFormat.java b/dmp-backend/core/src/main/java/eu/eudat/model/file/RepositoryFileFormat.java index 21779ae1d..4f0c221e0 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/file/RepositoryFileFormat.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/file/RepositoryFileFormat.java @@ -1,18 +1,24 @@ package eu.eudat.model.file; +import eu.eudat.file.transformer.enums.FileTransformerEntityType; import eu.eudat.file.transformer.models.misc.FileFormat; +import java.util.List; + public class RepositoryFileFormat { private String format; private Boolean hasLogo; private String icon; private String repositoryId; - public RepositoryFileFormat(String repositoryId, FileFormat format) { + private List entityTypes; + + public RepositoryFileFormat(String repositoryId, FileFormat format, List entityTypes) { this.repositoryId = repositoryId; this.format = format.getFormat(); this.hasLogo = format.getHasLogo(); this.icon = format.getIcon(); + this.entityTypes = entityTypes; } public String getFormat() { @@ -46,4 +52,12 @@ public class RepositoryFileFormat { public void setRepositoryId(String repositoryId) { this.repositoryId = repositoryId; } + + public List getEntityTypes() { + return entityTypes; + } + + public void setEntityTypes(List entityTypes) { + this.entityTypes = entityTypes; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerServiceImpl.java index dc9d10f58..de891407e 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerServiceImpl.java @@ -91,7 +91,7 @@ public class FileTransformerServiceImpl implements FileTransformerService { List configurations = this.getAvailableConfigurations(); if(configurations != null){ for (FileTransformerConfiguration configuration : configurations){ - if (configuration != null && configuration.getExportVariants() != null) formats.addAll(configuration.getExportVariants().stream().map(x-> new RepositoryFileFormat(configuration.getFileTransformerId(), x)).toList()); + if (configuration != null && configuration.getExportVariants() != null) formats.addAll(configuration.getExportVariants().stream().map(x-> new RepositoryFileFormat(configuration.getFileTransformerId(), x, configuration.getExportEntityTypes())).toList()); } } return formats; diff --git a/dmp-frontend/src/app/core/common/enum/file-transformer-entity-type.ts b/dmp-frontend/src/app/core/common/enum/file-transformer-entity-type.ts new file mode 100644 index 000000000..5330267b0 --- /dev/null +++ b/dmp-frontend/src/app/core/common/enum/file-transformer-entity-type.ts @@ -0,0 +1,4 @@ +export enum FileTransformerEntityType { + Dmp = 0, + Description = 1 +} diff --git a/dmp-frontend/src/app/core/model/file/file-format.model.ts b/dmp-frontend/src/app/core/model/file/file-format.model.ts index 5d78198e5..1b3a7188c 100644 --- a/dmp-frontend/src/app/core/model/file/file-format.model.ts +++ b/dmp-frontend/src/app/core/model/file/file-format.model.ts @@ -1,6 +1,9 @@ +import { FileTransformerEntityType } from "@app/core/common/enum/file-transformer-entity-type"; + export interface RepositoryFileFormat { format: string; hasLogo: boolean; icon: string; repositoryId: string; + entityTypes: FileTransformerEntityType[]; } diff --git a/dmp-frontend/src/app/core/services/file-transformer/file-transformer.service.ts b/dmp-frontend/src/app/core/services/file-transformer/file-transformer.service.ts index e2a5df34e..2d38d04dc 100644 --- a/dmp-frontend/src/app/core/services/file-transformer/file-transformer.service.ts +++ b/dmp-frontend/src/app/core/services/file-transformer/file-transformer.service.ts @@ -8,6 +8,7 @@ import { MatomoService } from '../matomo/matomo-service'; import { FileUtils } from '../utilities/file-utils.service'; import { AuthService } from '../auth/auth.service'; import { RepositoryFileFormat } from '@app/core/model/file/file-format.model'; +import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type'; @Injectable() export class FileTransformerService extends BaseService { @@ -32,6 +33,13 @@ export class FileTransformerService extends BaseService { return this._availableFormats; } + public availableFormatsFor(entityType: FileTransformerEntityType) { + if (this.availableFormats) { + return this.availableFormats.filter(x => x.entityTypes.includes(entityType)); + } + return []; + } + init() { this._loading = true; // console.log('init'); diff --git a/dmp-frontend/src/app/ui/description/editor/description-editor.component.html b/dmp-frontend/src/app/ui/description/editor/description-editor.component.html index f6b272edd..726e57a89 100644 --- a/dmp-frontend/src/app/ui/description/editor/description-editor.component.html +++ b/dmp-frontend/src/app/ui/description/editor/description-editor.component.html @@ -34,7 +34,7 @@ expand_more - diff --git a/dmp-frontend/src/app/ui/description/editor/description-editor.component.ts b/dmp-frontend/src/app/ui/description/editor/description-editor.component.ts index 8b2e8b501..d7adf6939 100644 --- a/dmp-frontend/src/app/ui/description/editor/description-editor.component.ts +++ b/dmp-frontend/src/app/ui/description/editor/description-editor.component.ts @@ -46,6 +46,7 @@ import { FileTransformerService } from '@app/core/services/file-transformer/file import { DmpBlueprintDefinitionSection } from '@app/core/model/dmp-blueprint/dmp-blueprint'; import { DescriptionTemplate } from '@app/core/model/description-template/description-template'; import { DmpDescriptionTemplate } from '@app/core/model/dmp/dmp'; +import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type'; @Component({ selector: 'app-description-editor-component', @@ -59,6 +60,7 @@ export class DescriptionEditorComponent extends BaseEditor { + error => { if (this.formGroup.get('status').value == DescriptionStatus.Finalized){ this.formGroup.get('status').setValue(DescriptionStatus.Draft); this.uiNotificationService.snackBarNotification(this.language.instant('GENERAL.SNACK-BAR.UNSUCCESSFUL-FINALIZE'), SnackBarNotificationLevel.Error); diff --git a/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.html b/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.html index d9d09e357..9c09e6851 100644 --- a/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.html +++ b/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.html @@ -24,7 +24,7 @@
- open_in_new{{'DESCRIPTION-LISTING.ACTIONS.EXPORT' | translate}} + open_in_new{{'DESCRIPTION-LISTING.ACTIONS.EXPORT' | translate}} group_add{{'DESCRIPTION-LISTING.ACTIONS.INVITE-SHORT' | translate}} file_copy{{'DESCRIPTION-LISTING.ACTIONS.COPY-DESCRIPTION' | translate}} delete{{ 'DESCRIPTION-LISTING.ACTIONS.DELETE' | translate }} @@ -38,7 +38,7 @@ - diff --git a/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.ts b/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.ts index 3edaa4574..47556aaaa 100644 --- a/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.ts @@ -27,6 +27,7 @@ import { takeUntil } from 'rxjs/operators'; import { DescriptionStatus } from '../../../../core/common/enum/description-status'; import { DescriptionCopyDialogComponent } from '../../description-copy-dialog/description-copy-dialog.component'; import { AppPermission } from '@app/core/common/enum/permission.enum'; +import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type'; @Component({ selector: 'app-description-listing-item-component', @@ -44,6 +45,7 @@ export class DescriptionListingItemComponent extends BaseComponent implements On isDeleted: boolean; isUserOwner: boolean; descriptionStatusEnum = DescriptionStatus; + fileTransformerEntityTypeEnum = FileTransformerEntityType; dmpAccessTypeEnum = DmpAccessType; canDelete: boolean = false; canEdit: boolean = false; diff --git a/dmp-frontend/src/app/ui/description/overview/description-overview.component.html b/dmp-frontend/src/app/ui/description/overview/description-overview.component.html index 09c4e20d1..0cc7d971d 100644 --- a/dmp-frontend/src/app/ui/description/overview/description-overview.component.html +++ b/dmp-frontend/src/app/ui/description/overview/description-overview.component.html @@ -147,7 +147,7 @@
- +
- diff --git a/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts b/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts index eb486cb67..d5f5e6227 100644 --- a/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts +++ b/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts @@ -40,6 +40,7 @@ import { PopupNotificationDialogComponent } from '@app/library/notification/popu import { IsActive } from '@app/core/common/enum/is-active.enum'; import { DmpInvitationDialogComponent } from '@app/ui/dmp/invitation/dialog/dmp-invitation-dialog.component'; import { DmpBlueprint, DmpBlueprintDefinition, DmpBlueprintDefinitionSection } from '@app/core/model/dmp-blueprint/dmp-blueprint'; +import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type'; @Component({ @@ -62,6 +63,7 @@ export class DescriptionOverviewComponent extends BaseComponent implements OnIni dmpAccessTypeEnum = DmpAccessType; dmpStatusEnum = DmpStatus; dmpUserRoleEnum = DmpUserRole; + fileTransformerEntityTypeEnum = FileTransformerEntityType; canEdit = false; canDelete = false; diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html index 34450d06f..83c71a852 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.html @@ -28,7 +28,7 @@ {{'GENERAL.ACTIONS.SHOW-MORE' | translate}} - diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts index 8d5209089..ffb50dca0 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts @@ -27,6 +27,7 @@ import { CloneDmpDialogComponent } from '../../clone-dialog/dmp-clone-dialog.com import { DmpInvitationDialogComponent } from '../../invitation/dialog/dmp-invitation-dialog.component'; import { NewVersionDmpDialogComponent } from '../../new-version-dialog/dmp-new-version-dialog.component'; import { AppPermission } from '@app/core/common/enum/permission.enum'; +import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type'; @Component({ selector: 'app-dmp-listing-item-component', @@ -44,6 +45,7 @@ export class DmpListingItemComponent extends BaseComponent implements OnInit { isFinalized: boolean; isPublished: boolean; dmpStatusEnum = DmpStatus; + fileTransformerEntityTypeEnum = FileTransformerEntityType; constructor( private router: Router, diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html index 8a2517c23..c41fbc125 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html @@ -196,7 +196,7 @@
- +
- diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts index 94fcfe2bd..25f8806ef 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts @@ -46,6 +46,7 @@ import { ReferenceType } from '@app/core/model/reference-type/reference-type'; import { IsActive } from '@app/core/common/enum/is-active.enum'; import { DmpFinalizeDialogComponent, DmpFinalizeDialogOutput } from '../dmp-finalize-dialog/dmp-finalize-dialog.component'; import { DmpEditorResolver } from '../dmp-editor-blueprint/dmp-editor.resolver'; +import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type'; @Component({ selector: 'app-dmp-overview', @@ -67,6 +68,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { textMessage: any; pastVersions: Dmp[]; //TODO: get these from the backend selectedModel: EntityDoi; + fileTransformerEntityTypeEnum = FileTransformerEntityType; @ViewChild('doi') doi: ElementRef;