diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java index 119e8f881..b5198d86d 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPProfileDaoImpl.java @@ -62,6 +62,7 @@ public class DMPProfileDaoImpl extends DatabaseAccess implements DMP QueryableList query = getDatabaseService().getQueryable(DMPProfile.class); if (criteria.getLike() != null && !criteria.getLike().isEmpty()) query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%")); + query.where(((builder, root) -> builder.notEqual(root.get("status"), DMPProfile.Status.DELETED.getValue()))); return query; } } diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java index ef915da1e..06c09232d 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMPProfile.java @@ -17,6 +17,33 @@ import java.util.UUID; @Table(name = "\"DMPProfile\"") public class DMPProfile implements DataEntity { + public enum Status { + SAVED((short) 0), FINALIZED((short) 1), DELETED((short) 99); + + private short value; + + private Status(short value) { + this.value = value; + } + + public short getValue() { + return value; + } + + public static Status fromInteger(int value) { + switch (value) { + case 0: + return SAVED; + case 1: + return FINALIZED; + case 99: + return DELETED; + default: + throw new RuntimeException("Unsupported Dmp Profile Status"); + } + } + } + @Id @GeneratedValue @GenericGenerator(name = "uuid2", strategy = "uuid2") @@ -109,6 +136,7 @@ public class DMPProfile implements DataEntity { this.modified = new Date(); this.definition = entity.getDefinition(); this.label = entity.getLabel(); + this.status= entity.getStatus(); } @Override diff --git a/dmp-frontend/src/app/core/common/enum/dmp-profile-status.ts b/dmp-frontend/src/app/core/common/enum/dmp-profile-status.ts new file mode 100644 index 000000000..d04da4327 --- /dev/null +++ b/dmp-frontend/src/app/core/common/enum/dmp-profile-status.ts @@ -0,0 +1,5 @@ +export enum DmpProfileStatus { + Draft = 0, + Finalized = 1, + Deleted = 99 +} \ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts b/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts index cc5fb22ac..04261650e 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts @@ -13,6 +13,7 @@ import { DmpProfileService } from '../../../../core/services/dmp/dmp-profile.ser import { SnackBarNotificationLevel, UiNotificationService } from '../../../../core/services/notification/ui-notification-service'; import { EnumUtils } from '../../../../core/services/utilities/enum-utils.service'; import { DmpProfileEditorModel, DmpProfileFieldEditorModel } from './dmp-profile-editor.model'; +import { DmpProfileStatus } from '../../../../core/common/enum/dmp-profile-status'; @Component({ selector: 'app-dmp-profile-editor-component', @@ -173,6 +174,12 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie } delete() { - //TODO + this.formGroup.get('status').setValue(DmpProfileStatus.Deleted); + this.dmpProfileService.createDmp(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } -} +} \ No newline at end of file