Skip to content

Commit e7f63c4

Browse files
committed
Apply new layout to disposal policy page (schedule, holds and rules) #3372 #3370
1 parent b0eac0c commit e7f63c4

129 files changed

Lines changed: 5587 additions & 2164 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

roda-common/roda-common-data/src/main/java/org/roda/core/data/common/RodaConstants.java

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
import java.util.ArrayList;
1111
import java.util.Arrays;
1212
import java.util.Collections;
13+
import java.util.Date;
1314
import java.util.List;
1415

16+
import org.roda.core.data.v2.disposal.schedule.DisposalActionCode;
17+
import org.roda.core.data.v2.disposal.schedule.DisposalScheduleState;
18+
import org.roda.core.data.v2.disposal.schedule.RetentionPeriodIntervalCode;
1519
import org.roda.core.data.v2.ip.Permissions.PermissionType;
1620

1721
public final class RodaConstants {
@@ -932,6 +936,9 @@ public enum OrchestratorType {
932936
public static final String INDEX_DIP_FILE = "DIPFile";
933937
public static final String INDEX_REPRESENTATION_INFORMATION = "RepresentationInformation";
934938
public static final String INDEX_DISPOSAL_CONFIRMATION = "DisposalConfirmation";
939+
public static final String INDEX_DISPOSAL_SCHEDULE = "DisposalSchedule";
940+
public static final String INDEX_DISPOSAL_HOLD = "DisposalHold";
941+
public static final String INDEX_DISPOSAL_RULE = "DisposalRule";
935942

936943
/*
937944
* INDEXED CLASSES
@@ -946,7 +953,10 @@ public enum OrchestratorType {
946953
"org.roda.core.data.v2.risks.RiskIncidence", "org.roda.core.data.v2.ri.RepresentationInformation",
947954
"org.roda.core.data.v2.ip.TransferredResource", "org.roda.core.data.v2.user.User",
948955
"org.roda.core.data.v2.user.Group", "org.roda.core.data.v2.user.RODAMember",
949-
"org.roda.core.data.v2.ip.disposal.DisposalConfirmation", "org.roda.core.data.v2.user.RodaPrincipal",
956+
"org.roda.core.data.v2.disposal.hold.DisposalHold",
957+
"org.roda.core.data.v2.disposal.schedule.DisposalSchedule",
958+
"org.roda.core.data.v2.disposal.rule.DisposalRule",
959+
"org.roda.core.data.v2.disposal.confirmation.DisposalConfirmation", "org.roda.core.data.v2.user.RodaPrincipal",
950960
"org.roda.core.data.v2.ip.AIP", "org.roda.core.data.v2.risks.Risk", "org.roda.core.events.pekko.CRDTWrapper",
951961
"org.roda.core.data.v2.ip.DIP", "org.roda.core.data.v2.ip.metadata.DescriptiveMetadata",
952962
"org.roda.core.data.v2.ip.disposal.DisposalConfirmationAIPEntry",
@@ -1307,8 +1317,32 @@ public enum OrchestratorType {
13071317
public static final String DISPOSAL_CONFIRMATION_EXTRA_INFO = "extraInformation";
13081318
public static final String DISPOSAL_CONFIRMATION_STORAGE_SIZE = "size";
13091319

1320+
public static final String DISPOSAL_SCHEDULE_TITLE = "title";
1321+
public static final String DISPOSAL_SCHEDULE_DESCRIPTION = "description";
1322+
public static final String DISPOSAL_SCHEDULE_MANDATE = "mandate";
1323+
public static final String DISPOSAL_SCHEDULE_SCOPE_NOTES = "scopeNotes";
1324+
public static final String DISPOSAL_SCHEDULE_STATE = "state";
1325+
public static final String DISPOSAL_SCHEDULE_ACTION = "action";
1326+
public static final String DISPOSAL_SCHEDULE_RETENTION_PERIOD_INTERVAL_CODE = "retentionPeriodIntervalCode";
1327+
public static final String DISPOSAL_SCHEDULE_RETENTION_PERIOD_DURATION = "retentionPeriodDuration";
1328+
1329+
public static final String DISPOSAL_HOLD_TITLE = "title";
1330+
public static final String DISPOSAL_HOLD_DESCRIPTION = "description";
1331+
public static final String DISPOSAL_HOLD_MANDATE = "mandate";
1332+
public static final String DISPOSAL_HOLD_SCOPE_NOTES = "scopeNotes";
1333+
public static final String DISPOSAL_HOLD_STATE = "state";
1334+
1335+
public static final String DISPOSAL_RULE_ORDER = "order";
1336+
public static final String DISPOSAL_RULE_TITLE = "title";
1337+
public static final String DISPOSAL_RULE_DESCRIPTION = "description";
1338+
public static final String DISPOSAL_RULE_SELECTION_METHOD = "selectionMethod";
1339+
public static final String DISPOSAL_RULE_CONDITION_KEY = "conditionKey";
1340+
public static final String DISPOSAL_RULE_CONDITION_VALUE = "conditionvalue";
1341+
public static final String DISPOSAL_RULE_SCHEDULE_ID = "scheduleId";
1342+
13101343
/* Disposal related parameters */
13111344
public static final String DISPOSAL_HOLD_FILE_EXTENSION = ".json";
1345+
public static final String DISPOSAL_RULE_FILE_EXTENSION = ".json";
13121346

13131347
/* Distributed related parameters */
13141348
public static final String DISTRIBUTED_INSTANCE_FILE_EXTENSION = ".json";
@@ -2169,6 +2203,7 @@ public enum RODA_TYPE {
21692203

21702204
public static final String PERMISSION_METHOD_CREATE_DISPOSAL_RULE = "org.roda.wui.api.v2.controller.DisposalRuleController.createDisposalRule";
21712205
public static final String PERMISSION_METHOD_UPDATE_DISPOSAL_RULE = "org.roda.wui.api.v2.controller.DisposalRuleController.updateDisposalRule";
2206+
public static final String PERMISSION_METHOD_DELETE_DISPOSAL_RULE = "org.roda.wui.api.v2.controller.DisposalRuleController.deleteDisposalRule";
21722207

21732208
public static final String PERMISSION_METHOD_CREATE_DISPOSAL_SCHEDULE = "org.roda.wui.api.v2.controller.DisposalScheduleController.createDisposalSchedule";
21742209
public static final String PERMISSION_METHOD_UPDATE_DISPOSAL_SCHEDULE = "org.roda.wui.api.v2.controller.DisposalScheduleController.updateDisposalSchedule";

roda-common/roda-common-data/src/main/java/org/roda/core/data/v2/common/RODAObjectList.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
public interface RODAObjectList<T extends IsRODAObject> extends Serializable {
1616

17-
public List<T> getObjects();
17+
List<T> getObjects();
1818

19-
public void setObjects(List<T> objects);
19+
void setObjects(List<T> objects);
2020

21-
public void addObject(T object);
21+
void addObject(T object);
2222
}

roda-common/roda-common-data/src/main/java/org/roda/core/data/v2/disposal/hold/DisposalHold.java

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,31 @@
77
*/
88
package org.roda.core.data.v2.disposal.hold;
99

10+
import java.io.Serial;
11+
import java.util.Arrays;
1012
import java.util.Date;
13+
import java.util.HashMap;
14+
import java.util.List;
15+
import java.util.Map;
1116
import java.util.Objects;
1217

1318
import org.roda.core.data.common.RodaConstants;
1419
import org.roda.core.data.v2.IsModelObject;
1520

1621
import com.fasterxml.jackson.annotation.JsonIgnore;
1722
import com.fasterxml.jackson.annotation.JsonInclude;
23+
import org.roda.core.data.v2.index.IsIndexed;
24+
import org.roda.core.data.v2.ip.HasId;
1825

1926
/**
2027
* @author Tiago Fraga <tfraga@keep.pt>
2128
*/
2229

2330
@jakarta.xml.bind.annotation.XmlRootElement(name = RodaConstants.RODA_OBJECT_DISPOSAL_HOLD)
2431
@JsonInclude(JsonInclude.Include.NON_NULL)
25-
public class DisposalHold implements IsModelObject {
32+
public class DisposalHold implements IsIndexed, IsModelObject, HasId {
2633

34+
@Serial
2735
private static final long serialVersionUID = 8291490773422089586L;
2836

2937
private String id;
@@ -57,6 +65,8 @@ public class DisposalHold implements IsModelObject {
5765

5866
private DisposalHoldState state;
5967

68+
private Map<String, Object> fields = new HashMap<>();
69+
6070
public DisposalHold() {
6171
super();
6272
this.state = DisposalHoldState.ACTIVE;
@@ -242,4 +252,38 @@ public String toString() {
242252
+ ", liftedBy='" + liftedBy + '\'' + ", firstTimeUsed=" + firstTimeUsed + ", aipCounter=" + aipCounter
243253
+ ", state=" + state + '}';
244254
}
255+
256+
@JsonIgnore
257+
@Override
258+
public String getUUID() {
259+
return getId();
260+
}
261+
262+
@Override
263+
public List<String> toCsvHeaders() {
264+
return Arrays.asList("id", "title", "description", "mandate", "scopeNotes", "createOn", "createBy", "updatedOn",
265+
"updatedBy", "originatedOn", "originatedBy", "liftedOn", "liftedBy", "firstTimeUsed", "state");
266+
}
267+
268+
@Override
269+
public List<Object> toCsvValues() {
270+
return Arrays.asList(id, title, description, mandate, scopeNotes, createdOn, createdBy, updatedOn, updatedBy,
271+
originatedOn, originatedBy, liftedOn, liftedBy, firstTimeUsed, state);
272+
}
273+
274+
@Override
275+
public List<String> liteFields() {
276+
return List.of();
277+
}
278+
279+
@Override
280+
public Map<String, Object> getFields() {
281+
return this.fields;
282+
}
283+
284+
@Override
285+
public void setFields(Map<String, Object> fields) {
286+
fields.entrySet().stream().filter(p -> p.getValue() != null)
287+
.forEach(e -> this.fields.put(e.getKey(), e.getValue()));
288+
}
245289
}

roda-common/roda-common-data/src/main/java/org/roda/core/data/v2/disposal/hold/DisposalHoldState.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@
1111
* @author Tiago Fraga <tfraga@keep.pt>
1212
*/
1313
public enum DisposalHoldState {
14-
ACTIVE, LIFTED
14+
ACTIVE, LIFTED;
15+
16+
public static DisposalHoldState getDefault() {
17+
return ACTIVE;
18+
}
1519
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.roda.core.data.v2.disposal.rule;
2+
3+
import org.roda.core.data.v2.generics.select.SelectedItemsRequest;
4+
5+
import java.io.Serial;
6+
import java.io.Serializable;
7+
8+
/**
9+
* @author Miguel Guimarães <mguimaraes@keep.pt>
10+
*/
11+
12+
public class ChangeOrderRequest implements Serializable {
13+
@Serial
14+
private static final long serialVersionUID = -1604170151297177958L;
15+
16+
private SelectedItemsRequest items;
17+
private OrderPositions position;
18+
private int newOrder;
19+
20+
public ChangeOrderRequest() {
21+
position = OrderPositions.TOP;
22+
}
23+
24+
public ChangeOrderRequest(SelectedItemsRequest items, OrderPositions position, int newOrder) {
25+
this.items = items;
26+
this.position = position;
27+
this.newOrder = newOrder;
28+
}
29+
30+
public SelectedItemsRequest getItems() {
31+
return items;
32+
}
33+
34+
public void setItems(SelectedItemsRequest items) {
35+
this.items = items;
36+
}
37+
38+
public int getNewOrder() {
39+
return newOrder;
40+
}
41+
42+
public void setNewOrder(int newOrder) {
43+
this.newOrder = newOrder;
44+
}
45+
46+
public OrderPositions getPosition() {
47+
return position;
48+
}
49+
50+
public void setPosition(OrderPositions position) {
51+
this.position = position;
52+
}
53+
}

roda-common/roda-common-data/src/main/java/org/roda/core/data/v2/disposal/rule/ConditionType.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@
1111
* @author Tiago Fraga <tfraga@keep.pt>
1212
*/
1313
public enum ConditionType {
14-
IS_CHILD_OF, METADATA_FIELD
14+
IS_CHILD_OF, METADATA_FIELD;
15+
16+
public static ConditionType getDefault() {
17+
return IS_CHILD_OF;
18+
}
1519
}

roda-common/roda-common-data/src/main/java/org/roda/core/data/v2/disposal/rule/DisposalRule.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,15 @@
88
package org.roda.core.data.v2.disposal.rule;
99

1010
import java.io.Serial;
11+
import java.util.Arrays;
1112
import java.util.Date;
13+
import java.util.List;
14+
import java.util.Map;
1215
import java.util.Objects;
1316

1417
import org.roda.core.data.common.RodaConstants;
1518
import org.roda.core.data.v2.IsModelObject;
19+
import org.roda.core.data.v2.index.IsIndexed;
1620
import org.roda.core.data.v2.ip.HasId;
1721

1822
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -23,7 +27,7 @@
2327
*/
2428
@jakarta.xml.bind.annotation.XmlRootElement(name = RodaConstants.RODA_OBJECT_DISPOSAL_RULE)
2529
@JsonInclude(JsonInclude.Include.NON_NULL)
26-
public class DisposalRule implements IsModelObject, HasId, Comparable<DisposalRule> {
30+
public class DisposalRule implements IsModelObject, IsIndexed, HasId, Comparable<DisposalRule> {
2731

2832
private static final int VERSION = 1;
2933
@Serial
@@ -50,6 +54,8 @@ public class DisposalRule implements IsModelObject, HasId, Comparable<DisposalRu
5054
private Date updatedOn = null;
5155
private String updatedBy = null;
5256

57+
private Map<String, Object> fields;
58+
5359
public DisposalRule() {
5460
super();
5561
}
@@ -201,4 +207,37 @@ public int getClassVersion() {
201207
public int compareTo(DisposalRule otherRule) {
202208
return Integer.compare(this.getOrder(), otherRule.getOrder());
203209
}
210+
211+
@JsonIgnore
212+
@Override
213+
public String getUUID() {
214+
return getId();
215+
}
216+
217+
@Override
218+
public List<String> toCsvHeaders() {
219+
return Arrays.asList("id", "title", "description", "type", "conditionKey", "conditionValue", "disposalScheduleId",
220+
"disposalScheduleName", "order", "createdOn", "createdBy", "updatedOn", "updatedBy");
221+
}
222+
223+
@Override
224+
public List<Object> toCsvValues() {
225+
return Arrays.asList(id, title, description, type, conditionKey, conditionValue, disposalScheduleId,
226+
disposalScheduleName, order, createdOn, createdBy, updatedOn, updatedBy);
227+
}
228+
229+
@Override
230+
public List<String> liteFields() {
231+
return List.of();
232+
}
233+
234+
@Override
235+
public Map<String, Object> getFields() {
236+
return this.fields;
237+
}
238+
239+
@Override
240+
public void setFields(Map<String, Object> fields) {
241+
this.fields = fields;
242+
}
204243
}

roda-common/roda-common-data/src/main/java/org/roda/core/data/v2/disposal/rule/DisposalRules.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88
package org.roda.core.data.v2.disposal.rule;
99

10+
import java.io.Serial;
1011
import java.util.ArrayList;
1112
import java.util.Collections;
1213
import java.util.List;
@@ -23,6 +24,8 @@
2324
@JsonInclude(JsonInclude.Include.NON_NULL)
2425
public class DisposalRules implements RODAObjectList<DisposalRule> {
2526

27+
@Serial
28+
private static final long serialVersionUID = 5273072223178069428L;
2629
private List<DisposalRule> disposalRuleList;
2730

2831
public DisposalRules() {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.roda.core.data.v2.disposal.rule;
2+
3+
/**
4+
* @author Miguel Guimarães <mguimaraes@keep.pt>
5+
*/
6+
7+
public enum OrderPositions {
8+
TOP, BOTTOM, POSITION
9+
}

0 commit comments

Comments
 (0)