mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 01:54:22 +00:00
Restore preview of response email / cleanup / layout adjustments for bootstrap
This commit is contained in:
@@ -1715,7 +1715,17 @@ jsp.version.notice.workflow_version_head = Notice
|
||||
jsp.version.notice.workflow_version_help = A more recent version of this item is in the Workflow.
|
||||
|
||||
itemRequest.all = All files
|
||||
|
||||
itemRequest.response.subject.approve = Request copy of document
|
||||
itemRequest.response.body.approve = Dear {0},\n\
|
||||
In response to your request I have the pleasure to send you in attachment a copy of the file(s), concerning the document: "{2}" ({1}), which I am author (or co-author) of.\n\n\
|
||||
Best regards,\n\
|
||||
{3} <{4}>
|
||||
|
||||
itemRequest.response.subject.reject = Request copy of document
|
||||
itemRequest.response.body.reject = Dear {0},\n\
|
||||
In response to your request I regret to inform you that it''s not possible to send you a copy of the file(s) you have requested, concerning the document: "{2}" ({1}), which I am author (or co-author) of.\n\n\
|
||||
Best regards,\n\
|
||||
{3} <{4}>
|
||||
jsp.request.item.request-form.info2 = Request a document copy: {0}
|
||||
jsp.request.item.request-form.problem = You must fill all the missing fields.
|
||||
jsp.request.item.request-form.reqname = Requester name:
|
||||
@@ -1733,18 +1743,21 @@ jsp.request.item.request-information.note = Accordingly with your answer it will
|
||||
jsp.request.item.request-information.yes = Send a copy
|
||||
jsp.request.item.request-information.no = Don’t send a copy
|
||||
jsp.request.item.request-information.title = Request a document copy
|
||||
jsp.request.item.request-letter.info1 = <h1>Subject: Copy of the requested document </h1><br><p>This is the text that will be sent to the requester along with the file(s).</p>
|
||||
jsp.request.item.request-letter.info2 = <h1>Subject: Copy of the requested document </h1><br><p>This is the text that will be sent to the requester. </p>
|
||||
jsp.request.item.request-letter.accept.heading = Accept the request
|
||||
jsp.request.item.request-letter.accept.info = This is the email that will be sent to the requester along with the file(s).
|
||||
jsp.request.item.request-letter.reject.heading = Reject the request
|
||||
jsp.request.item.request-letter.reject.info = This is the email that will be sent to the requester.
|
||||
jsp.request.item.request-letter.subject = Subject:
|
||||
jsp.request.item.request-letter.message = Message:
|
||||
jsp.request.item.request-letter.title = Copy of the requested document
|
||||
jsp.request.item.request-letter.next = Send
|
||||
jsp.request.item.request-letter.back = Back
|
||||
jsp.request.item.return-item = Return to the item
|
||||
jsp.request.item.response-send.info1 = Your answer was sent successfully!
|
||||
jsp.request.item.response-send.info2 = Your answer was sent successfully to the e-mail indicated by the requester.<br><br>Thank you.
|
||||
jsp.request.item.request-send.return-item = Return to the item
|
||||
jsp.request.item.response-send.title = Request a document copy
|
||||
jsp.request.item.request-send.info1 = Your request was sent successfully!
|
||||
jsp.request.item.request-send.info2 = Your request was sent successfully to the author(s).<br><br>Thank you.
|
||||
jsp.request.item.request-send.close = Close.
|
||||
jsp.request.item.request-send.title = Request a document copy
|
||||
jsp.request.item.request-free-acess.title = Your answer was sent successfully!
|
||||
jsp.request.item.request-free-acess.info1 = Your answer was sent successfully to the e-mail indicated by the requester. Thank you.
|
||||
|
@@ -41,6 +41,7 @@ package org.dspace.app.webui.servlet;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.mail.MessagingException;
|
||||
@@ -51,7 +52,6 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.dspace.app.webui.util.JSPManager;
|
||||
import org.dspace.app.webui.util.ReqEmail;
|
||||
import org.dspace.app.webui.util.RequestItemManager;
|
||||
import org.dspace.app.webui.util.UIUtil;
|
||||
import org.dspace.authorize.AuthorizeException;
|
||||
@@ -344,67 +344,27 @@ public class RequestItemServlet extends DSpaceServlet
|
||||
DCValue[] titleDC = item.getDC("title", null, Item.ANY);
|
||||
String title = titleDC.length > 0 ? titleDC[0].value : I18nUtil
|
||||
.getMessage("jsp.general.untitled", context);
|
||||
|
||||
String message = request.getParameter("message");
|
||||
|
||||
|
||||
EPerson submiter = item.getSubmitter();
|
||||
Email email;
|
||||
if (yes) {
|
||||
email = Email.getEmail(I18nUtil.getEmailFilename(
|
||||
context.getCurrentLocale(), "request_item.aprove"));
|
||||
} else {
|
||||
email = Email.getEmail(I18nUtil.getEmailFilename(
|
||||
context.getCurrentLocale(), "request_item.reject"));
|
||||
}
|
||||
|
||||
email.addRecipient(requestItem.getStringColumn("request_email"));
|
||||
|
||||
email.addArgument(requestItem.getStringColumn("request_name"));
|
||||
email.addArgument("");
|
||||
email.addArgument("");
|
||||
email.addArgument(HandleManager.getCanonicalForm(item.getHandle())); // User
|
||||
// agent
|
||||
email.addArgument(title); // request item title
|
||||
email.addArgument(message); // message
|
||||
email.addArgument(""); // # token link
|
||||
email.addArgument(submiter.getFullName()); // # submmiter name
|
||||
email.addArgument(submiter.getEmail()); // # submmiter email
|
||||
|
||||
if (yes)
|
||||
{
|
||||
if (requestItem.getBooleanColumn("allfiles")) {
|
||||
Bundle[] bundles = item.getBundles("ORIGINAL");
|
||||
for (int i = 0; i < bundles.length; i++) {
|
||||
Bitstream[] bitstreams = bundles[i].getBitstreams();
|
||||
for (int k = 0; k < bitstreams.length; k++) {
|
||||
if (!bitstreams[k].getFormat().isInternal()
|
||||
/* && RequestItemManager.isRestricted(context, bitstreams[k])*/) {
|
||||
email.addAttachment(BitstreamStorageManager
|
||||
.retrieve(context, bitstreams[k].getID()),
|
||||
bitstreams[k].getName(), bitstreams[k]
|
||||
.getFormat().getMIMEType());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Bitstream bit = Bitstream.find(context,
|
||||
requestItem.getIntColumn("bitstream_id"));
|
||||
email.addAttachment(
|
||||
BitstreamStorageManager.retrieve(context,
|
||||
requestItem.getIntColumn("bitstream_id")),
|
||||
bit.getName(), bit.getFormat().getMIMEType());
|
||||
}
|
||||
}
|
||||
email.send();
|
||||
requestItem.setColumn("decision_date", new Date());
|
||||
requestItem.setColumn("accept_request", yes);
|
||||
DatabaseManager.update(context, requestItem);
|
||||
|
||||
Object[] args = new String[]{
|
||||
requestItem.getStringColumn("request_name"),
|
||||
HandleManager.getCanonicalForm(item.getHandle()), // User
|
||||
title, // request item title
|
||||
submiter.getFullName(), // # submmiter name
|
||||
submiter.getEmail() // # submmiter email
|
||||
};
|
||||
|
||||
String subject = I18nUtil.getMessage("itemRequest.response.subject."
|
||||
+ (yes ? "approve" : "reject"), context);
|
||||
String message = MessageFormat.format(I18nUtil.getMessage("itemRequest.response.body."
|
||||
+ (yes ? "approve" : "reject"), context), args);
|
||||
|
||||
// page
|
||||
request.setAttribute("response", requestItem
|
||||
.getBooleanColumn("accept_request") ? "yes" : "no");
|
||||
// request.setAttribute("subject", email.getSubject());
|
||||
// request.setAttribute("message", email.getMessage());
|
||||
request.setAttribute("response", yes);
|
||||
request.setAttribute("subject", subject);
|
||||
request.setAttribute("message", message);
|
||||
JSPManager.showJSP(request, response,
|
||||
"/requestItem/request-letter.jsp");
|
||||
} else {
|
||||
@@ -437,41 +397,51 @@ public class RequestItemServlet extends DSpaceServlet
|
||||
// Token
|
||||
String subject = request.getParameter("subject");
|
||||
String message = request.getParameter("message");
|
||||
boolean accept = UIUtil.getBoolParameter(request, "accept_request");
|
||||
try
|
||||
{
|
||||
Item item = Item.find(context, requestItem.getIntColumn("item_id"));
|
||||
ReqEmail email = RequestItemManager.getEmail(subject, message);
|
||||
email.setField(email.FIELD_TO,requestItem.getStringColumn("request_email"));
|
||||
email.setField(email.FIELD_FROM,ConfigurationManager.getProperty("mail.from.address"));
|
||||
email.setField(email.FIELD_HOST,ConfigurationManager.getProperty("mail.server"));
|
||||
email.setField(email.FIELD_SUBJECT, I18nUtil.getMessage("jsp.request.item.request-information.title"));
|
||||
|
||||
// add attach
|
||||
if(requestItem.getBooleanColumn("accept_request"))
|
||||
{
|
||||
if (requestItem.getBooleanColumn("allfiles"))
|
||||
{
|
||||
Bundle[] bundles = item.getBundles("ORIGINAL");
|
||||
for (int i = 0; i < bundles.length; i++)
|
||||
{
|
||||
Bitstream[] bitstreams = bundles[i].getBitstreams();
|
||||
for (int k = 0; k < bitstreams.length; k++)
|
||||
{
|
||||
if (!bitstreams[k].getFormat().isInternal() && RequestItemManager.isRestricted(context, bitstreams[k]))
|
||||
{
|
||||
email.addAttachment(BitstreamStorageManager.retrieve(context, bitstreams[k].getID())
|
||||
, bitstreams[k].getName(), bitstreams[k].getFormat().getMIMEType());
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Bitstream bit = Bitstream.find(context,requestItem.getIntColumn("bitstream_id"));
|
||||
email.addAttachment(BitstreamStorageManager.retrieve(context, requestItem.getIntColumn("bitstream_id"))
|
||||
, bit.getName(), bit.getFormat().getMIMEType());
|
||||
}
|
||||
}
|
||||
email.sendMessage();
|
||||
Email email = new Email();
|
||||
email.setSubject(subject);
|
||||
email.setContent("{0}");
|
||||
email.addRecipient(requestItem.getStringColumn("request_email"));
|
||||
email.addArgument(message);
|
||||
|
||||
// add attach
|
||||
if (accept) {
|
||||
if (requestItem.getBooleanColumn("allfiles")) {
|
||||
Bundle[] bundles = item.getBundles("ORIGINAL");
|
||||
for (int i = 0; i < bundles.length; i++) {
|
||||
Bitstream[] bitstreams = bundles[i]
|
||||
.getBitstreams();
|
||||
for (int k = 0; k < bitstreams.length; k++) {
|
||||
if (!bitstreams[k].getFormat().isInternal()
|
||||
&& RequestItemManager.isRestricted(
|
||||
context, bitstreams[k])) {
|
||||
email.addAttachment(
|
||||
BitstreamStorageManager
|
||||
.retrieve(
|
||||
context,
|
||||
bitstreams[k]
|
||||
.getID()),
|
||||
bitstreams[k].getName(),
|
||||
bitstreams[k].getFormat()
|
||||
.getMIMEType());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Bitstream bit = Bitstream.find(context,
|
||||
requestItem.getIntColumn("bitstream_id"));
|
||||
email.addAttachment(BitstreamStorageManager
|
||||
.retrieve(context, requestItem
|
||||
.getIntColumn("bitstream_id")), bit
|
||||
.getName(), bit.getFormat().getMIMEType());
|
||||
}
|
||||
}
|
||||
email.send();
|
||||
|
||||
requestItem.setColumn("accept_request",accept);
|
||||
requestItem.setColumn("decision_date",new Date());
|
||||
DatabaseManager.update(context, requestItem);
|
||||
|
||||
@@ -480,7 +450,7 @@ public class RequestItemServlet extends DSpaceServlet
|
||||
"token=" + token));
|
||||
|
||||
JSPManager.showJSP(request, response,
|
||||
"/requestItem/request-free-acess.jsp");
|
||||
"/requestItem/request-free-access.jsp");
|
||||
}
|
||||
catch (MessagingException me)
|
||||
{
|
||||
@@ -489,15 +459,15 @@ public class RequestItemServlet extends DSpaceServlet
|
||||
""), me);
|
||||
JSPManager.showInternalError(request, response);
|
||||
}
|
||||
}else
|
||||
JSPManager.showInvalidIDError(request, response, null, -1);
|
||||
}else{
|
||||
processToken(context, request, response);
|
||||
}
|
||||
} else
|
||||
JSPManager.showInvalidIDError(request, response, null, -1);
|
||||
} else {
|
||||
processToken(context, request, response);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* receive aprovation and generate a letter
|
||||
* receive approvation and generate a letter
|
||||
* get all request data by token
|
||||
* send email to request user
|
||||
*/
|
||||
|
@@ -1,18 +0,0 @@
|
||||
package org.dspace.app.webui.util;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.log4j.LogManager;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
public class KeepMessageFormat {
|
||||
private static Logger log = LogManager.getLogger(KeepMessageFormat.class);
|
||||
public static String format (String message, Object[] args) {
|
||||
for (int i=0;i<args.length;i++) {
|
||||
String replacement = MessageFormat.format("{0}", args[i]);
|
||||
message = message.replaceAll(Pattern.quote("{"+i+"}"), replacement);
|
||||
}
|
||||
return message;
|
||||
}
|
||||
}
|
@@ -1,349 +0,0 @@
|
||||
/*
|
||||
* ReqEmail.java
|
||||
*
|
||||
* Created on 27 de Marco de 2006, 14:56 by Arnaldo Dantas
|
||||
*
|
||||
* This class serve as a util class for mail options
|
||||
* Use this class to define mail properties.
|
||||
*
|
||||
* use the function to set the fileds you want and then call sendMessage
|
||||
* function.
|
||||
*/
|
||||
|
||||
package org.dspace.app.webui.util;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.StringTokenizer;
|
||||
import javax.activation.DataHandler;
|
||||
import javax.activation.DataSource;
|
||||
import javax.mail.Message;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.Multipart;
|
||||
import javax.mail.Session;
|
||||
import javax.mail.Transport;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.MimeBodyPart;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import javax.mail.internet.MimeMultipart;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Arnaldo Dantas
|
||||
*/
|
||||
|
||||
|
||||
public class ReqEmail {
|
||||
|
||||
//fields for message
|
||||
private Multipart g_multiPart=new MimeMultipart(); //"Container" for diffrent message parts
|
||||
|
||||
/** The arguments to fill out */
|
||||
private List arguments;
|
||||
|
||||
/* message formated */
|
||||
private boolean formated;
|
||||
|
||||
//fields for addresses
|
||||
private String g_host ="localhost"; //mail server
|
||||
private String g_message =null; //the body message
|
||||
private String g_subject =null; //the body message
|
||||
private InternetAddress[] g_from =null; //from adress
|
||||
private InternetAddress[] g_to =null; //array for To adresses
|
||||
private InternetAddress[] g_cc =null; //array for CC adresses
|
||||
private InternetAddress[] g_bcc =null; //array for BCC adresses
|
||||
//delimeter between adresses
|
||||
private static String ADDRESS_DELIMETERS = " ,;";
|
||||
|
||||
/** mail host server field identifier*/
|
||||
public static final int FIELD_HOST =1000;
|
||||
/** from address field identifier */
|
||||
public static final int FIELD_FROM =1001;
|
||||
/** TO address field identifier */
|
||||
public static final int FIELD_TO =1002;
|
||||
/** CC address field identifier */
|
||||
public static final int FIELD_CC =1003;
|
||||
/** BCC address field identifier */
|
||||
public static final int FIELD_BCC =1004;
|
||||
/** MEssage field identifier */
|
||||
public static final int FIELD_MESSAGE =1005;
|
||||
/** Subject field identifier */
|
||||
public static final int FIELD_SUBJECT =1006;
|
||||
/** DELIMETER field identifier */
|
||||
public static final int FIELD_DELIMETER =1007;
|
||||
|
||||
|
||||
public ReqEmail()
|
||||
{
|
||||
arguments = new ArrayList();
|
||||
g_host = "localhost";
|
||||
g_message = null;
|
||||
g_subject = null;
|
||||
g_from = null;
|
||||
g_to = null;
|
||||
g_cc = null;
|
||||
g_bcc = null;
|
||||
formated = false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set field
|
||||
|
||||
* @param p_fields field in message
|
||||
* @param p_text string which conatins values
|
||||
*/
|
||||
public void setField(int p_fields , String p_text){
|
||||
|
||||
try{
|
||||
switch(p_fields){
|
||||
|
||||
case FIELD_HOST:
|
||||
g_host = p_text;
|
||||
break;
|
||||
|
||||
case FIELD_MESSAGE:
|
||||
g_message = p_text;
|
||||
break;
|
||||
|
||||
case FIELD_FROM:
|
||||
g_from = convertToAddress(p_text);
|
||||
break;
|
||||
|
||||
case FIELD_SUBJECT:
|
||||
g_subject = p_text;
|
||||
break;
|
||||
|
||||
case FIELD_TO:
|
||||
g_to = convertToAddress(p_text);
|
||||
break;
|
||||
|
||||
case FIELD_CC:
|
||||
g_cc = convertToAddress(p_text);
|
||||
break;
|
||||
|
||||
case FIELD_BCC:
|
||||
g_bcc = convertToAddress(p_text);
|
||||
break;
|
||||
|
||||
case FIELD_DELIMETER:
|
||||
ADDRESS_DELIMETERS = p_text;
|
||||
break;
|
||||
}
|
||||
}catch(Exception e){
|
||||
System.out.println("Exception while trying to set field "+p_fields);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill out the next argument in the template
|
||||
*
|
||||
* @param arg
|
||||
* the value for the next argument
|
||||
*/
|
||||
public void addArgument(Object arg)
|
||||
{
|
||||
arguments.add(arg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the mail message for givem Arguments
|
||||
*
|
||||
**/
|
||||
public boolean formatMessage ()
|
||||
{
|
||||
boolean format = false;
|
||||
if (!formated && g_message != null)
|
||||
{
|
||||
Object[] args = arguments.toArray();
|
||||
g_message = KeepMessageFormat.format(g_message, args);
|
||||
formated = format = true;
|
||||
}
|
||||
return format;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get field by its identifier
|
||||
*
|
||||
* @param p_identifier identifier of field which we need
|
||||
* @return field which we asked for
|
||||
*/
|
||||
public InternetAddress[] getAddresses(int p_identifier){
|
||||
|
||||
switch(p_identifier){
|
||||
|
||||
case FIELD_TO:
|
||||
return g_to;
|
||||
|
||||
case FIELD_CC:
|
||||
return g_cc;
|
||||
|
||||
case FIELD_BCC:
|
||||
return g_bcc;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get field
|
||||
* @return mail server host
|
||||
*/
|
||||
public String getHost(){
|
||||
return g_host;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get message
|
||||
* @return the body message
|
||||
*/
|
||||
public String getMessage(){
|
||||
return g_message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Subject of message
|
||||
* @return the body message
|
||||
*/
|
||||
public String getSubject(){
|
||||
return g_subject;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets a new Delimeter between addresses
|
||||
* Default is ","
|
||||
*
|
||||
* @param p_del new delimeter
|
||||
*/
|
||||
public void setDelimeter(String p_del){
|
||||
ADDRESS_DELIMETERS = p_del;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert string to InternetAddress[].
|
||||
* the function gets a string of addresses seperated by delimeter
|
||||
* and parse the addresses from it
|
||||
*
|
||||
* @param p_string string with new data
|
||||
* @return array
|
||||
*/
|
||||
public InternetAddress[] convertToAddress(String p_string){
|
||||
StringTokenizer l_strToken=null;
|
||||
InternetAddress[] l_reply=null;
|
||||
|
||||
l_strToken = new StringTokenizer(p_string , ADDRESS_DELIMETERS , false);
|
||||
l_reply = new InternetAddress[l_strToken.countTokens()];
|
||||
|
||||
int ind=0;
|
||||
try{
|
||||
while(l_strToken.hasMoreElements())
|
||||
l_reply[ind++] = new InternetAddress(l_strToken.nextToken());
|
||||
|
||||
return l_reply;
|
||||
}catch(Exception e){
|
||||
System.out.println("Exception while trying to generate adresses "+e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
// ATTACHMENTS SECTION //
|
||||
//////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* add file attachment to the message
|
||||
*
|
||||
* @param p_fileName file name to attach to message
|
||||
*/
|
||||
public void addAttachment(InputStream inputStream, String name, String contentType){
|
||||
//create attachment
|
||||
try{
|
||||
MimeBodyPart mbp = new MimeBodyPart();
|
||||
DataSource ds = new InputStreamDataSource(name, contentType, inputStream);
|
||||
mbp.setDataHandler(new DataHandler(ds));
|
||||
mbp.setFileName(name);
|
||||
g_multiPart.addBodyPart(mbp);
|
||||
|
||||
}catch(Exception e){
|
||||
System.out.println("Exception in: addAttachment");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set the body text of this message
|
||||
*
|
||||
*
|
||||
*/
|
||||
private void setBodyText(){
|
||||
//create attachment
|
||||
try{
|
||||
MimeBodyPart mbp = new MimeBodyPart();
|
||||
mbp.addHeader("charset","UTF-8");
|
||||
mbp.setText(g_message,"UTF-8");
|
||||
g_multiPart.addBodyPart(mbp);
|
||||
|
||||
}catch(Exception e){
|
||||
System.out.println("Exception inset body text");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
/**
|
||||
* This function will send an e-mail message
|
||||
*/
|
||||
public void sendMessage() throws MessagingException
|
||||
{
|
||||
//do some check before mailing:
|
||||
if (g_host == null){
|
||||
System.out.println("Please set a mail server first");
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_to == null){
|
||||
System.out.println("Field 'TO' was not filled");
|
||||
return;
|
||||
}
|
||||
|
||||
Properties l_props = System.getProperties();
|
||||
Session l_session;
|
||||
Message l_message;
|
||||
|
||||
//set Session & msg
|
||||
l_props.put("mail.smtp.host" , getHost() );
|
||||
l_session=Session.getDefaultInstance( l_props , null);
|
||||
l_message = new MimeMessage(l_session);
|
||||
|
||||
//g_from=convertToAddress(FROM_FIELD);
|
||||
//add addresses fields to the message
|
||||
if (g_from != null)
|
||||
l_message.addFrom(g_from);
|
||||
|
||||
if (g_to != null)
|
||||
l_message.addRecipients(Message.RecipientType.TO , g_to);
|
||||
|
||||
if (g_cc != null)
|
||||
l_message.addRecipients(Message.RecipientType.CC , g_cc);
|
||||
|
||||
if (g_bcc != null)
|
||||
l_message.addRecipients(Message.RecipientType.BCC , g_bcc);
|
||||
|
||||
if (g_message != null)
|
||||
setBodyText();
|
||||
|
||||
if (g_subject != null)
|
||||
l_message.setSubject(g_subject);
|
||||
|
||||
l_message.setContent( g_multiPart);
|
||||
//l_message.setContent(g_message , "text/plain");
|
||||
Date now = new Date();
|
||||
l_message.setSentDate(now);
|
||||
Transport.send(l_message);
|
||||
|
||||
}
|
||||
}
|
@@ -7,15 +7,14 @@
|
||||
|
||||
package org.dspace.app.webui.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
import java.io.File;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.dspace.app.webui.servlet.RequestItemServlet;
|
||||
import org.dspace.authorize.AuthorizeManager;
|
||||
import org.dspace.authorize.ResourcePolicy;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.core.ConfigurationManager;
|
||||
import org.dspace.core.Constants;
|
||||
@@ -23,7 +22,6 @@ import org.dspace.core.Context;
|
||||
import org.dspace.core.Utils;
|
||||
import org.dspace.storage.rdbms.DatabaseManager;
|
||||
import org.dspace.storage.rdbms.TableRow;
|
||||
import org.dspace.storage.rdbms.TableRowIterator;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -117,7 +115,7 @@ public class RequestItemManager {
|
||||
, int itemID, String reqEmail, String reqName, boolean allfiles)
|
||||
throws SQLException
|
||||
{
|
||||
String base = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||
String base = ConfigurationManager.getProperty("dspace.url");
|
||||
|
||||
String specialLink = (new StringBuffer()).append(base).append(
|
||||
base.endsWith("/") ? "" : "/").append(
|
||||
@@ -129,88 +127,17 @@ public class RequestItemManager {
|
||||
return specialLink;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get email by template.
|
||||
*
|
||||
* @param template
|
||||
* The template email
|
||||
*
|
||||
* @exception SQLExeption
|
||||
*
|
||||
*/
|
||||
public static ReqEmail getEmail(String template) throws IOException
|
||||
public static boolean isRestricted(Context context, DSpaceObject o) throws SQLException
|
||||
{
|
||||
String subject = "";
|
||||
StringBuffer contentBuffer = new StringBuffer();
|
||||
|
||||
// Read in template
|
||||
BufferedReader reader = null;
|
||||
try
|
||||
{
|
||||
reader = new BufferedReader(new FileReader(
|
||||
ConfigurationManager.getProperty("dspace.dir") +
|
||||
File.separator + "config" + File.separator + "emails"
|
||||
+ File.separator + template));
|
||||
|
||||
boolean more = true;
|
||||
while (more)
|
||||
{
|
||||
String line = reader.readLine();
|
||||
|
||||
if (line == null)
|
||||
{
|
||||
more = false;
|
||||
} else if (line.toLowerCase().startsWith("subject:"))
|
||||
{
|
||||
// Extract the first subject line - everything to the right
|
||||
// of the colon, trimmed of whitespace
|
||||
subject = line.substring(8).trim();
|
||||
} else if (!line.startsWith("#"))
|
||||
{
|
||||
// Add non-comment lines to the content
|
||||
contentBuffer.append(line);
|
||||
contentBuffer.append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (reader != null)
|
||||
{
|
||||
reader.close();
|
||||
}
|
||||
}
|
||||
return getEmail(subject, contentBuffer.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get email.
|
||||
*
|
||||
* @param subject
|
||||
* The subject of email
|
||||
* @param contentText
|
||||
* The text of email
|
||||
*
|
||||
* @exception SQLExeption
|
||||
*
|
||||
*/
|
||||
public static ReqEmail getEmail(String subject, String contentText) throws IOException
|
||||
{
|
||||
ReqEmail email = new ReqEmail();
|
||||
email.setField(email.FIELD_MESSAGE, contentText);
|
||||
email.setField(email.FIELD_SUBJECT, subject);
|
||||
return email;
|
||||
}
|
||||
|
||||
public static boolean isRestricted(Context context, DSpaceObject o) throws SQLException
|
||||
{
|
||||
TableRowIterator tri = DatabaseManager.query(context,
|
||||
"SELECT * FROM resourcepolicy WHERE " + "resource_type_id="
|
||||
+ o.getType() + " AND " + "resource_id=" + o.getID()
|
||||
+ " AND " + "action_id=" + Constants.READ
|
||||
+ " AND epersongroup_id = '0';");
|
||||
if(tri.hasNext())
|
||||
return false;
|
||||
List<ResourcePolicy> policies = AuthorizeManager
|
||||
.getPoliciesActionFilter(context, o, Constants.READ);
|
||||
for (ResourcePolicy rp : policies)
|
||||
{
|
||||
if (rp.isDateValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -68,39 +68,28 @@
|
||||
title = "";
|
||||
%>
|
||||
|
||||
<dspace:layout locbar="off" navbar="off" titlekey="jsp.request.item.request-free-acess.title" >
|
||||
<dspace:layout locbar="off" navbar="default" titlekey="jsp.request.item.request-free-acess.title" >
|
||||
|
||||
<br/>
|
||||
<p><fmt:message key="jsp.request.item.request-free-acess.info1"/>
|
||||
<a class="style1" href="" onClick="window.close();"><fmt:message key="jsp.request.item.request-free-acess.close"/></a>
|
||||
</p>
|
||||
<p class="alert alert-success"><fmt:message key="jsp.request.item.request-free-acess.info1"/></p>
|
||||
|
||||
<p><b><fmt:message key="jsp.request.item.request-free-acess.info2" /></b></p>
|
||||
|
||||
<p><b><fmt:message key="jsp.request.item.request-free-acess.info2">
|
||||
<fmt:param><a href="<%=request.getContextPath()%>/handle/<%=handle %>"><%=title %></a></fmt:param>
|
||||
</fmt:message>
|
||||
</b></p>
|
||||
|
||||
<form name="form1" action="<%= request.getContextPath() %>/request-item" method="POST">
|
||||
<input type="HIDDEN" name="token" value='<%= token %>'>
|
||||
<input type="HIDDEN" name="step" value='<%=RequestItemServlet.RESUME_FREEACESS %>'>
|
||||
<center>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="submitFormLabel"><fmt:message key="jsp.request.item.request-free-acess.name"/></td>
|
||||
<td><input type="TEXT" name="name" size="50" value=""></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="submitFormLabel"><fmt:message key="jsp.request.item.request-free-acess.email"/></td>
|
||||
<td><input type="TEXT" name="email" size="50" value=""></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" colspan="2"><p>
|
||||
<input type="SUBMIT" name="submit_free" value="<fmt:message key="jsp.request.item.request-free-acess.free"/>" >
|
||||
</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<form name="form1" action="<%= request.getContextPath() %>/request-item" method="post" class="form-horizontal">
|
||||
<input type="hidden" name="token" value='<%= token %>'>
|
||||
<input type="hidden" name="step" value='<%= RequestItemServlet.RESUME_FREEACESS %>'>
|
||||
<div class="form-group">
|
||||
<label for="name" class="control-label col-md-2"><fmt:message key="jsp.request.item.request-free-acess.name"/></label>
|
||||
<div class="col-md-5">
|
||||
<input type="text" class="form-control" name="name" size="50" value="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email" class="control-label col-md-2"><fmt:message key="jsp.request.item.request-free-acess.email"/></label>
|
||||
<div class="col-md-5">
|
||||
<input type="text" name="email" class="form-control" size="50" value="" />
|
||||
</div>
|
||||
</div>
|
||||
<input class="btn btn-success col-md-offset-2" type="submit" name="submit_free" value="<fmt:message key="jsp.request.item.request-free-acess.free"/>" />
|
||||
</form>
|
||||
|
||||
</dspace:layout>
|
@@ -66,50 +66,38 @@
|
||||
if (message == null)
|
||||
message = "";
|
||||
|
||||
String resp = (String) request.getAttribute("response");
|
||||
if (resp == null)
|
||||
resp = "";
|
||||
|
||||
|
||||
boolean resp = (Boolean) request.getAttribute("response");
|
||||
%>
|
||||
|
||||
<dspace:layout locbar="off" navbar="off" titlekey="jsp.request.item.request-letter.title" >
|
||||
<dspace:layout locbar="off" navbar="default" titlekey="jsp.request.item.request-letter.title" >
|
||||
|
||||
<br>
|
||||
<% if(resp.equals("yes")) {%>
|
||||
<p>
|
||||
<fmt:message key="jsp.request.item.request-letter.info1">
|
||||
<fmt:param><%=subject %></a></fmt:param>
|
||||
</fmt:message>
|
||||
</p>
|
||||
<%}else{%>
|
||||
<p>
|
||||
<fmt:message key="jsp.request.item.request-letter.info2">
|
||||
<fmt:param><%=subject %></a></fmt:param>
|
||||
</fmt:message>
|
||||
</p>
|
||||
<%}%>
|
||||
<form name="form1" action="<%= request.getContextPath() %>/request-item" method="POST">
|
||||
<input type="HIDDEN" name="token" value='<%= token %>'>
|
||||
<input type="HIDDEN" name="subject" value='<%= subject %>'>
|
||||
<input type="HIDDEN" name="step" value="<%=RequestItemServlet.RESUME_REQUEST %>">
|
||||
<center>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" colspan="2">
|
||||
<textarea name="message" rows="20" cols="100" wrap=soft><%= message %></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<input type="SUBMIT" name="submit_back" value="<fmt:message key="jsp.request.item.request-letter.back"/>" >
|
||||
</td>
|
||||
<td align="center">
|
||||
<input type="SUBMIT" name="submit_next" value="<fmt:message key="jsp.request.item.request-letter.next"/>" >
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<% if(resp) { %>
|
||||
<h2><fmt:message key="jsp.request.item.request-letter.accept.heading" /></h2>
|
||||
<p><fmt:message key="jsp.request.item.request-letter.accept.info" /></p>
|
||||
<% } else { %>
|
||||
<h2><fmt:message key="jsp.request.item.request-letter.reject.heading" /></h2>
|
||||
<p><fmt:message key="jsp.request.item.request-letter.reject.info" /></p>
|
||||
<% } %>
|
||||
<form name="form1" action="<%= request.getContextPath() %>/request-item" method="post" class="form-horizontal">
|
||||
<input type="hidden" name="token" value='<%= token %>' />
|
||||
<input type="hidden" name="accept_request" value="<%= resp %>" />
|
||||
<input type="hidden" name="step" value="<%=RequestItemServlet.RESUME_REQUEST %>" />
|
||||
<div class="form-group">
|
||||
<label for="subject" class="control-label col-md-2"><fmt:message key="jsp.request.item.request-letter.subject"/></label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" class="form-control" name="subject" value='<%= subject %>' />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="message" class="control-label col-md-2"><fmt:message key="jsp.request.item.request-letter.message"/></label>
|
||||
<div class="col-md-10">
|
||||
<textarea class="form-control" name="message" rows="20" cols="100"><%= message %></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn btn-group col-md-4 pull-right row">
|
||||
<input type="submit" name="submit_back" class="btn btn-default col-md-6" value="<fmt:message key="jsp.request.item.request-letter.back"/>" >
|
||||
<input type="submit" class="btn btn-<%= resp?"success":"reject" %> col-md-6" name="submit_next" value="<fmt:message key="jsp.request.item.request-letter.next"/>" >
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</dspace:layout>
|
||||
|
@@ -52,6 +52,6 @@
|
||||
<h2><fmt:message key="jsp.request.item.request-send.info1"/></h2>
|
||||
|
||||
<p><fmt:message key="jsp.request.item.request-send.info2"/>
|
||||
<a href="<%= request.getContextPath() %>/handle/${handle}"><fmt:message key="jsp.request.item.request-send.return-item"/></a></p>
|
||||
<a href="<%= request.getContextPath() %>/handle/${handle}"><fmt:message key="jsp.request.item.return-item"/></a></p>
|
||||
|
||||
</dspace:layout>
|
@@ -54,11 +54,11 @@
|
||||
</style>
|
||||
|
||||
|
||||
<dspace:layout locbar="off" navbar="off" titlekey="jsp.request.item.response-send.title">
|
||||
<dspace:layout locbar="off" navbar="default" titlekey="jsp.request.item.response-send.title">
|
||||
|
||||
<h1><fmt:message key="jsp.request.item.response-send.info1"/></h1>
|
||||
|
||||
<p><fmt:message key="jsp.request.item.response-send.info2"/>
|
||||
<a class="style1" href="" onClick="window.close();"><fmt:message key="jsp.request.item.response-send.close"/></a></p>
|
||||
<a href="<%= request.getContextPath() %>/handle/${handle}"><fmt:message key="jsp.request.item.return-item"/></a></p>
|
||||
|
||||
</dspace:layout>
|
||||
|
@@ -1,11 +0,0 @@
|
||||
Subject: Request copy of document
|
||||
|
||||
Dear {0},
|
||||
|
||||
In response to your request I have the pleasure to send you in attachment a copy of the file(s), concerning the document: "{4}" ({3}), which I am author (or co-author) of.
|
||||
{5}
|
||||
|
||||
Best regards,
|
||||
|
||||
Name: [Insert your name to sign the message]
|
||||
Contacts: [If you think it's convenient you can also put your contacts - Email, etc.]
|
@@ -1,11 +0,0 @@
|
||||
Subject: Request copy of document
|
||||
|
||||
Dear {0},
|
||||
|
||||
In response to your request I regret to inform you that it''s not possible to send you a copy of the file(s) you have requested, concerning the document: "{4}" ({3}), which I am author (or co-author) of.
|
||||
{5}
|
||||
|
||||
Best regards,
|
||||
|
||||
Name: [Insert your name to sign the message]
|
||||
Contacts: [If you think it's convenient you can also put your contacts - Email, etc.]
|
Reference in New Issue
Block a user