diff --git a/dspace-jspui/src/main/java/org/dspace/app/webui/submit/step/JSPStartSubmissionLookupStep.java b/dspace-jspui/src/main/java/org/dspace/app/webui/submit/step/JSPStartSubmissionLookupStep.java index d244a405ef..4c151357d7 100644 --- a/dspace-jspui/src/main/java/org/dspace/app/webui/submit/step/JSPStartSubmissionLookupStep.java +++ b/dspace-jspui/src/main/java/org/dspace/app/webui/submit/step/JSPStartSubmissionLookupStep.java @@ -79,6 +79,8 @@ public class JSPStartSubmissionLookupStep extends JSPStep private CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService(); + private final String DEFAULT_COLLECTION_ID = "-1"; + /** * Do any pre-processing to determine which JSP (if any) is used to generate * the UI for this step. This method should include the gathering and @@ -124,13 +126,19 @@ public class JSPStartSubmissionLookupStep extends JSPStep * With no parameters, this servlet prepares for display of the Select * Collection JSP. */ - UUID collection_id = UIUtil.getUUIDParameter(request, "collection"); - UUID collectionID = UIUtil.getUUIDParameter(request, "collectionid"); + UUID collection_id = null; + if(!DEFAULT_COLLECTION_ID.equals(request.getParameter("collection"))) { + collection_id = UIUtil.getUUIDParameter(request, "collection"); + } + + if(collection_id == null && !DEFAULT_COLLECTION_ID.equals(request.getParameter("collectionid"))) { + collection_id = UIUtil.getUUIDParameter(request, "collectionid"); + } Collection col = null; - if (collectionID != null) + if (collection_id != null) { - col = collectionService.find(context, collectionID); + col = collectionService.find(context, collection_id); } // if we already have a valid collection, then we can forward directly @@ -138,7 +146,7 @@ public class JSPStartSubmissionLookupStep extends JSPStep if (col != null) { log.debug("Select Collection page skipped, since a Collection ID was already found. Collection ID=" - + collectionID); + + collection_id); } else { @@ -162,8 +170,14 @@ public class JSPStartSubmissionLookupStep extends JSPStep // save collections to request for JSP request.setAttribute("collections", collections); - request.setAttribute("collection_id", collection_id); - request.setAttribute("collectionID", collectionID); + + if(collection_id!=null) { + request.setAttribute("collection_id", collection_id); + } + else { + request.setAttribute("collection_id", DEFAULT_COLLECTION_ID); + } + request.setAttribute("collectionID", collection_id); Map> identifiers2providers = slService .getProvidersIdentifiersMap(); diff --git a/dspace-jspui/src/main/webapp/submit/start-lookup-submission.jsp b/dspace-jspui/src/main/webapp/submit/start-lookup-submission.jsp index e292d85a7a..69eba0628a 100644 --- a/dspace-jspui/src/main/webapp/submit/start-lookup-submission.jsp +++ b/dspace-jspui/src/main/webapp/submit/start-lookup-submission.jsp @@ -23,8 +23,7 @@ <%@ page import="org.dspace.content.Collection" %> <%@ page import="java.lang.Boolean" %> -<%@ page import="java.util.List" %> -<%@ page import="java.util.Map" %> +<%@ page import="java.util.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> @@ -42,8 +41,18 @@ (List) request.getAttribute("collections"); //get collection id from the collection home - String collection_id = (String) request.getAttribute("collection_id"); - + Object collection_id_object = request.getAttribute("collection_id"); + + String collection_id; + + if(collection_id_object instanceof UUID){ + UUID uuid = (UUID) collection_id_object; + collection_id = uuid.toString(); + } + else { + collection_id = (String) collection_id_object; + } + //check if we need to display the "no collection selected" error Boolean noCollection = (Boolean) request.getAttribute("no.collection"); Boolean nosuuid = (Boolean) request.getAttribute("nouuid");