diff --git a/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/FlowItemUtils.java b/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/FlowItemUtils.java index fa0f79e250..5151a175c2 100644 --- a/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/FlowItemUtils.java +++ b/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/FlowItemUtils.java @@ -709,8 +709,6 @@ public class FlowItemUtils // Save our changes bitstreamService.update(context, bitstream); - processAccessFields(context, request, ((Item)bitstreamService.getParentObject(context,bitstream)).getOwningCollection(), bitstream); - result.setContinue(true); result.setOutcome(true); result.setMessage(T_bitstream_updated); diff --git a/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/item/EditBitstreamForm.java b/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/item/EditBitstreamForm.java index a0bab2d5ec..fcfbc9dc11 100644 --- a/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/item/EditBitstreamForm.java +++ b/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/item/EditBitstreamForm.java @@ -149,8 +149,7 @@ public class EditBitstreamForm extends AbstractDSpaceTransformer if(!isAdvancedFormEnabled){ AccessStepUtil asu = new AccessStepUtil(context); // if the item is embargoed default value will be displayed. - asu.addEmbargoDateSimpleForm(bitstream, edit, -1); - asu.addReason(null, edit, -1); + asu.addEmbargoDateDisplayOnly(bitstream, edit); } edit.addItem(T_para1); diff --git a/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/submission/submit/AccessStepUtil.java b/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/submission/submit/AccessStepUtil.java index 7732ddb741..4fcd84cebc 100644 --- a/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/submission/submit/AccessStepUtil.java +++ b/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/submission/submit/AccessStepUtil.java @@ -15,6 +15,7 @@ import org.dspace.authorize.factory.AuthorizeServiceFactory; import org.dspace.authorize.service.AuthorizeService; import org.dspace.authorize.service.ResourcePolicyService; import org.dspace.content.*; +import org.dspace.core.Constants; import org.dspace.core.Context; import org.dspace.app.xmlui.wing.WingException; import org.dspace.app.xmlui.wing.element.*; @@ -66,6 +67,8 @@ public class AccessStepUtil extends AbstractDSpaceTransformer { private static final Message T_label_date_help = message("xmlui.administrative.authorization.AccessStep.label_date_help"); + private static final Message T_label_date_displayonly_help = + message("xmlui.administrative.authorization.AccessStep.label_date_displayonly_help"); public static final int RADIO_OPEN_ACCESS_ITEM_VISIBLE=0; public static final int RADIO_OPEN_ACCESS_ITEM_EMBARGOED=1; @@ -188,31 +191,25 @@ public class AccessStepUtil extends AbstractDSpaceTransformer { } } - public void addEmbargoDateSimpleForm(DSpaceObject dso, List form, int errorFlag) throws SQLException, WingException { + public void addEmbargoDateDisplayOnly(final DSpaceObject dso, final List list) throws SQLException, WingException { + final Text text = list.addItem().addText("embargo"); + text.setLabel(T_item_embargoed); + text.setHelp(T_label_date_displayonly_help); + populateEmbargoDetail(dso, text); + text.setDisabled(true); + } - String date=null; - - if(dso!=null){ - java.util.List policies = authorizeService.findPoliciesByDSOAndType(context, dso, ResourcePolicy.TYPE_CUSTOM); - if(policies.size() > 0){ - ResourcePolicy rp = policies.get(0); - if(rp.getStartDate() != null) - { - date = DateFormatUtils.format(rp.getStartDate(), "yyyy-MM-dd"); - } - globalReason = rp.getRpDescription(); + private void populateEmbargoDetail(final DSpaceObject dso, final Text text) throws SQLException, WingException { + for (final ResourcePolicy readPolicy : authorizeService.getPoliciesActionFilter(context, dso, Constants.READ)) { + if (Group.ANONYMOUS.equals(readPolicy.getGroup().getName()) && readPolicy.getStartDate() != null) { + final String dateString = DateFormatUtils.format(readPolicy.getStartDate(), "yyyy-MM-dd"); + text.setValue(dateString); + globalReason = readPolicy.getRpDescription(); } } -// CheckBox privateCheckbox = form.addItem().addCheckBox("emabrgo_option"); -// privateCheckbox.setLabel(T_item_embargoed); -// if(date!=null){ -// privateCheckbox.addOption(true, CB_EMBARGOED, ""); -// } -// else{ -// privateCheckbox.addOption(false, CB_EMBARGOED, ""); -// } + } - // Date + public void addEmbargoDateSimpleForm(DSpaceObject dso, List form, int errorFlag) throws SQLException, WingException { Text startDate = form.addItem().addText("embargo_until_date"); startDate.setLabel(T_item_embargoed); if (errorFlag == org.dspace.submit.step.AccessStep.STATUS_ERROR_FORMAT_DATE){ @@ -222,8 +219,8 @@ public class AccessStepUtil extends AbstractDSpaceTransformer { startDate.addError(T_error_missing_date); } - if(date!=null){ - startDate.setValue(date); + if (dso != null) { + populateEmbargoDetail(dso, startDate); } startDate.setHelp(T_label_date_help); } diff --git a/dspace-xmlui/src/main/webapp/i18n/messages.xml b/dspace-xmlui/src/main/webapp/i18n/messages.xml index 608d2009ea..b045878f2a 100644 --- a/dspace-xmlui/src/main/webapp/i18n/messages.xml +++ b/dspace-xmlui/src/main/webapp/i18n/messages.xml @@ -785,7 +785,8 @@ End Date Edit Remove - The first day from which access is allowed. Accepted format: yyyy, yyyy-mm, yyyy-mm-dd + The first day from which access is allowed. Accepted format: yyyy, yyyy-mm, yyyy-mm-dd + The first day from which access is allowed. This date cannot be modified on this form. To set an embargo date for a bitstream, go to the Item Status tab, click Authorizations..., create or edit the bitstream's READ policy, and set the Start Date as desired. Name: {0}; action: {1}, group: {2}, start date: {3}, end date: {4} The item will be searchable The item will not be searchable