[DS-2701-service-api-jspui-submission] Submission jsp migration to service api (Additional jsp migration for worfklow + display of items, collections)

This commit is contained in:
KevinVdV
2015-09-14 12:21:17 +02:00
parent f318254999
commit 944f69e9e6
11 changed files with 80 additions and 74 deletions

View File

@@ -1084,10 +1084,6 @@ public class GoogleMetadata
result = AuthorizeServiceFactory.getInstance().getAuthorizeService().authorizeActionBoolean(context, bitstream, Constants.READ, true);
} catch (SQLException e) {
log.error("Cannot determine whether bitstream is public, assuming it isn't. bitstream_id=" + bitstream.getID(), e);
} finally {
if (context != null) {
context.abort();
}
}
return result;
}

View File

@@ -761,9 +761,15 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
authorizeService.removeAllPoliciesByDSOAndType(context, item, ResourcePolicy.TYPE_SUBMISSION);
authorizeService.removeAllPoliciesByDSOAndType(context, item, ResourcePolicy.TYPE_WORKFLOW);
try {
//We just removed all policies so only an admin will be able to add additional policies, ignore the authorizations for now.
context.turnOffAuthorisationSystem();
// add default policies only if not already in place
List<ResourcePolicy> policiesToAdd = filterPoliciesToAdd(context, defaultCollectionPolicies, item);
authorizeService.addPolicies(context, policiesToAdd, item);
} finally {
context.restoreAuthSystemState();
}
}
@Override

View File

@@ -80,8 +80,8 @@ public class EPersonDAOImpl extends AbstractHibernateDSODAO<EPerson> implements
@Override
public List<EPerson> findAll(Context context, MetadataField metadataSortField, String sortField) throws SQLException {
String queryString = "SELECT person FROM EPerson as person ";
Query query = getSearchQuery(context, queryString, null, null, Collections.singletonList(metadataSortField), sortField);
String queryString = "SELECT " + EPerson.class.getSimpleName().toLowerCase() + " FROM EPerson as " + EPerson.class.getSimpleName().toLowerCase();
Query query = getSearchQuery(context, queryString, null, ListUtils.EMPTY_LIST, Collections.singletonList(metadataSortField), sortField);
return list(query);
}

View File

