This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 5ff79667dfb858566a82c7084fbea2df0272ede5 Author: Kevin Morin <morin@codelutin.com> Date: Thu Feb 16 10:56:26 2017 +0100 fixes #9057 Transfert de réponse : il manque le destinataire de la réponse initiale --- .../faxtomail/services/FaxToMailServiceUtils.java | 13 +++++++++++++ .../ui/swing/content/demande/DemandeUIModel.java | 17 ++--------------- .../demande/replies/DemandRepliesUIHandler.java | 18 +++++++++++++----- .../ui/swing/content/reply/ReplyFormUIHandler.java | 17 +++++++++-------- .../content/reply/actions/SenderChangedAction.java | 2 +- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 16 ++++++++++++++++ .../resources/i18n/faxtomail-ui-swing_fr_FR.properties | 1 + .../faxtomail/web/action/DemandDetailAction.java | 17 ++--------------- 8 files changed, 57 insertions(+), 44 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java index f708e7a..99641b1 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java @@ -33,6 +33,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.mail.Address; import javax.mail.MessagingException; import javax.mail.Part; import javax.mail.internet.ContentType; @@ -46,7 +47,9 @@ import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -199,4 +202,14 @@ public class FaxToMailServiceUtils { public static String getTextFromInputStream(InputStream inputStream, Charset charset) throws IOException { return IOUtils.toString(inputStream, charset); } + + public static List<String> convertAddressesToStrings(Address[] addresses) { + List<String> result = new ArrayList<>(); + if (addresses != null) { + for (Address address : addresses) { + result.add(address.toString()); + } + } + return result; + } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index 1810e85..2f5b2e2 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -55,7 +55,6 @@ import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import javax.activation.DataSource; -import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Part; @@ -936,20 +935,8 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU subject = FaxToMailServiceUtils.getDecodedSubject(message.getSubject()); } - toRecipients = new ArrayList<String>(); - ccRecipients = new ArrayList<String>(); - Address[] recipients = message.getRecipients(Message.RecipientType.TO); - if (recipients != null) { - for (Address address : recipients) { - toRecipients.add(address.toString()); - } - } - recipients = message.getRecipients(Message.RecipientType.CC); - if (recipients != null) { - for (Address address : recipients) { - ccRecipients.add(address.toString()); - } - } + toRecipients = FaxToMailServiceUtils.convertAddressesToStrings(message.getRecipients(Message.RecipientType.TO)); + ccRecipients = FaxToMailServiceUtils.convertAddressesToStrings(message.getRecipients(Message.RecipientType.CC)); plainContents = null; htmlContents = null; diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java index b4ec12d..7512e4d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java @@ -43,6 +43,7 @@ import com.franciaflex.faxtomail.ui.swing.util.toolbar.AbstractToolbarPopupHandl import com.google.common.collect.Iterables; import jaxx.runtime.JAXXUtil; import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.mail.util.MimeMessageUtils; @@ -52,6 +53,7 @@ import org.jdesktop.swingx.decorator.HighlighterFactory; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.mail.BodyPart; +import javax.mail.Message; import javax.mail.Part; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; @@ -73,6 +75,7 @@ import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.ByteArrayOutputStream; +import java.util.List; import java.util.regex.Pattern; import static org.nuiton.i18n.I18n.t; @@ -217,11 +220,16 @@ public class DemandRepliesUIHandler extends AbstractToolbarPopupHandler<DemandeU replyModel.setMessage(content); } - // XXX: à verifier pour le format, et si on quote ou pas encore le forward - String quotedReply = FaxToMailUIUtil.getQuotedReplyContent(dialogContent.getHandler().createSigning(replyModel.getFrom()), - decorate(reply.getSentDate()), - message.getFrom()[0].toString(), - replyModel.getMessage().replaceAll("\n", "<br/> ")); + List<String> toRecipients = FaxToMailServiceUtils.convertAddressesToStrings(message.getRecipients(Message.RecipientType.TO)); + List<String> ccRecipients = FaxToMailServiceUtils.convertAddressesToStrings(message.getRecipients(Message.RecipientType.CC)); + + String quotedReply = FaxToMailUIUtil.getQuotedForwardContent(dialogContent.getHandler().createSigning(replyModel.getFrom()), + reply.getSubject(), + decorate(reply.getSentDate()), + message.getFrom()[0].toString(), + StringUtils.join(toRecipients, " ; "), + StringUtils.join(ccRecipients, " ; "), + replyModel.getMessage().replaceAll("\n", "<br/> ")); replyModel.setMessage(quotedReply); openFrame(dialogContent, t("faxtomail.reply.forward", message.getSubject()), new Dimension(800, 600)); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java index 55abd5c..17d1066 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java @@ -467,10 +467,8 @@ public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIMo // display a new ui with a copy of original ui model ReplyFormUI dialogContent = new ReplyFormUI(ui); ReplyFormUIModel replyModel = dialogContent.getModel(); - replyModel.fromModel(ui.getModel()); - - Date readSentDate = replyModel.getReadSentDate(); - String replyFrom = replyModel.getFrom(); + ReplyFormUIModel uiModel = ui.getModel(); + replyModel.fromModel(uiModel); String content = replyModel.getMessage(); content = Pattern.compile("<html>.*<body>", Pattern.DOTALL).matcher(content).replaceAll(""); @@ -486,10 +484,13 @@ public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIMo replyModel.setCci(null); replyModel.setSubject(t("faxtomail.reply.forwardsubject", replyModel.getSubject())); - String quotedReply = FaxToMailUIUtil.getQuotedReplyContent(dialogContent.getHandler().createSigning(replyModel.getFrom()), - decorate(readSentDate), - replyFrom, - originalReply); + String quotedReply = FaxToMailUIUtil.getQuotedForwardContent(dialogContent.getHandler().createSigning(replyModel.getFrom()), + uiModel.getSubject(), + decorate(uiModel.getReadSentDate()), + uiModel.getFrom(), + uiModel.getTo(), + uiModel.getCc(), + originalReply); replyModel.setMessage(quotedReply); openModalFrame(dialogContent, t("faxtomail.reply.forward", getModel().getSubject()), new Dimension(800, 600)); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java index 40ae4e7..0dd185d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/actions/SenderChangedAction.java @@ -61,7 +61,7 @@ public class SenderChangedAction extends AbstractFaxToMailAction<ReplyFormUIMode ReplyFormUIModel model = getModel(); FaxToMailServiceContext serviceContext = getContext().newServiceContext(); signingForDomain = null; - if (!model.getOriginalDemand().isFax() && model.getFrom() != null) { + if (model.getOriginalDemand() != null && !model.getOriginalDemand().isFax() && model.getFrom() != null) { signingForDomain = serviceContext.getConfigurationService().getSigningForEmailAddress(model.getFrom()).orNull(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 86ae50f..9359998 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -69,6 +69,7 @@ import org.nuiton.jaxx.application.swing.util.ApplicationUIUtil; import org.nuiton.util.FileUtil; import org.nuiton.util.StringUtil; +import javax.mail.Address; import javax.media.jai.PlanarImage; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; @@ -890,4 +891,19 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { return quotedReply; } + public static String getQuotedForwardContent(String signing, String subject, String receptionDate, String sender, + String recipient, String ccRecipient, String originalEmail) { + String recipients = t("faxtomail.reply.label.to") + " " + recipient; + if (StringUtils.isNotBlank(ccRecipient)) { + recipients += "<br/>" + t("faxtomail.reply.label.cc") + " " + ccRecipient; + } + return t("faxtomail.forward.message", + signing, + subject, + receptionDate, + sender, + recipients, + originalEmail); + } + } diff --git a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties index 99ce390..d6b77cb 100644 --- a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties +++ b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties @@ -233,6 +233,7 @@ faxtomail.demandeList.table.header.waitingState.tip=État attente faxtomail.demandeList.title=Liste des éléments faxtomail.demandeList.totalCount=Nombre de demandes \: faxtomail.email.content.attachment.unnamed=Pièce-jointe %s +faxtomail.forward.message=<html><body><p></p>%s<p>--- Message transféré ---<br/>Sujet \: %s<br/>Date \: %s<br/>De \: %s<br/>%s</p><p>%s</p> faxtomail.historyList.action.tip=Historique faxtomail.historyList.text=Historique (%s) faxtomail.historyList.title=Historique diff --git a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java index 2242274..3e5d3c4 100644 --- a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java +++ b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java @@ -57,7 +57,6 @@ import org.nuiton.topia.persistence.TopiaNoResultException; import javax.activation.DataHandler; import javax.activation.DataSource; -import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Part; @@ -340,22 +339,10 @@ public class DemandDetailAction extends FaxToMailActionSupport { MimeMessage message = new MimeMessage(null, byteArrayInputStream); emailUIModel.setSubject(message.getSubject()); - List<String> toRecipients = new ArrayList<>(); - List<String> ccRecipients = new ArrayList<>(); - Address[] recipients = message.getRecipients(Message.RecipientType.TO); - if (recipients != null) { - for (Address address : recipients) { - toRecipients.add(address.toString()); - } - } + List<String> toRecipients = FaxToMailServiceUtils.convertAddressesToStrings(message.getRecipients(Message.RecipientType.TO)); emailUIModel.setToRecipients(toRecipients); - recipients = message.getRecipients(Message.RecipientType.CC); - if (recipients != null) { - for (Address address : recipients) { - ccRecipients.add(address.toString()); - } - } + List<String> ccRecipients = FaxToMailServiceUtils.convertAddressesToStrings(message.getRecipients(Message.RecipientType.CC)); emailUIModel.setCcRecipients(ccRecipients); if (message.isMimeType("multipart/*")) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.