Author: kmorin Date: 2014-11-27 05:18:52 +0000 (Thu, 27 Nov 2014) New Revision: 703 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/703 Log: refs #6162 fixes #6173 Permettre l'envoi de r?\195?\169ponse ?\195?\160 plusieurs "to", "cc" et "bcc" Added: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java trunk/faxtomail-service/src/main/resources/validators.xml trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java trunk/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel-error-validation.xml Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-11-27 05:18:52 UTC (rev 703) @@ -1179,12 +1179,16 @@ message.setCharset(EmailConstants.UTF_8); message.setFrom(from); - message.addTo(to); + + String[] tos = to.split("\\s*;\\s*"); + message.addTo(tos); if (StringUtils.isNotBlank(cc)) { - message.addCc(cc); + String[] ccs = cc.split("\\s*;\\s*"); + message.addCc(ccs); } if (StringUtils.isNotBlank(bcc)) { - message.addBcc(bcc); + String[] bccs = bcc.split("\\s*;\\s*"); + message.addBcc(bccs); } message.setSubject(subject); message.setMsg(content); Copied: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java (from rev 694, trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailValidator.java) =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java (rev 0) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/validators/FaxToMailEmailsValidator.java 2014-11-27 05:18:52 UTC (rev 703) @@ -0,0 +1,47 @@ +package com.franciaflex.faxtomail.services.validators; + +/* + * #%L + * FaxToMail :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2014 Mac-Groupe, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.opensymphony.xwork2.validator.validators.EmailValidator; + +/** + * Surcharge du validateur d'email par default de struts pour autoriser en plus le domaine ".fax". + * Possibilité d'avoir plusieurs emails séparés par des points-virgule + */ +public class FaxToMailEmailsValidator extends EmailValidator { + + // see XW-371 + public static final String EMAIL_ADDRESSES_PATTERN = + "\\b^['_a-z0-9-\\+]+(\\.['_a-z0-9-\\+]+)*" + + "@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2}|aero|arpa|asia|biz|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|nato|net|org|pro|tel|travel|xxx|fax)" + + "(\\s*;\\s*['_a-z0-9-\\+]+(\\.['_a-z0-9-\\+]+)*" + + "@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2}|aero|arpa|asia|biz|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|nato|net|org|pro|tel|travel|xxx|fax))*" + + "$\\b"; + + public FaxToMailEmailsValidator() { + setRegex(EMAIL_ADDRESSES_PATTERN); + } + +} Modified: trunk/faxtomail-service/src/main/resources/validators.xml =================================================================== --- trunk/faxtomail-service/src/main/resources/validators.xml 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-service/src/main/resources/validators.xml 2014-11-27 05:18:52 UTC (rev 703) @@ -48,4 +48,5 @@ <!-- les validateur specifiques --> <validator name="email" class="com.franciaflex.faxtomail.services.validators.FaxToMailEmailValidator"/> + <validator name="emails" class="com.franciaflex.faxtomail.services.validators.FaxToMailEmailsValidator"/> </validators> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/EditAttachmentAction.java 2014-11-27 05:18:52 UTC (rev 703) @@ -49,11 +49,8 @@ protected PDFEditorUI dialogContent; protected JFrame frame; - public EditAttachmentAction(AttachmentEditorUIHandler handler) { + public EditAttachmentAction(AttachmentEditorUIHandler handler, Attachment attachment) { super(handler, false); - } - - public void setAttachment(Attachment attachment) { this.attachment = attachment; String attachmentName = attachment.getEditedFileName() != null ? attachment.getEditedFileName() : attachment.getOriginalFileName(); setActionDescription(t("faxtomail.action.attachment.edit.tip", attachmentName)); @@ -77,8 +74,6 @@ MainUI mainUI = getContext().getMainUI(); frame = getHandler().openFrame(dialogContent, attachment.getOriginalFileName(), mainUI.getSize()); - final Attachment attachment = this.attachment; - final PDFEditorUI dialogContent = this.dialogContent; frame.addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-11-27 05:18:52 UTC (rev 703) @@ -68,7 +68,6 @@ public class AttachmentEditorUIHandler extends AbstractToolbarPopupHandler<AttachmentEditorUIModel, AttachmentEditorUI> { protected OpenAttachmentAction openAttachmentAction = new OpenAttachmentAction(this); - protected EditAttachmentAction editAttachmentAction = new EditAttachmentAction(this); @Override public void afterInit(AttachmentEditorUI ui) { @@ -157,7 +156,7 @@ getContext().closeSecondaryFrame(); - editAttachmentAction.setAttachment(attachment); + EditAttachmentAction editAttachmentAction = new EditAttachmentAction(this, attachment); // run Internal to prevent multiple successive execution (#5668) getContext().getActionEngine().runAction(editAttachmentAction); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-11-27 05:18:52 UTC (rev 703) @@ -34,10 +34,6 @@ editable: { model.isEditable() }; } -BeanFilterableComboBox { - enabled: { model.isEditable() }; -} - .rightLabel { horizontalAlignment: { SwingConstants.RIGHT }; font-style: "italic"; Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java 2014-11-27 05:18:52 UTC (rev 703) @@ -64,6 +64,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -204,13 +205,13 @@ replyModel.setOriginalDemand(ui.getModel()); replyModel.setReadSentDate(reply.getSentDate()); replyModel.setSubject(message.getSubject()); - replyModel.setTo(message.getRecipients(RecipientType.TO)[0].toString()); + replyModel.setTo(StringUtils.join(message.getRecipients(RecipientType.TO), " ; ")); replyModel.setFrom(message.getFrom()[0].toString()); if (ArrayUtils.isNotEmpty(message.getRecipients(RecipientType.CC))) { - replyModel.setCc(message.getRecipients(RecipientType.CC)[0].toString()); + replyModel.setCc(StringUtils.join(message.getRecipients(RecipientType.CC), " ; ")); } if (ArrayUtils.isNotEmpty(message.getRecipients(RecipientType.BCC))) { - replyModel.setCci(message.getRecipients(RecipientType.BCC)[0].toString()); + replyModel.setCci(StringUtils.join(message.getRecipients(RecipientType.BCC), " ; ")); } if (message.isMimeType("multipart/*")) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-11-27 05:18:52 UTC (rev 703) @@ -165,6 +165,7 @@ replyToAddresses.addAll(folderReplyAdresses); } Collections.sort(replyToAddresses); + replyToAddresses.add(0, null); ui.getFromComboBox().setModel(SwingUtil.newComboModel(replyToAddresses.toArray())); model.setSenderAllowedAddresses(replyToAddresses); Modified: trunk/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel-error-validation.xml =================================================================== --- trunk/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel-error-validation.xml 2014-11-26 21:07:33 UTC (rev 702) +++ trunk/faxtomail-ui-swing/src/main/resources/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel-error-validation.xml 2014-11-27 05:18:52 UTC (rev 703) @@ -33,19 +33,19 @@ <field-validator type="requiredstring" short-circuit="true"> <message>faxtomail.validator.error.reply.to.required</message> </field-validator> - <field-validator type="email" short-circuit="true"> + <field-validator type="emails" short-circuit="true"> <message>faxtomail.validator.error.reply.to.email</message> </field-validator> </field> <field name="cc"> - <field-validator type="email" short-circuit="true"> + <field-validator type="emails" short-circuit="true"> <message>faxtomail.validator.error.reply.cc.email</message> </field-validator> </field> <field name="cci"> - <field-validator type="email" short-circuit="true"> + <field-validator type="emails" short-circuit="true"> <message>faxtomail.validator.error.reply.cci.email</message> </field-validator> </field>