diff --git a/dspace-api/src/main/resources/Messages.properties b/dspace-api/src/main/resources/Messages.properties
index ae842cb4b7..c86dff9b00 100644
--- a/dspace-api/src/main/resources/Messages.properties
+++ b/dspace-api/src/main/resources/Messages.properties
@@ -1235,6 +1235,7 @@ jsp.tools.itemmap-info.button.continue = Continue
jsp.tools.itemmap-info.heading = Item Map Info
jsp.tools.itemmap-info.msg.added = Add item {0}
jsp.tools.itemmap-info.msg.none-selected = No items selected, none added.
+jsp.tools.itemmap-info.msg.none-removed = No items selected, none removed.
# In the following 2 messages the only parameter is an item ID
jsp.tools.itemmap-info.msg.remove = Remove item {0}
jsp.tools.itemmap-info.title = Item Map Info
diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/admin/ItemMapServlet.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/admin/ItemMapServlet.java
index 0b59550b66..2f3f50ef20 100644
--- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/admin/ItemMapServlet.java
+++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/admin/ItemMapServlet.java
@@ -198,72 +198,6 @@ public class ItemMapServlet extends DSpaceServlet
// show the page
JSPManager.showJSP(request, response, jspPage);
}
- /*
- * else if( action.equals("add") ) { int itemID =
- * UIUtil.getIntParameter(request, "item_id"); String handle =
- * (String)request.getParameter("handle"); boolean error = true; Item
- * itemToAdd = null;
- *
- * if( itemID > 0 ) { itemToAdd = Item.find(context, itemID);
- *
- * if( itemToAdd != null ) error = false; } else if(handle != null &&
- * !handle.equals("")) { DSpaceObject
- * dso=HandleManager.resolveToObject(context, handle);
- *
- * if(dso != null && dso.getType() == Constants.ITEM) { itemToAdd =
- * (Item)dso; error = false; } }
- *
- * //FIXME: error handling! if( !error ) { String myTitle =
- * itemToAdd.getDC("title",null,Item.ANY)[0].value; String ownerName =
- * itemToAdd.getOwningCollection().getMetadata("name");
- * // hook up item, but first, does it belong already? TableRowIterator
- * tri = DatabaseManager.query(context, "collection2item", "SELECT
- * collection2item.* FROM collection2item WHERE " + "collection_id=" +
- * myCollection.getID() + " AND item_id=" + itemToAdd.getID());
- *
- * if(tri.hasNext()) { request.setAttribute("message", "Item is already
- * part of that collection!"); } else { // Create mapping
- * myCollection.addItem( itemToAdd );
- * // set up a nice 'done' message request.setAttribute("message",
- * "Item added successfully:
" + myTitle + "
From Collection:
- *
" + ownerName);
- * }
- *
- * request.setAttribute("collection", myCollection);
- * // show this page when we're done jspPage = "itemmap-info.jsp";
- * // show the page JSPManager.showJSP(request, response, jspPage); }
- * else { // Display an error } } else if( action.equals("Add Entire
- * Collection") ) { int targetID = UIUtil.getIntParameter(request,
- * "collection2import");
- *
- * Collection targetCollection = Collection.find(context, targetID);
- * // get all items from that collection and add them if not // already
- * added
- * // get all items to be added ItemIterator i =
- * targetCollection.getItems(); Map toAdd = new HashMap(); String
- * message = "";
- *
- * while( i.hasNext() ) { Item myItem = i.next();
- *
- * toAdd.put(new Integer(myItem.getID()), myItem); }
- * // now see what we already have, removing dups from the 'toAdd' list
- * i = myCollection.getItems();
- *
- * while( i.hasNext() ) { Item myItem = i.next(); Integer myKey = new
- * Integer(myItem.getID());
- * // remove works even if key isn't present toAdd.remove(myKey); }
- * // what's left in toAdd should be added Iterator addKeys =
- * toAdd.keySet().iterator();
- *
- * while( addKeys.hasNext() ) { Item myItem =
- * (Item)toAdd.get(addKeys.next()); myCollection.addItem(myItem);
- * message += "
Added item ID: " + myItem.getID(); }
- *
- * request.setAttribute("message", message);
- * request.setAttribute("collection", myCollection);
- * // show this page when we're done jspPage = "itemmap-info.jsp";
- * // show the page JSPManager.showJSP(request, response, jspPage); }
- */
else if (action.equals("Remove"))
{
// get item IDs to remove
@@ -271,29 +205,36 @@ public class ItemMapServlet extends DSpaceServlet
String message = "remove";
LinkedList removedItems = new LinkedList();
- for (int j = 0; j < itemIDs.length; j++)
- {
- int i = Integer.parseInt(itemIDs[j]);
- removedItems.add(itemIDs[j]);
+ if (itemIDs == null)
+ {
+ message = "none-removed";
+ }
+ else
+ {
+ for (int j = 0; j < itemIDs.length; j++)
+ {
+ int i = Integer.parseInt(itemIDs[j]);
+ removedItems.add(itemIDs[j]);
- Item myItem = Item.find(context, i);
+ Item myItem = Item.find(context, i);
- // make sure item doesn't belong to this collection
- if (!myItem.isOwningCollection(myCollection))
- {
- myCollection.removeItem(myItem);
- try
+ // make sure item doesn't belong to this collection
+ if (!myItem.isOwningCollection(myCollection))
{
- IndexBrowse ib = new IndexBrowse(context);
- ib.itemChanged(myItem);
- }
- catch (BrowseException e)
- {
- log.error("caught exception: ", e);
- throw new ServletException(e);
+ myCollection.removeItem(myItem);
+ try
+ {
+ IndexBrowse ib = new IndexBrowse(context);
+ ib.itemChanged(myItem);
+ }
+ catch (BrowseException e)
+ {
+ log.error("caught exception: ", e);
+ throw new ServletException(e);
+ }
}
}
- }
+ }
request.setAttribute("message", message);
request.setAttribute("collection", myCollection);
diff --git a/dspace-jspui/dspace-jspui-webapp/src/main/webapp/tools/itemmap-info.jsp b/dspace-jspui/dspace-jspui-webapp/src/main/webapp/tools/itemmap-info.jsp
index 03a6fc17ba..9dae314474 100644
--- a/dspace-jspui/dspace-jspui-webapp/src/main/webapp/tools/itemmap-info.jsp
+++ b/dspace-jspui/dspace-jspui-webapp/src/main/webapp/tools/itemmap-info.jsp
@@ -63,7 +63,7 @@
<%
Collection collection = (Collection)request.getAttribute("collection");
- // supported values: "none-selected", "added", "remove"
+ // supported values: "none-selected", "none-removed", "added", "remove"
String message = (String)request.getAttribute("message");
LinkedList processedItems = (LinkedList)request.getAttribute("processedItems");
@@ -76,6 +76,8 @@
<% if (message.equals("none-selected")) { %>