@@ -198,7 +198,7 @@ public class ItemTag extends TagSupport
private transient Item item;
/** Collections this item appears in */
private transient Collection[] collections;
private transient List<Collection> collections;
/** The style to use - "default" or "full" */
private String style;
@@ -349,9 +349,9 @@ public class ItemTag extends TagSupport
*
* @return the collections
*/
public Collection[] getCollections()
public List<Collection> getCollections()
{
return (Collection[]) ArrayUtils.clone(collections);
return collections;
}
/**
@@ -360,9 +360,9 @@ public class ItemTag extends TagSupport
* @param collectionsIn
* the collections
*/
public void setCollections(Collection[] collectionsIn)
public void setCollections(List<Collection> collectionsIn)
{
collections = (Collection[]) ArrayUtils.clone(collectionsIn);
collections = collectionsIn;
}
/**
@@ -770,14 +770,14 @@ public class ItemTag extends TagSupport
(style.equals("full")?"colspan=\"2\"":"")
+">");
for (int i = 0; i < collections.length; i++)
for (int i = 0; i < collections.size(); i++)
{
out.print("<a href=\"");
out.print(request.getContextPath());
out.print("/handle/");
out.print(collections[i].getHandle());
out.print(collections.get(i).getHandle());
out.print("\">");
out.print(collections[i].getName());
out.print(collections.get(i).getName());
out.print("</a><br/>");
}
@@ -852,7 +852,7 @@ public class ItemTag extends TagSupport
for (int i = 0; (i < bits.size()) && !html; i++)
{
Bitstream b = bits.get(i).getBitstream();
if (b.getID().equals(bunds.get(0).getPrimaryBitstream().getID()))
if (b.equals(bunds.get(0).getPrimaryBitstream()))
{
html = b.getFormat(context).getMIMEType().equals(
"text/html");

View File

@@ -37,11 +37,9 @@
<%@ page import="org.dspace.browse.ItemCounter"%>
<%@ page import="org.dspace.content.*"%>
<%@ page import="org.dspace.core.ConfigurationManager"%>
<%@ page import="org.dspace.core.Context" %>
<%@ page import="org.dspace.core.Utils" %>
<%@ page import="org.dspace.eperson.Group" %>
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
<%@ page import="java.net.URLEncoder" %>
<%
// Retrieve attributes
@@ -67,25 +65,26 @@
// get the browse indices
BrowseIndex[] bis = BrowseIndex.getBrowseIndices();
CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService();
// Put the metadata values into guaranteed non-null variables
String name = collection.getMetadata("name");
String intro = collection.getMetadata("introductory_text");
String name = collectionService.getMetadata(collection, "name");
String intro = collectionService.getMetadata(collection, "introductory_text");
if (intro == null)
{
intro = "";
}
String copyright = collection.getMetadata("copyright_text");
String copyright = collectionService.getMetadata(collection, "copyright_text");
if (copyright == null)
{
copyright = "";
}
String sidebar = collection.getMetadata("side_bar_text");
String sidebar = collectionService.getMetadata(collection, "side_bar_text");
if(sidebar == null)
{
sidebar = "";
}
String communityName = community.getMetadata("name");
String communityName = collectionService.getMetadata(collection, "name");
String communityLink = "/handle/" + community.getHandle();
Bitstream logo = collection.getLogo();
@@ -104,6 +103,9 @@
%>
<%@page import="org.dspace.app.webui.servlet.MyDSpaceServlet"%>
<%@ page import="org.dspace.content.factory.ContentServiceFactory" %>
<%@ page import="org.dspace.content.service.CollectionService" %>
<%@ page import="org.dspace.content.service.ItemService" %>
<dspace:layout locbar="commLink" title="<%= name %>" feedData="<%= feedData %>">
<div class="well">
<div class="row"><div class="col-md-8"><h2><%= name %>
@@ -369,19 +371,20 @@
%>
<h3><fmt:message key="jsp.collection-home.recentsub"/></h3>
<%
Item[] items = rs.getRecentSubmissions();
for (int i = 0; i < items.length; i++)
ItemService itemService = ContentServiceFactory.getInstance().getItemService();
List<Item> items = rs.getRecentSubmissions();
for (int i = 0; i < items.size(); i++)
{
Metadatum[] dcv = items[i].getMetadata("dc", "title", null, Item.ANY);
List<MetadataValue> dcv = itemService.getMetadata(items.get(i), "dc", "title", null, Item.ANY);
String displayTitle = "Untitled";
if (dcv != null)
{
if (dcv.length > 0)
if (dcv.size() > 0)
{
displayTitle = Utils.addEntities(dcv[0].value);
displayTitle = Utils.addEntities(dcv.get(0).getValue());
}
}
%><p class="recentItem"><a href="<%= request.getContextPath() %>/handle/<%= items[i].getHandle() %>"><%= displayTitle %></a></p><%
%><p class="recentItem"><a href="<%= request.getContextPath() %>/handle/<%= items.get(i).getHandle() %>"><%= displayTitle %></a></p><%
}
%>
<p>&nbsp;</p>

View File

@@ -51,7 +51,7 @@
Boolean suggest = (Boolean)request.getAttribute("suggest.enable");
boolean suggestLink = (suggest == null ? false : suggest.booleanValue());
Item item = (Item) request.getAttribute("item");
Collection[] collections = (Collection[]) request.getAttribute("collections");
List<Collection> collections = (List<Collection>) request.getAttribute("collections");
Boolean admin_b = (Boolean)request.getAttribute("admin_button");
boolean admin_button = (admin_b == null ? false : admin_b.booleanValue());

View File

@@ -47,22 +47,26 @@
<%@ page import="org.dspace.eperson.EPerson, org.dspace.core.ConfigurationManager" %>
<%@ page import="org.dspace.eperson.Group" %>
<%@ page import="org.dspace.core.Utils" %>
<%@ page import="java.util.List" %>
<%@ page import="org.dspace.eperson.service.EPersonService" %>
<%@ page import="org.dspace.eperson.factory.EPersonServiceFactory" %>
<%
EPerson eperson = (EPerson) request.getAttribute("eperson");
Group [] groupMemberships = null;
List<Group> groupMemberships = null;
if(request.getAttribute("group.memberships") != null)
{
groupMemberships = (Group []) request.getAttribute("group.memberships");
groupMemberships = (List<Group>) request.getAttribute("group.memberships");
}
EPersonService ePersonService = EPersonServiceFactory.getInstance().getEPersonService();
String email = eperson.getEmail();
String firstName = eperson.getFirstName();
String lastName = eperson.getLastName();
String phone = eperson.getMetadata("phone");
String phone = ePersonService.getMetadata(eperson, "phone");
String netid = eperson.getNetid();
String language = eperson.getMetadata("language");
String language = ePersonService.getMetadata(eperson, "language");
boolean emailExists = (request.getAttribute("email_exists") != null);
boolean ldap_enabled = ConfigurationManager.getBooleanProperty("authentication-ldap", "enable");
@@ -190,7 +194,7 @@
</form>
<%
if((groupMemberships != null) && (groupMemberships.length>0))
if((groupMemberships != null) && (groupMemberships.size()>0))
{
%>
<br/>
@@ -200,10 +204,10 @@
<div class="row">
<ul>
<% for(int i=0; i<groupMemberships.length; i++)
<% for(int i=0; i<groupMemberships.size(); i++)
{
String myLink = groupMemberships[i].getName();
String args = "submit_edit&amp;group_id="+groupMemberships[i].getID();
String myLink = groupMemberships.get(i).getName();
String args = "submit_edit&amp;group_id="+ groupMemberships.get(i).getID();
myLink = "<a href=\""
+request.getContextPath()

View File

@@ -32,18 +32,14 @@
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
<%@ page import="org.dspace.app.webui.servlet.MyDSpaceServlet" %>
<%@ page import="org.dspace.content.Collection" %>
<%@ page import="org.dspace.content.DCDate" %>
<%@ page import="org.dspace.content.Item" %>
<%@ page import="org.dspace.content.SupervisedItemServiceImpl" %>
<%@ page import="org.dspace.content.WorkspaceItem" %>
<%@ page import="org.dspace.core.Utils" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.eperson.Group" %>
<%@ page import="org.dspace.workflowbasic.BasicWorkflowItem" %>
<%@ page import="org.dspace.workflowbasic.BasicWorkflowServiceImpl" %>
<%@ page import="java.util.List" %>
<%@page import="org.dspace.app.itemimport.BatchUpload"%>
<%@ page import="org.dspace.workflowbasic.service.BasicWorkflowService" %>
<%
EPerson user = (EPerson) request.getAttribute("mydspace.user");
@@ -133,9 +129,9 @@
{
//There was once some code...
case BasicWorkflowServiceImpl.WFSTATE_STEP1: %><fmt:message key="jsp.mydspace.main.sub1"/><% break;
case BasicWorkflowServiceImpl.WFSTATE_STEP2: %><fmt:message key="jsp.mydspace.main.sub2"/><% break;
case BasicWorkflowServiceImpl.WFSTATE_STEP3: %><fmt:message key="jsp.mydspace.main.sub3"/><% break;
case BasicWorkflowService.WFSTATE_STEP1: %><fmt:message key="jsp.mydspace.main.sub1"/><% break;
case BasicWorkflowService.WFSTATE_STEP2: %><fmt:message key="jsp.mydspace.main.sub2"/><% break;
case BasicWorkflowService.WFSTATE_STEP3: %><fmt:message key="jsp.mydspace.main.sub3"/><% break;
}
%>
</td>
@@ -199,9 +195,9 @@
<%
switch (pooled.get(i).getState())
{
case BasicWorkflowServiceImpl.WFSTATE_STEP1POOL: %><fmt:message key="jsp.mydspace.main.sub1"/><% break;
case BasicWorkflowServiceImpl.WFSTATE_STEP2POOL: %><fmt:message key="jsp.mydspace.main.sub2"/><% break;
case BasicWorkflowServiceImpl.WFSTATE_STEP3POOL: %><fmt:message key="jsp.mydspace.main.sub3"/><% break;
case BasicWorkflowService.WFSTATE_STEP1POOL: %><fmt:message key="jsp.mydspace.main.sub1"/><% break;
case BasicWorkflowService.WFSTATE_STEP2POOL: %><fmt:message key="jsp.mydspace.main.sub2"/><% break;
case BasicWorkflowService.WFSTATE_STEP3POOL: %><fmt:message key="jsp.mydspace.main.sub3"/><% break;
}
%>
</td>

View File

@@ -26,7 +26,7 @@
<%@ page import="org.dspace.content.Item" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.workflowbasic.BasicWorkflowItem" %>
<%@ page import="org.dspace.workflowbasic.BasicWorkflowServiceImpl" %>
<%@ page import="org.dspace.workflowbasic.service.BasicWorkflowService" %>
<%
BasicWorkflowItem workflowItem =
@@ -46,7 +46,7 @@
<h1><fmt:message key="jsp.mydspace.perform-task.title"/></h1>
<%
if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP1)
if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP1)
{
%>
<p><fmt:message key="jsp.mydspace.perform-task.text1">
@@ -54,7 +54,7 @@
</fmt:message></p>
<%
}
else if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP2)
else if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP2)
{
%>
<p><fmt:message key="jsp.mydspace.perform-task.text3">
@@ -62,7 +62,7 @@
</fmt:message></p>
<%
}
else if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP3)
else if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP3)
{
%>
<p><fmt:message key="jsp.mydspace.perform-task.text4">
@@ -81,8 +81,8 @@
<input type="hidden" name="step" value="<%= MyDSpaceServlet.PERFORM_TASK_PAGE %>"/>
<%
if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP1 ||
workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP2)
if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP1 ||
workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP2)
{
%>
<div class="input-group">
@@ -116,8 +116,8 @@
<%
}
if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP1 ||
workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP2)
if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP1 ||
workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP2)
{
%>
<div class="input-group">
@@ -136,8 +136,8 @@
<%
}
if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP2 ||
workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP3)
if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP2 ||
workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP3)
{
%>
<div class="input-group">

View File

@@ -25,7 +25,7 @@
<%@ page import="org.dspace.content.Item" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.workflowbasic.BasicWorkflowItem" %>
<%@ page import="org.dspace.workflowbasic.BasicWorkflowServiceImpl" %>
<%@ page import="org.dspace.workflowbasic.service.BasicWorkflowService" %>
<%
BasicWorkflowItem workflowItem =
@@ -45,7 +45,7 @@
<h1><fmt:message key="jsp.mydspace.preview-task.title"/></h1>
<%
if (workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP1POOL)
if (workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP1POOL)
{
%>
<p><fmt:message key="jsp.mydspace.preview-task.text1">
@@ -53,7 +53,7 @@
</fmt:message></p>
<%
}
else if(workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP2POOL)
else if(workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP2POOL)
{
%>
<p><fmt:message key="jsp.mydspace.preview-task.text3">
@@ -61,7 +61,7 @@
</fmt:message></p>
<%
}
else if(workflowItem.getState() == BasicWorkflowServiceImpl.WFSTATE_STEP3POOL)
else if(workflowItem.getState() == BasicWorkflowService.WFSTATE_STEP3POOL)
{
%>
<p><fmt:message key="jsp.mydspace.preview-task.text4">

View File

@@ -31,12 +31,13 @@
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.core.Utils" %>
<%@ page import="java.util.List" %>
<%
int PAGESIZE = 50;
EPerson[] epeople =
(EPerson[]) request.getAttribute("epeople");
List<EPerson> epeople =
(List<EPerson>) request.getAttribute("epeople");
int sortBy = ((Integer)request.getAttribute("sortby" )).intValue();
int first = ((Integer)request.getAttribute("first")).intValue();
boolean multiple = (request.getAttribute("multiple") != null);
@@ -54,10 +55,10 @@
{
last = first + PAGESIZE;
}
if (last >= epeople.length) last = epeople.length - 1;
if (last >= epeople.size()) last = epeople.size() - 1;
// Index of first eperson on last page
int jumpEnd = ((epeople.length - 1) / PAGESIZE) * PAGESIZE;
int jumpEnd = ((epeople.size() - 1) / PAGESIZE) * PAGESIZE;
// Now work out values for next/prev page buttons
int jumpFiveBack;
@@ -91,7 +92,7 @@
{
jumpOneForward = first + PAGESIZE;
}
if (jumpOneForward > epeople.length) jumpOneForward = jumpEnd;
if (jumpOneForward > epeople.size()) jumpOneForward = jumpEnd;
int jumpFiveForward;
if (search != null && !search.trim().equals(""))
@@ -102,7 +103,7 @@
{
jumpFiveForward = first + PAGESIZE * 5;
}
if (jumpFiveForward > epeople.length) jumpFiveForward = jumpEnd;
if (jumpFiveForward > epeople.size()) jumpFiveForward = jumpEnd;
// What's the link?
String sortByParam = "lastname";
@@ -167,7 +168,7 @@ function clearEPeople()
<h3><fmt:message key="jsp.tools.eperson-list.heading">
<fmt:param><%= ((search != null && !search.equals(""))?offset:first) + 1 %></fmt:param>
<fmt:param><%= last + 1 %></fmt:param>
<fmt:param><%= epeople.length %></fmt:param>
<fmt:param><%= epeople.size() %></fmt:param>
</fmt:message></h3>
<%
@@ -281,7 +282,7 @@ function clearEPeople()
for (int i = (search != null && !search.equals(""))?offset:first; i <= last; i++)
{
EPerson e = epeople[i];
EPerson e = epeople.get(i);
// Make sure no quotes in full name will mess up our Javascript
String fullname = StringEscapeUtils.escapeXml(StringEscapeUtils.escapeJavaScript(e.getFullName()));
String email = StringEscapeUtils.escapeXml(StringEscapeUtils.escapeJavaScript(e.getEmail()));
@@ -290,7 +291,7 @@ function clearEPeople()
<td headers="t1">
<input class="btn btn-success" type="button" value="<%
if (multiple) { %><fmt:message key="jsp.tools.general.add"/><% }
else { %><fmt:message key="jsp.tools.general.select"/><% } %>" onclick="javascript:<%= clearList %>addEPerson(<%= e.getID() %>, '<%= email %>', '<%= fullname %>');<%= closeWindow %>"/></td>
else { %><fmt:message key="jsp.tools.general.select"/><% } %>" onclick="javascript:<%= clearList %>addEPerson('<%= e.getID() %>', '<%= email %>', '<%= fullname %>');<%= closeWindow %>"/></td>
<td headers="t2"><%= e.getID() %></td>
<td headers="t3"><%= (e.getEmail() == null ? "" : Utils.addEntities(e.getEmail())) %></td>
<td headers="t4">