[
http://jira.dspace.org/jira/browse/DS-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jose Blanco updated DS-587:
---------------------------
Attachment: tombstone.jsp
embargo.jsp
confirm-withdraw-item.jsp
I've included here the changes I made to make this tombstone work at our
instance in the jspui webapp..
These are the files that were changed to make this work:
M jsp/WEB-INF/dspace-tags.tld
The '>' indicates what was added.
<tag>
<name>item</name>
<tagclass>org.dspace.app.webui.jsptag.ItemTag</tagclass>
<info>
Tag for displaying an item. "item" must always be an
org.dspace.content.Item. "style" should be "default" or "full", or can
be omitted to use "default". "collections" should be the array of
collections the item is in, worked out beforehand to avoid the chance
of an error occurring during display. If collections is null, the
collections the item is in aren't listed.
</info>
<attribute>
<name>item</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>style</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>collections</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
> <attribute>
> <name>tombstone</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>
</tag>
M jsp/local/tombstone.jsp
This file was changed completely it looks more like display-itme.jsp. So I have
included it here in its
entirity.
? jsp/local/embargo.jsp
This is a new file to display when an item is in embargo, rather than just
withdrawn.
M src/org/dspace/app/webui/jsptag/ItemTag.java - all of these changes took
place in
listBitstream routine. Two new routines where added, containing the tombstone
status,
they are - getTombstone, and setTombstone. Because I have made so many
customizations to
this file I'm sending the snippets that pertain to this functionality. The line
numbers will not make sense, but hopefully the comments can help in
understanding where the
code should go.
Index: ItemTag.java
===================================================================
RCS file:
/l1/dspace/cvsroot/dspace/src/org/dspace/app/webui/jsptag/ItemTag.java,v
retrieving revision 1.10
diff -r1.10 ItemTag.java
150a151,153
> /** The style to use - "default" or "full" */
> private boolean tombstone;
>
209a213,222
> public boolean getTombstone()
> {
> return tombstone;
> }
>
> public void setTombstone(boolean tombstoneIn)
> {
> tombstone = tombstoneIn;
> }
>
277a291,292
> tombstone = false; //this was added in the release routine
>
622a638,651
> if ( tombstone )
> {
> DCValue[] values = item.getDC("description", "provenance",
> Item.ANY);
> String latestProvenance = null;
> if ( (values.length - 2) >= 0 )
> {
> latestProvenance = values[values.length -2].value;
> }
> else
> {
> latestProvenance = "Provenance not available";
> }
> out.println("<table cellspacing=\"1\" cellpadding=\"1\"
> width=\"100%\" class=\"itemBundleTable\"><tr><th class=\"standard\">" +
> latestProvenance + "</th></tr></table>");
> }
661,672c690,710
< out
< .print("</td><td class=\"standard\"><a
target=\"_blank\" href=\"");
< out.print(request.getContextPath());
< out.print("/html/");
< out.print(handle + "/");
< out
< .print(UIUtil.encodeBitstreamName(primaryBitstream
< .getName(), Constants.DEFAULT_ENCODING));
< out.print("\">"
< + LocaleSupport.getLocalizedMessage(pageContext,
< "org.dspace.app.webui.jsptag.ItemTag.view")
< + "</a></td></tr>");
---
>
> if ( tombstone )
> {
> out.print("</td><td class=\"standard\">"
> + "file is not available"
> + "</td></tr>");
> }
> else
> {
> out.print("</td><td class=\"standard\"><a target=\"_blank\"
> href=\"");
> out.print(request.getContextPath());
> out.print("/html/");
> out.print(handle + "/");
> out.print(UIUtil.encodeBitstreamName(primaryBitstream
> .getName(),
> Constants.DEFAULT_ENCODING));
> out.print("\">"
> + LocaleSupport.getLocalizedMessage(pageContext,
> "org.dspace.app.webui.jsptag.ItemTag.view")
> + "</a></td></tr>");
> }
>
755,757c793,801
< out
< .print(bsLink
< + LocaleSupport
---
> if ( tombstone )
> {
> out.print("file is not available"
> + "</a></td></tr>");
> }
> else
> {
> out.print(bsLink
> + LocaleSupport
760,761c804,806
<
"org.dspace.app.webui.jsptag.ItemTag.view")
< + "</a></td></tr>");
---
>
> "org.dspace.app.webui.jsptag.ItemTag.view"));
> }
>
M src/org/dspace/app/webui/servlet/HandleServlet.java - all these changes take
place
in the routine displayItem. IT determines if the items is an embargoed item,
and if
it is it displays an embargo message, if tombstone don't care about auth, this
was the
case before because the tombstone page was displayed 1st before the auth code
was reached.
cvs diff HandleServlet.java
Index: HandleServlet.java
===================================================================
RCS file:
/l1/dspace/cvsroot/dspace/src/org/dspace/app/webui/servlet/HandleServlet.java,v
retrieving revision 1.9
diff -r1.9 HandleServlet.java
0a1
>
53a55
> import org.dspace.app.webui.util.Restrict;
258,264c260,271
< // Tombstone?
< if (item.isWithdrawn())
< {
< JSPManager.showJSP(request, response, "/tombstone.jsp");
<
< return;
< }
---
> Item[] embargoItems = Restrict.getRestricted ( context );
> int item_id = item.getID();
> for (int i = 0; i < embargoItems.length; i++)
> {
> if ( item_id == embargoItems[i].getID() )
> {
> // This item is in embargo, not withdrawn
> JSPManager.showJSP(request, response, "/embargo.jsp");
> return;
> }
> }
>
266,267c273,279
< // Ensure the user has authorisation
< AuthorizeManager.authorizeAction(context, item, Constants.READ);
---
> //For withdrawn items don't care about auth, since just
> //showing the metadata.
> if (!item.isWithdrawn())
> {
> // Ensure the user has authorisation
> AuthorizeManager.authorizeAction(context, item, Constants.READ);
> }
358a371,378
>
> // Tombstone?
> if (item.isWithdrawn())
> {
> JSPManager.showJSP(request, response, "/tombstone.jsp");
> return;
> }
>
Changes to tools/confirm-withdraw-item.jsp where numerous, so I'm including
the entire file.
> add the capability to indicate a withdraw reason to an item ( tombstone )
> -------------------------------------------------------------------------
>
> Key: DS-587
> URL: http://jira.dspace.org/jira/browse/DS-587
> Project: DSpace 1.x
> Issue Type: New Feature
> Components: JSPUI
> Affects Versions: 1.6.0
> Environment: This is a change to the base functionality of the jspui.
> Reporter: Jose Blanco
> Priority: Minor
> Attachments: confirm-withdraw-item.jsp, embargo.jsp, tombstone.jsp
>
> Original Estimate: 0 minutes
> Remaining Estimate: 0 minutes
>
> I have already made the changes to our instance of dspace. Here is an
> explanation of what the tombstone functionality works at our instance.
> When an item is withdrawn the user is presented with these options for
> the reason of withdraw ( these reasons live in the file
> tools/confirm-withdraw-item.jsp ):
> Removed from view by legal order.
> Removed from view by the University of Michigan.
> Removed from view at request of the author.
> The user makes his selection and the item is withdrawn. When the item is
> accessed the reason for the withdraw is
> displayed in the box containing the bitstreams.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.dspace.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel