Skip to content

Commit 755f004

Browse files
committed
wip
1 parent b6f6bdf commit 755f004

26 files changed

Lines changed: 765 additions & 616 deletions

roda-ui/roda-wui/src/main/java/config/i18n/client/ClientMessages.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2153,6 +2153,8 @@ SafeHtml representationInformationAssociatedWithDescription(String field, String
21532153

21542154
String showDisposalScheduleTitle();
21552155

2156+
String showDisposalConfirmationTitle();
2157+
21562158
String disposalConfirmationTitle();
21572159

21582160
String disposalConfirmationCreationDate();
@@ -2789,4 +2791,6 @@ SafeHtml representationInformationAssociatedWithDescription(String field, String
27892791
String disposalScheduleSuccessfullyCreated();
27902792

27912793
String disposalScheduleSuccessfullyUpdated();
2794+
2795+
String disposalPolicyOverdueRecordsTitle();
27922796
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package org.roda.wui.client.browse.tabs;
2+
3+
import com.google.gwt.core.client.GWT;
4+
import com.google.gwt.i18n.client.DateTimeFormat;
5+
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
6+
import com.google.gwt.user.client.ui.Widget;
7+
import config.i18n.client.ClientMessages;
8+
import org.roda.core.data.common.RodaConstants;
9+
import org.roda.core.data.v2.disposal.schedule.DisposalActionCode;
10+
import org.roda.core.data.v2.disposal.schedule.RetentionPeriodCalculation;
11+
import org.roda.core.data.v2.index.filter.DateIntervalFilterParameter;
12+
import org.roda.core.data.v2.index.filter.EmptyKeyFilterParameter;
13+
import org.roda.core.data.v2.index.filter.Filter;
14+
import org.roda.core.data.v2.index.filter.SimpleFilterParameter;
15+
import org.roda.core.data.v2.ip.AIPState;
16+
import org.roda.core.data.v2.ip.IndexedAIP;
17+
import org.roda.wui.client.common.actions.DisposalCreateConfirmationDestroyActions;
18+
import org.roda.wui.client.common.actions.DisposalCreateConfirmationReviewActions;
19+
import org.roda.wui.client.common.lists.utils.AsyncTableCellOptions;
20+
import org.roda.wui.client.common.lists.utils.ConfigurableAsyncTableCell;
21+
import org.roda.wui.client.common.lists.utils.ListBuilder;
22+
import org.roda.wui.client.common.search.SearchWrapper;
23+
24+
import java.util.Date;
25+
26+
public class DisposalOverdueRecordsTabs extends Tabs {
27+
28+
private static final DateTimeFormat formatter = DateTimeFormat.getFormat(RodaConstants.SIMPLE_DATE_FORMATTER);
29+
30+
private static final Filter SHOW_RECORDS_TO_REVIEW = new Filter(
31+
new SimpleFilterParameter(RodaConstants.AIP_DISPOSAL_ACTION, DisposalActionCode.REVIEW.name()),
32+
new SimpleFilterParameter(RodaConstants.AIP_STATE, AIPState.ACTIVE.name()),
33+
new DateIntervalFilterParameter(RodaConstants.AIP_OVERDUE_DATE, RodaConstants.AIP_OVERDUE_DATE, null,
34+
formatter.parse(formatter.format(new Date()))),
35+
new SimpleFilterParameter(RodaConstants.AIP_DISPOSAL_HOLD_STATUS, Boolean.FALSE.toString()),
36+
new EmptyKeyFilterParameter(RodaConstants.AIP_DISPOSAL_CONFIRMATION_ID));
37+
38+
private static final Filter SHOW_RECORDS_TO_DESTROY = new Filter(
39+
new SimpleFilterParameter(RodaConstants.AIP_DISPOSAL_ACTION, DisposalActionCode.DESTROY.name()),
40+
new SimpleFilterParameter(RodaConstants.AIP_STATE, AIPState.ACTIVE.name()),
41+
new DateIntervalFilterParameter(RodaConstants.AIP_OVERDUE_DATE, RodaConstants.AIP_OVERDUE_DATE, null,
42+
formatter.parse(formatter.format(new Date()))),
43+
new SimpleFilterParameter(RodaConstants.AIP_DISPOSAL_HOLD_STATUS, Boolean.FALSE.toString()),
44+
new EmptyKeyFilterParameter(RodaConstants.AIP_DISPOSAL_CONFIRMATION_ID));
45+
46+
private static final Filter SHOW_RECORDS_WITH_RETENTION_PERIOD_ERRORS = new Filter(new SimpleFilterParameter(
47+
RodaConstants.AIP_DISPOSAL_RETENTION_PERIOD_CALCULATION, RetentionPeriodCalculation.ERROR.name()));
48+
49+
private static final ClientMessages messages = GWT.create(ClientMessages.class);
50+
51+
public void init() {
52+
53+
ListBuilder<IndexedAIP> overdueRecordsListBuilder = new ListBuilder<>(() -> new ConfigurableAsyncTableCell<>(),
54+
new AsyncTableCellOptions<>(IndexedAIP.class, "DisposalOverdueRecords_aip").withSummary(messages.listOfAIPs())
55+
.withFilter(SHOW_RECORDS_TO_DESTROY).withActionable(DisposalCreateConfirmationDestroyActions.get())
56+
.withJustActive(true).bindOpener());
57+
58+
createAndAddTab(SafeHtmlUtils.fromSafeConstant(messages.disposalConfirmationShowRecordsToDestroy()),
59+
new TabContentBuilder() {
60+
@Override
61+
public Widget buildTabWidget() {
62+
return new SearchWrapper(false).createListAndSearchPanel(overdueRecordsListBuilder);
63+
}
64+
});
65+
66+
ListBuilder<IndexedAIP> overdueRecordsToReviewListBuilder = new ListBuilder<>(
67+
() -> new ConfigurableAsyncTableCell<>(),
68+
new AsyncTableCellOptions<>(IndexedAIP.class, "DisposalOverdueRecords_aip").withSummary(messages.listOfAIPs())
69+
.withFilter(SHOW_RECORDS_TO_REVIEW).withActionable(DisposalCreateConfirmationReviewActions.get())
70+
.withJustActive(true).bindOpener());
71+
72+
createAndAddTab(SafeHtmlUtils.fromSafeConstant(messages.disposalConfirmationShowRecordsToReview()),
73+
new TabContentBuilder() {
74+
@Override
75+
public Widget buildTabWidget() {
76+
return new SearchWrapper(false).createListAndSearchPanel(overdueRecordsToReviewListBuilder);
77+
}
78+
});
79+
80+
ListBuilder<IndexedAIP> recordsWithErrorListBuilder = new ListBuilder<>(() -> new ConfigurableAsyncTableCell<>(),
81+
new AsyncTableCellOptions<>(IndexedAIP.class, "DisposalOverdueRecords_aip").withSummary(messages.listOfAIPs())
82+
.withFilter(SHOW_RECORDS_WITH_RETENTION_PERIOD_ERRORS).withJustActive(true).bindOpener());
83+
84+
createAndAddTab(SafeHtmlUtils.fromSafeConstant(messages.disposalConfirmationShowRecordsRetentionPeriodCalculationError()), new TabContentBuilder() {
85+
@Override
86+
public Widget buildTabWidget() {
87+
return new SearchWrapper(false).createListAndSearchPanel(recordsWithErrorListBuilder);
88+
}
89+
});
90+
91+
}
92+
}

roda-ui/roda-wui/src/main/java/org/roda/wui/client/browse/tabs/DisposalPolicyTabs.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.roda.core.data.v2.disposal.rule.DisposalRule;
88
import org.roda.core.data.v2.disposal.schedule.DisposalSchedule;
99
import org.roda.wui.client.common.actions.DisposalHoldSearchWrapperActions;
10-
import org.roda.wui.client.common.actions.DisposalRuleAction;
1110
import org.roda.wui.client.common.actions.DisposalRuleSearchWrapperActions;
1211
import org.roda.wui.client.common.actions.DisposalScheduleSearchWrapperActions;
1312
import org.roda.wui.client.common.lists.DisposalHoldList;
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* The contents of this file are subject to the license and copyright
3+
* detailed in the LICENSE file at the root of the source
4+
* tree and available online at
5+
*
6+
* https://github.com/keeps/roda
7+
*/
8+
package org.roda.wui.client.common;
9+
10+
import java.util.List;
11+
12+
import org.roda.core.data.v2.disposal.confirmation.DisposalConfirmation;
13+
import org.roda.wui.client.common.actions.DisposalConfirmationToolbarActions;
14+
import org.roda.wui.client.common.actions.model.ActionableObject;
15+
import org.roda.wui.client.common.actions.widgets.ActionableWidgetBuilder;
16+
17+
/**
18+
*
19+
* @author Miguel Guimarães <mguimaraes@keep.pt>
20+
*/
21+
public class DisposalConfirmationActionsToolbar extends BrowseObjectActionsToolbar<DisposalConfirmation> {
22+
public void buildIcon() {
23+
// do nothing
24+
}
25+
26+
public void buildTags() {
27+
// do nothing
28+
}
29+
30+
public void buildActions() {
31+
this.actions.clear();
32+
33+
this.actions.add(new ActionableWidgetBuilder<DisposalConfirmation>(DisposalConfirmationToolbarActions.get())
34+
.withActionCallback(actionCallback).buildGroupedListWithObjects(new ActionableObject<>(object),
35+
List.of(DisposalConfirmationToolbarActions.DisposalConfirmationReportAction.PRINT,
36+
DisposalConfirmationToolbarActions.DisposalConfirmationReportAction.DESTROY,
37+
DisposalConfirmationToolbarActions.DisposalConfirmationReportAction.WITHDRAW),
38+
List.of(DisposalConfirmationToolbarActions.DisposalConfirmationReportAction.PRINT,
39+
DisposalConfirmationToolbarActions.DisposalConfirmationReportAction.WITHDRAW,
40+
DisposalConfirmationToolbarActions.DisposalConfirmationReportAction.DESTROY)));
41+
}
42+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.roda.wui.client.common.actions;
2+
3+
import org.roda.core.data.common.RodaConstants;
4+
import org.roda.core.data.v2.disposal.confirmation.DisposalConfirmation;
5+
6+
import java.util.Arrays;
7+
import java.util.List;
8+
9+
/**
10+
*
11+
* @author Miguel Guimarães <mguimaraes@keep.pt>
12+
*/
13+
public enum DisposalConfirmationAction implements Actionable.Action<DisposalConfirmation> {
14+
NEW(RodaConstants.PERMISSION_METHOD_CREATE_DISPOSAL_CONFIRMATION),
15+
DESTROY(RodaConstants.PERMISSION_METHOD_DESTROY_RECORDS_DISPOSAL_CONFIRMATION),
16+
PERM_DELETE(RodaConstants.PERMISSION_METHOD_PERMANENTLY_DELETE_RECORDS_DISPOSAL_CONFIRMATION),
17+
RESTORE(RodaConstants.PERMISSION_METHOD_RESTORE_RECORDS_DISPOSAL_CONFIRMATION);
18+
19+
private final List<String> methods;
20+
21+
DisposalConfirmationAction(String... methods) {
22+
this.methods = Arrays.asList(methods);
23+
}
24+
25+
@Override
26+
public List<String> getMethods() {
27+
return this.methods;
28+
}
29+
}

roda-ui/roda-wui/src/main/java/org/roda/wui/client/common/actions/DisposalConfirmationActions.java renamed to roda-ui/roda-wui/src/main/java/org/roda/wui/client/common/actions/DisposalConfirmationSearchWrapperActions.java

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,26 @@
77
*/
88
package org.roda.wui.client.common.actions;
99

10-
import java.util.Arrays;
11-
import java.util.HashSet;
12-
import java.util.List;
13-
import java.util.Set;
14-
15-
import org.roda.core.data.common.RodaConstants;
10+
import com.google.gwt.core.client.GWT;
11+
import com.google.gwt.user.client.rpc.AsyncCallback;
12+
import config.i18n.client.ClientMessages;
1613
import org.roda.core.data.v2.disposal.confirmation.DisposalConfirmation;
1714
import org.roda.core.data.v2.disposal.confirmation.DisposalConfirmationState;
1815
import org.roda.core.data.v2.index.select.SelectedItems;
1916
import org.roda.wui.client.common.actions.model.ActionableBundle;
2017
import org.roda.wui.client.common.actions.model.ActionableGroup;
21-
import org.roda.wui.client.disposal.confirmations.CreateDisposalConfirmation;
18+
import org.roda.wui.client.disposal.confirmations.OverdueRecords;
2219
import org.roda.wui.common.client.tools.HistoryUtils;
2320

24-
import com.google.gwt.core.client.GWT;
25-
import com.google.gwt.user.client.rpc.AsyncCallback;
26-
27-
import config.i18n.client.ClientMessages;
21+
import java.util.Arrays;
22+
import java.util.HashSet;
23+
import java.util.List;
24+
import java.util.Set;
2825

2926
/**
3027
* @author Miguel Guimarães <mguimaraes@keep.pt>
3128
*/
32-
public class DisposalConfirmationActions extends AbstractActionable<DisposalConfirmation> {
29+
public class DisposalConfirmationSearchWrapperActions extends AbstractActionable<DisposalConfirmation> {
3330
private static final ClientMessages messages = GWT.create(ClientMessages.class);
3431

3532
private static final Set<Action<DisposalConfirmation>> POSSIBLE_ACTIONS_WITHOUT_OBJECT_SELECTED = new HashSet<>(
@@ -39,15 +36,11 @@ public class DisposalConfirmationActions extends AbstractActionable<DisposalConf
3936
private static final Set<Action<DisposalConfirmation>> POSSIBLE_ACTIONS_FOR_APPROVED = new HashSet<>(
4037
Arrays.asList(DisposalConfirmationAction.PERM_DELETE, DisposalConfirmationAction.RESTORE));
4138

42-
private DisposalConfirmationActions() {
39+
private DisposalConfirmationSearchWrapperActions() {
4340
// Singleton
4441
}
4542

46-
private static class SingletonHelper {
47-
private static final DisposalConfirmationActions INSTANCE = new DisposalConfirmationActions();
48-
}
49-
50-
public static DisposalConfirmationActions getInstance() {
43+
public static DisposalConfirmationSearchWrapperActions getInstance() {
5144
return SingletonHelper.INSTANCE;
5245
}
5346

@@ -132,15 +125,16 @@ public void act(Action<DisposalConfirmation> action, DisposalConfirmation object
132125
// ACTIONS
133126
private void newConfirmation(AsyncCallback<ActionImpact> callback) {
134127
callback.onSuccess(ActionImpact.NONE);
135-
HistoryUtils.newHistory(CreateDisposalConfirmation.RESOLVER);
128+
HistoryUtils.newHistory(OverdueRecords.RESOLVER);
136129
}
137130

138131
@Override
139132
public ActionableBundle<DisposalConfirmation> createActionsBundle() {
140133
ActionableBundle<DisposalConfirmation> confirmationActionableBundle = new ActionableBundle<>();
141134

142135
// management
143-
ActionableGroup<DisposalConfirmation> actionsGroup = new ActionableGroup<>(messages.sidebarDisposalConfirmationTitle());
136+
ActionableGroup<DisposalConfirmation> actionsGroup = new ActionableGroup<>(
137+
messages.sidebarDisposalConfirmationTitle());
144138
actionsGroup.addButton(messages.newDisposalConfirmationButton(), DisposalConfirmationAction.NEW,
145139
ActionImpact.UPDATED, "btn-plus-circle");
146140
actionsGroup.addButton(messages.applyDisposalScheduleButton(), DisposalConfirmationAction.DESTROY,
@@ -159,21 +153,7 @@ public ActionableBundle<DisposalConfirmation> createActionsBundle() {
159153
return confirmationActionableBundle;
160154
}
161155

162-
public enum DisposalConfirmationAction implements Action<DisposalConfirmation> {
163-
NEW(RodaConstants.PERMISSION_METHOD_CREATE_DISPOSAL_CONFIRMATION),
164-
DESTROY(RodaConstants.PERMISSION_METHOD_DESTROY_RECORDS_DISPOSAL_CONFIRMATION),
165-
PERM_DELETE(RodaConstants.PERMISSION_METHOD_PERMANENTLY_DELETE_RECORDS_DISPOSAL_CONFIRMATION),
166-
RESTORE(RodaConstants.PERMISSION_METHOD_RESTORE_RECORDS_DISPOSAL_CONFIRMATION);
167-
168-
private final List<String> methods;
169-
170-
DisposalConfirmationAction(String... methods) {
171-
this.methods = Arrays.asList(methods);
172-
}
173-
174-
@Override
175-
public List<String> getMethods() {
176-
return this.methods;
177-
}
156+
private static class SingletonHelper {
157+
private static final DisposalConfirmationSearchWrapperActions INSTANCE = new DisposalConfirmationSearchWrapperActions();
178158
}
179159
}

0 commit comments

Comments
 (0)