From 49fb3f91639f8664ba3721b1f336faaa22f023f4 Mon Sep 17 00:00:00 2001 From: minottic Date: Mon, 13 Apr 2026 09:47:48 +0000 Subject: [PATCH 1/2] feat: add marked for deletion view --- .../dataset-table-actions.component.spec.ts | 12 ++++++++++++ .../dataset-table-actions.component.ts | 1 + src/app/shared/services/datasets-list.service.ts | 10 ++++++++++ src/app/state-management/models/index.ts | 1 + .../state-management/reducers/datasets.reducer.ts | 5 +++++ 5 files changed, 29 insertions(+) diff --git a/src/app/datasets/dataset-table-actions/dataset-table-actions.component.spec.ts b/src/app/datasets/dataset-table-actions/dataset-table-actions.component.spec.ts index 991fa38ed3..57ff762d1a 100644 --- a/src/app/datasets/dataset-table-actions/dataset-table-actions.component.spec.ts +++ b/src/app/datasets/dataset-table-actions/dataset-table-actions.component.spec.ts @@ -117,6 +117,18 @@ describe("DatasetTableActionsComponent", () => { setArchiveViewModeAction({ modeToggle }), ); }); + + it("should dispatch selected marked_for_deletion archive mode", () => { + dispatchSpy = spyOn(store, "dispatch"); + const modeToggle = ArchViewMode.marked_for_deletion; + + component.onModeChange(modeToggle); + + expect(dispatchSpy).toHaveBeenCalledTimes(1); + expect(dispatchSpy).toHaveBeenCalledWith( + setArchiveViewModeAction({ modeToggle }), + ); + }); }); describe("#isEmptySelection()", () => { diff --git a/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts b/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts index bc28185dd9..bcbf4f8239 100644 --- a/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts +++ b/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts @@ -38,6 +38,7 @@ export class DatasetTableActionsComponent implements OnInit, OnDestroy { ArchViewMode.work_in_progress, ArchViewMode.system_error, ArchViewMode.user_error, + ArchViewMode.marked_for_deletion, ArchViewMode.deleted, ]; diff --git a/src/app/shared/services/datasets-list.service.ts b/src/app/shared/services/datasets-list.service.ts index 5545b986b3..75568ccfcb 100644 --- a/src/app/shared/services/datasets-list.service.ts +++ b/src/app/shared/services/datasets-list.service.ts @@ -112,6 +112,12 @@ export class DatasetsListService implements OnDestroy { return false; } + markedForDeletionCondition(dataset: DatasetClass): boolean { + return ( + dataset.datasetlifecycle.archiveStatusMessage === "markedForDeletion" + ); + } + deletedCondition(dataset: DatasetClass): boolean { return dataset.datasetlifecycle.archiveStatusMessage === "deleted"; } @@ -192,6 +198,8 @@ export class DatasetsListService implements OnDestroy { return "Archivable"; } else if (this.retrievableCondition(row)) { return "Retrievable"; + } else if (this.markedForDeletionCondition(row)) { + return "Marked for deletion"; } else if (this.deletedCondition(row)) { return "Deleted"; } else if (this.systemErrorCondition(row)) { @@ -210,6 +218,8 @@ export class DatasetsListService implements OnDestroy { return "Archivable"; } else if (this.retrievableCondition(row)) { return "Retrievable"; + } else if (this.markedForDeletionCondition(row)) { + return "Marked for deletion"; } else if (this.deletedCondition(row)) { return "Deleted"; } else if (this.systemErrorCondition(row)) { diff --git a/src/app/state-management/models/index.ts b/src/app/state-management/models/index.ts index 6a0e4a67f6..8bd090db9a 100644 --- a/src/app/state-management/models/index.ts +++ b/src/app/state-management/models/index.ts @@ -124,6 +124,7 @@ export enum ArchViewMode { work_in_progress = "work in progress", system_error = "system error", user_error = "user error", + marked_for_deletion = "marked for deletion", deleted = "deleted", } export enum JobViewMode { diff --git a/src/app/state-management/reducers/datasets.reducer.ts b/src/app/state-management/reducers/datasets.reducer.ts index 6391084561..130d3e1a46 100644 --- a/src/app/state-management/reducers/datasets.reducer.ts +++ b/src/app/state-management/reducers/datasets.reducer.ts @@ -343,6 +343,11 @@ const reducer = createReducer( ], }; break; + case ArchViewMode.marked_for_deletion: + mode = { + "datasetlifecycle.archiveStatusMessage": "markedForDeletion", + }; + break; case ArchViewMode.deleted: mode = { "datasetlifecycle.archiveStatusMessage": "deleted", From f36a661c8118cfe40e79a7527ec0adfec9980840 Mon Sep 17 00:00:00 2001 From: minottic Date: Wed, 15 Apr 2026 13:12:44 +0000 Subject: [PATCH 2/2] Make mark for deletion optional --- src/app/app-config.service.ts | 1 + .../dataset-table-actions.component.ts | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/app-config.service.ts b/src/app/app-config.service.ts index e669d360f7..f67abd723f 100644 --- a/src/app/app-config.service.ts +++ b/src/app/app-config.service.ts @@ -170,6 +170,7 @@ export interface AppConfigInterface { defaultTab?: DefaultTab; statusBannerMessage?: string; statusBannerCode?: "INFO" | "WARN"; + markForDeletionWorkflowEnabled?: boolean; } function isMainPageConfiguration(obj: any): obj is MainPageConfiguration { diff --git a/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts b/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts index bcbf4f8239..f0c345d7c0 100644 --- a/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts +++ b/src/app/datasets/dataset-table-actions/dataset-table-actions.component.ts @@ -40,7 +40,12 @@ export class DatasetTableActionsComponent implements OnInit, OnDestroy { ArchViewMode.user_error, ArchViewMode.marked_for_deletion, ArchViewMode.deleted, - ]; + ].filter( + (mode) => + this.appConfig.archiveWorkflowEnabled && + (mode !== ArchViewMode.marked_for_deletion || + this.appConfig.markForDeletionWorkflowEnabled), + ); searchPublicDataEnabled = this.appConfig.searchPublicDataEnabled;