r284 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-persistence/src/main/xmi faxtomail-service/src/main/java/com/franciaflex/faxtomail/services faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util faxtomail-ui-swing/src/main/resources/i18n faxtomail-ui-we
Author: kmorin Date: 2014-06-28 16:29:21 +0200 (Sat, 28 Jun 2014) New Revision: 284 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/284 Log: - gestion des retours edi - rejet des emails sans clients Added: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-persistence/src/main/xmi/faxtomail.zargo trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.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/DemandeUI.jaxx trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-06-28 14:29:21 UTC (rev 284) @@ -255,7 +255,7 @@ // email ediCodeNumber if (StringUtils.isNotBlank(emailFilter.getEdiCodeNumber())) { - query.append(" AND lower(E." + Email.PROPERTY_EDI_CODE_NUMBER + ") LIKE lower(:" + EmailFilter.PROPERTY_EDI_CODE_NUMBER + ")"); + query.append(" AND lower(E." + Email.PROPERTY_EDI_ERROR + ") LIKE lower(:" + EmailFilter.PROPERTY_EDI_CODE_NUMBER + ")"); args.put(EmailFilter.PROPERTY_EDI_CODE_NUMBER, "%" + emailFilter.getEdiCodeNumber() + "%"); } Modified: trunk/faxtomail-persistence/src/main/xmi/faxtomail.zargo =================================================================== (Binary files differ) Added: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java (rev 0) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java 2014-06-28 14:29:21 UTC (rev 284) @@ -0,0 +1,23 @@ +package com.franciaflex.faxtomail.services; + +import com.franciaflex.faxtomail.persistence.entities.MailFolder; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class FaxToMailServiceUtils { + + public static String addFaxDomainToFaxNumber(String faxNumber, MailFolder folder) { + while (!folder.isUseCurrentLevelFaxDomain() + && folder.getParent() != null) { + folder = folder.getParent(); + } + int endIndex = faxNumber.indexOf('@'); + if (endIndex >= 0) { + faxNumber = faxNumber.substring(0, endIndex); + } + faxNumber += "@" + folder.getFaxDomain(); + return faxNumber; + } +} Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java 2014-06-28 14:29:21 UTC (rev 284) @@ -67,10 +67,9 @@ clients = clientDao.forEmailAddressEquals(emailAddress).findAll(); if (CollectionUtils.isEmpty(clients)) { - emailAddress = emailAddress.substring(0, emailAddress.indexOf('@')); - emailAddress.replaceAll(" ", ""); - if (NumberUtils.isNumber(emailAddress)) { - emailAddress = StringUtils.leftPad(emailAddress, 10, '0'); + String faxNumber = emailAddress.substring(0, emailAddress.indexOf('@')).replaceAll(" ", ""); + if (NumberUtils.isNumber(faxNumber)) { + emailAddress = StringUtils.leftPad(faxNumber, 10, '0'); clients = clientDao.forFaxNumberEquals(emailAddress).findAll(); email.setFax(true); } @@ -98,6 +97,7 @@ } } } + email.setSender(emailAddress); return client; } Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-06-28 14:29:21 UTC (rev 284) @@ -38,6 +38,7 @@ import java.util.Date; import java.util.Enumeration; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -47,8 +48,11 @@ import javax.mail.MessagingException; import com.franciaflex.faxtomail.persistence.entities.AttachmentTopiaDao; +import com.franciaflex.faxtomail.persistence.entities.EdiReturn; +import com.franciaflex.faxtomail.persistence.entities.EdiReturnTopiaDao; import com.franciaflex.faxtomail.persistence.entities.MailField; +import com.google.common.base.Function; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.io.IOUtils; @@ -307,6 +311,9 @@ EmailTopiaDao dao = getPersistenceContext().getEmailDao(); List<Email> toTransmitToEdi = dao.forDemandStatusEquals(DemandStatus.TRANSMITTED_TO_EDI).findAll(); + if (log.isDebugEnabled()) { + log.debug(toTransmitToEdi.size() + " demands to transmit to edi"); + } for (Email email : toTransmitToEdi) { transmitDemandToEdi(email); } @@ -651,8 +658,8 @@ getPersistenceContext().commit(); } - public void rejectEmail(String from, String to, String subject, - String content) throws EmailException, MessagingException, IOException { + public void rejectEmail(String from, String to, String subject, String content) + throws EmailException, MessagingException, IOException { final String smtpUser = getApplicationConfig().getSmtpUser(); final String password = getApplicationConfig().getSmtpPassword(); @@ -674,4 +681,47 @@ message.send(); } + + public void updateRangeRowsWithEdiReturns() { + EdiReturnTopiaDao ediReturnDao = getPersistenceContext().getEdiReturnDao(); + RangeRowTopiaDao rangeRowTopiaDao = getPersistenceContext().getRangeRowDao(); + EmailTopiaDao emailTopiaDao = getPersistenceContext().getEmailDao(); + + Set<Email> emailsToUpdate = new HashSet<>(); + + List<EdiReturn> ediReturns = ediReturnDao.findAll(); + if (log.isDebugEnabled()) { + log.debug(ediReturns.size() + " returns from edi"); + } + List<String> rangeRowsIds = Lists.transform(ediReturns,new Function<EdiReturn, String>() { + @Override + public String apply(EdiReturn ediReturn) { + return ediReturn.getRangeRowTopiaId(); + } + }); + + List<RangeRow> rangeRows = rangeRowTopiaDao.forTopiaIdIn(rangeRowsIds).findAll(); + Map<String, RangeRow> rangeRowsById = Maps.uniqueIndex(rangeRows, TopiaEntities.getTopiaIdFunction()); + + for (EdiReturn ediReturn : ediReturns) { + RangeRow rangeRow = rangeRowsById.get(ediReturn.getRangeRowTopiaId()); + Email email = emailTopiaDao.forRangeRowContains(rangeRow).findUnique(); + + if (StringUtils.isNotBlank(ediReturn.getError())) { + //error + email.setEdiError(ediReturn.getError()); + + } else { + rangeRow.setCommandNumber(ediReturn.getCommandNumber()); + } + + email.setDemandStatus(DemandStatus.IN_PROGRESS); + emailsToUpdate.add(email); + } + + rangeRowTopiaDao.updateAll(rangeRows); + emailTopiaDao.updateAll(emailsToUpdate); + ediReturnDao.deleteAll(ediReturns); + getPersistenceContext().commit(); + } } Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-06-28 14:29:21 UTC (rev 284) @@ -107,7 +107,7 @@ if (count == 0) { List<DemandType> types = Lists.newArrayList( - demandTypeDao.create(DemandType.PROPERTY_LABEL, "Commande"), + demandTypeDao.create(DemandType.PROPERTY_LABEL, "Commande", DemandType.PROPERTY_FIELDS, Lists.newArrayList(MailField.RANGE_ROW)), demandTypeDao.create(DemandType.PROPERTY_LABEL, "Commande Réponse"), demandTypeDao.create(DemandType.PROPERTY_LABEL, "Commande Annulation/Modification"), demandTypeDao.create(DemandType.PROPERTY_LABEL, "Devis Diffus"), @@ -210,7 +210,9 @@ int etatAttenteSize = etatAttentes.size(); // root folders (~companies) - MailFolder franciaflex = folderDao.create(MailFolder.PROPERTY_NAME, "Franciaflex"); + MailFolder franciaflex = folderDao.create(MailFolder.PROPERTY_NAME, "Franciaflex", + MailFolder.PROPERTY_USE_CURRENT_LEVEL_REJECT_RESPONSE_MAIL_ADDRESS, true, + MailFolder.PROPERTY_USE_CURRENT_LEVEL_REJECT_RESPONSE_MESSAGE, true); MailFolder faber = folderDao.create(MailFolder.PROPERTY_NAME, "Faber"); MailFolder franceFermeture = folderDao.create(MailFolder.PROPERTY_NAME, "France-fermeture"); @@ -432,6 +434,10 @@ rangeRows.add(rangeRow); } email.setRangeRow(rangeRows); + + if (random.nextBoolean()) { + email.setEdiError("error 42"); + } } email.setDemandType(demandType); email.setPriority(priorities.get(random.nextInt(priorities.size()))); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-28 14:29:21 UTC (rev 284) @@ -37,6 +37,7 @@ import com.franciaflex.faxtomail.persistence.entities.HistoryImpl; import com.franciaflex.faxtomail.persistence.entities.HistoryType; import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.franciaflex.faxtomail.ui.swing.actions.ArchiveFromListAction; import com.franciaflex.faxtomail.ui.swing.actions.ComputeQuantitiesByRangeAction; import com.franciaflex.faxtomail.ui.swing.actions.LoadFolderEmailsAction; @@ -48,6 +49,7 @@ import com.franciaflex.faxtomail.ui.swing.util.CloseableUI; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode; +import jaxx.runtime.JAXXUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -504,8 +506,15 @@ ReplyFormUI dialogContent = new ReplyFormUI(ui); ReplyFormUIModel model = dialogContent.getModel(); - model.setTo(demand.getSender()); + //TODO kmorin 20140626 test + String sender = JAXXUtil.getStringValue(demand.getSender()); + if (demand.isFax()) { + MailFolder selectedFolder = getModel().getSelectedFolder(); + sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, selectedFolder); + } + model.setTo(sender); + openFrame(dialogContent, t("faxtomail.reply.title", demand.getObject()), new Dimension(800, 600)); } 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-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-06-28 14:29:21 UTC (rev 284) @@ -283,14 +283,17 @@ _validatorLabel: { t("faxtomail.demande.rangeRow.label") }; } -#ediCodeNumberLabel { - text: "faxtomail.demande.ediCodeNumber.label"; - visible: { model.getEdiCodeNumber() != null }; +#ediErrorLabel { + text: "faxtomail.demande.ediError.label"; + visible: { model.getEdiError() != null }; + foreground: { Color.RED }; } -#ediCodeNumberField { - text: { model.getEdiCodeNumber() }; - visible: { model.getEdiCodeNumber() != null }; +#ediErrorField { + text: { model.getEdiError() }; + visible: { model.getEdiError() != null }; + editable: false; + foreground: { Color.RED }; } .horizontal-separator { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx 2014-06-28 14:29:21 UTC (rev 284) @@ -47,6 +47,7 @@ javax.swing.ListSelectionModel javax.swing.SwingConstants + java.awt.Color java.awt.FlowLayout java.text.SimpleDateFormat @@ -249,22 +250,19 @@ </cell> </row> - <row> - <cell> - <JLabel id='ediCodeNumberLabel'/> - </cell> - <cell weightx='1'> - <JTextField id='ediCodeNumberField' - onKeyReleased='handler.setText(event, "ediCodeNumber")'/> - </cell> - </row> - </Table> </JScrollPane> <JPanel layout="{new BorderLayout()}" id="rangePanel"> <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.NORTH'> + <JLabel id='ediErrorLabel'/> + <JTextField id='ediErrorField'/> + </JPanel> + <JScrollPane constraints="BorderLayout.CENTER"> + <JXTable id='rangeTable'/> + </JScrollPane> + <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.SOUTH'> <JLabel id="quotationNbLabel"/> <JLabel id="quotationNbField"/> <JLabel styleClass="horizontal-separator"/> @@ -274,9 +272,6 @@ <JLabel id="savNbLabel"/> <JLabel id="savNbField"/> </JPanel> - <JScrollPane constraints="BorderLayout.CENTER"> - <JXTable id='rangeTable'/> - </JScrollPane> </JPanel> </JSplitPane> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-06-28 14:29:21 UTC (rev 284) @@ -431,14 +431,14 @@ return editObject.getReceptionDate(); } - public void setEdiCodeNumber(String ediCodeNumber) { - Object oldValue = getEdiCodeNumber(); - editObject.setEdiCodeNumber(ediCodeNumber); - firePropertyChanged(Email.PROPERTY_EDI_CODE_NUMBER, oldValue, ediCodeNumber); + public void setEdiError(String ediCodeNumber) { + Object oldValue = getEdiError(); + editObject.setEdiError(ediCodeNumber); + firePropertyChanged(Email.PROPERTY_EDI_ERROR, oldValue, ediCodeNumber); } - public String getEdiCodeNumber() { - return editObject.getEdiCodeNumber(); + public String getEdiError() { + return editObject.getEdiError(); } public void setProjectReference(String projectReference) { Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-28 14:29:21 UTC (rev 284) @@ -28,6 +28,8 @@ import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EtatAttente; import com.franciaflex.faxtomail.persistence.entities.MailAction; +import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.franciaflex.faxtomail.ui.swing.actions.ArchiveAction; import com.franciaflex.faxtomail.ui.swing.actions.SaveAndOpenDialogAction; import com.franciaflex.faxtomail.ui.swing.actions.SaveDemandeAndExitAction; @@ -38,6 +40,7 @@ import com.franciaflex.faxtomail.ui.swing.content.transmit.MailFolderChooserUI; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.CloseableUI; +import jaxx.runtime.JAXXUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -377,7 +380,14 @@ model.setOriginalDemand(currentDemand); - model.setTo(currentDemand.getSender()); + //TODO kmorin 20140626 test + String sender = JAXXUtil.getStringValue(currentDemand.getSender()); + if (currentDemand.isFax()) { + MailFolder selectedFolder = getContext().getCurrentMailFolder(); + sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, selectedFolder); + } + model.setTo(sender); + DemandeUI demandeUI = (DemandeUI) getTabPanel().getSelectedComponent(); SaveAndOpenDialogAction action = new SaveAndOpenDialogAction(demandeUI.getHandler(), false, Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java 2014-06-28 14:29:21 UTC (rev 284) @@ -97,7 +97,7 @@ put(MailField.EDI_RETURN, ColumnIdentifier.<Email>newReadOnlyId( - Email.PROPERTY_EDI_CODE_NUMBER, + Email.PROPERTY_EDI_ERROR, n("faxtomail.demandeList.table.header.ediCodeNumber"), n("faxtomail.demandeList.table.header.ediCodeNumber.tip"))); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-06-28 14:29:21 UTC (rev 284) @@ -170,7 +170,9 @@ if (!colorNotAffectedFolders || context.getCurrentUser().isAffectedFoldersEmpty() || context.getCurrentUser().containsAffectedFolders(node.getMailFolder())) { - foreground = Color.BLACK; + + foreground = hasFocus ? Color.WHITE : Color.BLACK; + } else { foreground = Color.LIGHT_GRAY; } @@ -315,7 +317,7 @@ log.debug("Mapping attachment id " + key + " to file " + file.getAbsolutePath()); } } - + if (log.isTraceEnabled()) { log.trace("Content after mail = " + content); } @@ -328,7 +330,7 @@ /** * Force le chargement des attachmentFile (edited and original) pour un attachment. - * + * * @param context context * @param attachment attachment */ @@ -434,7 +436,7 @@ /** * Ouvre un attachment en fonction de la configuration des extensions, ou à default le open système. - * + * * @param context * @param attachment */ @@ -443,7 +445,7 @@ File file = attachment.getFile(); String filename = attachment.getFilename(); String extension = FilenameUtils.getExtension(filename); - + // get configuration extension command ExtensionCommand extCommand = null; if (StringUtils.isNotBlank(extension)) { Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties =================================================================== --- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-06-28 14:29:21 UTC (rev 284) @@ -105,7 +105,7 @@ faxtomail.demande.demandStatus.label=Statut faxtomail.demande.demandType.label=Type faxtomail.demande.docType.label=Type -faxtomail.demande.ediCodeNumber.label=Retour EDI +faxtomail.demande.ediError.label=Retour EDI faxtomail.demande.etatAttente.label=État attente faxtomail.demande.fax.label=Fax faxtomail.demande.firstOpened.label=Première ouverture @@ -167,8 +167,8 @@ faxtomail.demandeList.table.header.comment.tip=Commentaire faxtomail.demandeList.table.header.companyReference=Notre ref faxtomail.demandeList.table.header.companyReference.tip=Notre référence -faxtomail.demandeList.table.header.ediCodeNumber=Code EDI -faxtomail.demandeList.table.header.ediCodeNumber.tip=Code EDI +faxtomail.demandeList.table.header.ediCodeNumber=Retour EDI +faxtomail.demandeList.table.header.ediCodeNumber.tip=Retour EDI faxtomail.demandeList.table.header.lastAttachmentOpeningUser=Dernier à ouvrir une PJ faxtomail.demandeList.table.header.lastAttachmentOpeningUser.tip=Dernier utilisateur à avoir ouvert une pièce-jointe faxtomail.demandeList.table.header.object=Objet Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java 2014-06-28 14:29:21 UTC (rev 284) @@ -27,6 +27,7 @@ import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import com.franciaflex.faxtomail.web.job.ClientUpdateJob; import com.franciaflex.faxtomail.web.job.EDIManagementJob; import com.franciaflex.faxtomail.web.job.MailFilterJob; import org.apache.commons.logging.Log; @@ -87,6 +88,11 @@ .withIdentity("faxToMailJobs", "ediManagementJob") .build(); + JobDetail clientUpdateJob = JobBuilder.newJob(ClientUpdateJob.class) + .usingJobData(data) + .withIdentity("faxToMailJobs", "clientUpdateJob") + .build(); + try { Scheduler scheduler = new StdSchedulerFactory().getScheduler(); @@ -109,6 +115,15 @@ scheduler.scheduleJob(ediManagementJob, trigger); + // schedule client updates (toutes les 15 minutes) + trigger = TriggerBuilder + .newTrigger() + .withIdentity("clientUpdates", "clientUpdatesTrigger") + .withSchedule(CronScheduleBuilder.cronSchedule("0 */15 * * * ?")) + .build(); + + scheduler.scheduleJob(clientUpdateJob, trigger); + scheduler.start(); log.debug("schedulers launched"); Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java 2014-06-28 14:29:21 UTC (rev 284) @@ -52,7 +52,15 @@ EmailService emailService = serviceContext.newService(EmailService.class); emailService.transmitPendingDemandsToEdi(); - //TODO kmorin 20140521 check in the transfert table if new command number arrived + if (log.isDebugEnabled()) { + log.debug("Transmission over"); + } + + emailService.updateRangeRowsWithEdiReturns(); + + if (log.isDebugEnabled()) { + log.debug("End of EDIManagementJob"); + } } } Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-28 14:29:21 UTC (rev 284) @@ -66,6 +66,7 @@ import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFilter; +import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.PageSize; @@ -214,189 +215,199 @@ MailFolderService mailFolderService = serviceContext.newService(MailFolderService.class); for (int i = 0 ; i < count ; i++) { - Email email = new EmailImpl(); + try { + Email email = new EmailImpl(); - int messageNumber = count - i; - Message message = folder.getMessage(messageNumber); + int messageNumber = count - i; + Message message = folder.getMessage(messageNumber); - Charset charset = getCharset(message); + Charset charset = getCharset(message); - List<String> modifiedProperties = new ArrayList<>(); + List<String> modifiedProperties = new ArrayList<>(); - if (log.isDebugEnabled()){ - log.debug("Object: " + message.getSubject()); - } + if (log.isDebugEnabled()){ + log.debug("Object: " + message.getSubject()); + } -// email.s(message.getSubject()); -// modifiedProperties.add(Email.PROPERTY_OBJECT); + // email.s(message.getSubject()); + // modifiedProperties.add(Email.PROPERTY_OBJECT); - List<Address> recipients = new ArrayList<>(); - Address[] toRecipients = message.getRecipients(Message.RecipientType.TO); - if (toRecipients != null) { - recipients.addAll(Arrays.asList(toRecipients)); - } - Address[] ccRecipients = message.getRecipients(Message.RecipientType.CC); - if (ccRecipients != null) { - recipients.addAll(Arrays.asList(ccRecipients)); - } + List<Address> recipients = new ArrayList<>(); + Address[] toRecipients = message.getRecipients(Message.RecipientType.TO); + if (toRecipients != null) { + recipients.addAll(Arrays.asList(toRecipients)); + } + Address[] ccRecipients = message.getRecipients(Message.RecipientType.CC); + if (ccRecipients != null) { + recipients.addAll(Arrays.asList(ccRecipients)); + } - MailFilter filter = null; - for (Address address : recipients) { + MailFilter filter = null; + for (Address address : recipients) { - String recipient = address.toString(); + String recipient = address.toString(); - // some reciepient are like "toto tutu<toto.tutu73@gmail.com>" - // the regex is to extract email address from it - recipient = recipient.replaceFirst("^.*<(.*)>$", "$1"); - recipient = recipient.toLowerCase(); + // some reciepient are like "toto tutu<toto.tutu73@gmail.com>" + // the regex is to extract email address from it + recipient = recipient.replaceFirst("^.*<(.*)>$", "$1"); + recipient = recipient.toLowerCase(); - Collection<MailFilter> filters = mailFolderService.getFiltersForRecipient(recipient); + Collection<MailFilter> filters = mailFolderService.getFiltersForRecipient(recipient); - if (CollectionUtils.isNotEmpty(filters)) { - filter = filters.iterator().next(); - email.setRecipient(recipient); - modifiedProperties.add(Email.PROPERTY_RECIPIENT); - break; + if (CollectionUtils.isNotEmpty(filters)) { + filter = filters.iterator().next(); + email.setRecipient(recipient); + modifiedProperties.add(Email.PROPERTY_RECIPIENT); + break; + } + } - - } - if (filter == null) { - if (log.isDebugEnabled()) { - log.debug("Can't place mail " + message.getSubject() + " in any folder"); - if (log.isTraceEnabled()) { - for (Address address : recipients) { - log.trace(" - for recipient " + address.toString()); + if (filter == null) { + if (log.isDebugEnabled()) { + log.debug("Can't place mail " + message.getSubject() + " in any folder"); + if (log.isTraceEnabled()) { + for (Address address : recipients) { + log.trace(" - for recipient " + address.toString()); + } } } + continue; } - continue; - } - Address[] addresses = message.getFrom(); - if (addresses != null && addresses.length > 0) { - String sender = addresses[0].toString(); - // some sender are like "toto tutu<toto.tutu73@gmail.com>" - // the regex is to extract email address from it - sender = sender.replaceFirst("^.*<(.*)>$", "$1"); - sender = sender.toLowerCase(); + Address[] addresses = message.getFrom(); + if (addresses != null && addresses.length > 0) { + String sender = addresses[0].toString(); + // some sender are like "toto tutu<toto.tutu73@gmail.com>" + // the regex is to extract email address from it + sender = sender.replaceFirst("^.*<(.*)>$", "$1"); + sender = sender.toLowerCase(); - email.setSender(sender); - modifiedProperties.add(Email.PROPERTY_SENDER); + Client client = serviceContext.newService(ClientService.class) + .getClientForEmailAddress(sender, email); + modifiedProperties.add(Email.PROPERTY_SENDER); - Client client = serviceContext.newService(ClientService.class) - .getClientForEmailAddress(sender, email); + if (client != null) { + String object = client.getCaracteristic1() + " / " + + client.getCode() + " / " + + client.getName() + " / " + + client.getFaxNumber() + " / " + + DateFormat.getDateInstance(DateFormat.MEDIUM).format(new Date()); + email.setObject(object); + modifiedProperties.add(Email.PROPERTY_OBJECT); + modifiedProperties.add(Email.PROPERTY_CLIENT); + } + email.setClient(client); - if (client != null) { - String object = client.getCaracteristic1() + " / " + - client.getCode() + " / " + - client.getName() + " / " + - client.getFaxNumber() + " / " + - DateFormat.getDateInstance(DateFormat.MEDIUM).format(new Date()); - email.setObject(object); - modifiedProperties.add(Email.PROPERTY_OBJECT); - modifiedProperties.add(Email.PROPERTY_CLIENT); - } - email.setClient(client); + MailFolder mailFolder = null; + if (!filter.isFilterFolderPriority() && client != null) { + FaxToMailUser personInCharge = client.getPersonInCharge(); + if (personInCharge != null) { + mailFolder = mailFolderService.getFolderForFaxToMailUser(personInCharge); + } + } - MailFolder mailFolder; - if (filter.isFilterFolderPriority()) { - if (client == null && - (filter.getMailFolder().getRejectUnknownSender() != null && - filter.getMailFolder().getRejectUnknownSender())) { - // client unknown filter active - // unknown client -> message rejected - MailFolder folderTmp = filter.getMailFolder(); - emailService.rejectEmail(email.getRecipient(), email.getSender(), email.getObject(), folderTmp.getRejectResponseMessage()); - continue; + if (mailFolder == null) { + // to default folder + mailFolder = filter.getMailFolder(); } - // to default folder - mailFolder = filter.getMailFolder(); - } else { - // add to person in charge or reject the mail if client is unknown - if ( - client == null || - client.getPersonInCharge() == null || - client.getPersonInCharge().getAffectedFolders() == null || - client.getPersonInCharge().getAffectedFolders().isEmpty()) { - if(client == null && - (filter.getMailFolder().getRejectUnknownSender() != null && - filter.getMailFolder().getRejectUnknownSender())) { - // rejected client mail unknown filter activated - // mail rejected - MailFolder folderTmp = filter.getMailFolder(); - emailService.rejectEmail(email.getRecipient(), email.getSender(), email.getObject(), folderTmp.getRejectResponseMessage()); + email.setMailFolder(mailFolder); + modifiedProperties.add(Email.PROPERTY_MAIL_FOLDER); + + // if client is null and folder + if (client == null) { + Boolean reject = null; + String rejectMessage = null; + String senderEmail = null; + + // find reject conf + MailFolder rejectMailFolder = mailFolder; + while (!Boolean.FALSE.equals(reject) && rejectMailFolder != null + && (reject == null + || !rejectMailFolder.isUseCurrentLevelRejectResponseMessage() + || !rejectMailFolder.isUseCurrentLevelRejectResponseMailAddress())) { + + if (reject == null) { + reject = rejectMailFolder.getRejectUnknownSender(); + } + if (rejectMessage == null && rejectMailFolder.isUseCurrentLevelRejectResponseMessage()) { + rejectMessage = rejectMailFolder.getRejectResponseMessage(); + } + if (senderEmail == null && rejectMailFolder.isUseCurrentLevelRejectResponseMailAddress()) { + senderEmail = rejectMailFolder.getRejectResponseMailAddress(); + } + rejectMailFolder = rejectMailFolder.getParent(); + } + + if (Boolean.TRUE.equals(reject)) { + // unknown client -> message rejected + String recipient = email.getSender(); + if (email.isFax()) { + recipient = FaxToMailServiceUtils.addFaxDomainToFaxNumber(recipient, mailFolder); + } + emailService.rejectEmail(senderEmail, recipient, t("faxtomail.email.subject.re", message.getSubject()), rejectMessage); continue; } - // client mailFolder unknown -> to default folder - mailFolder = filter.getMailFolder(); - } else { - // to client mailFolder - FaxToMailUser personInCharge = client.getPersonInCharge(); - mailFolder = mailFolderService.getFolderForFaxToMailUser(personInCharge); } + } - // if no folder found, do not save the mail - if (mailFolder == null) { - continue; + + Date receivedDate = message.getReceivedDate(); + if (receivedDate == null) { + receivedDate = message.getSentDate(); } + email.setReceptionDate(receivedDate); + modifiedProperties.add(Email.PROPERTY_RECEPTION_DATE); - email.setMailFolder(mailFolder); - modifiedProperties.add(Email.PROPERTY_MAIL_FOLDER); - } + Date now = new Date(); - Date receivedDate = message.getReceivedDate(); - if (receivedDate == null) { - receivedDate = message.getSentDate(); - } - email.setReceptionDate(receivedDate); - modifiedProperties.add(Email.PROPERTY_RECEPTION_DATE); + DecoratorService decoratorService = serviceContext.newService(DecoratorService.class); + Decorator<Date> dateDecorator = decoratorService.getDecoratorByType(Date.class, DecoratorService.DATE); + String projectRef = t("faxtomail.email.projectReference.default", dateDecorator.toString(now)); + email.setProjectReference(projectRef); + modifiedProperties.add(Email.PROPERTY_PROJECT_REFERENCE); - Date now = new Date(); + email.setDemandStatus(DemandStatus.UNTREATED); + modifiedProperties.add(Email.PROPERTY_DEMAND_STATUS); - DecoratorService decoratorService = serviceContext.newService(DecoratorService.class); - Decorator<Date> dateDecorator = decoratorService.getDecoratorByType(Date.class, DecoratorService.DATE); - String projectRef = t("faxtomail.email.projectReference.default", dateDecorator.toString(now)); - email.setProjectReference(projectRef); - modifiedProperties.add(Email.PROPERTY_PROJECT_REFERENCE); + StringBuilder emailSource = new StringBuilder(); + Enumeration<String> headerLines = ((MimeMessage)message).getAllHeaderLines(); + while (headerLines.hasMoreElements()) { + String headerLine = headerLines.nextElement(); + emailSource.append(headerLine).append("\n"); + } + String originalContent = IOUtils.toString(message.getInputStream(), charset); + emailSource.append("\n").append(originalContent); + email.setOriginalEmail(emailSource.toString()); - email.setDemandStatus(DemandStatus.UNTREATED); - modifiedProperties.add(Email.PROPERTY_DEMAND_STATUS); + List<Attachment> attachements = new ArrayList<>(); + Attachment attachment = convertTextToPdf(emailSource.toString(), t("faxtomail.email.content.attachment.fileName")); + attachements.add(attachment); - StringBuilder emailSource = new StringBuilder(); - Enumeration<String> headerLines = ((MimeMessage)message).getAllHeaderLines(); - while (headerLines.hasMoreElements()) { - String headerLine = headerLines.nextElement(); - emailSource.append(headerLine).append("\n"); - } - String originalContent = IOUtils.toString(message.getInputStream(), charset); - emailSource.append("\n").append(originalContent); - email.setOriginalEmail(emailSource.toString()); + if (message.isMimeType("multipart/*")) { + decomposeMultipartEmail(attachements, message, email, emailService); + // } else { + // String content = IOUtils.toString(message.getInputStream(), charset); + // email.setPlainContent(content); + } - List<Attachment> attachements = new ArrayList<>(); - Attachment attachment = convertTextToPdf(emailSource.toString(), email.getObject()); - attachements.add(attachment); + emailService.saveEmail(email, + attachements, + email.getClient() != null ? email.getClient().getCode() : null, + null, + modifiedProperties.toArray(new String[modifiedProperties.size()])); - if (message.isMimeType("multipart/*")) { - decomposeMultipartEmail(attachements, message, email, emailService); -// } else { -// String content = IOUtils.toString(message.getInputStream(), charset); -// email.setPlainContent(content); - } + if (log.isDebugEnabled()) { + log.debug("Message:" +message.getSubject() + " placé dans le dossier " + email.getMailFolder().getName()); + } + // suppression des mails sur le serveur distant (automatique par default) + if (serviceContext.getApplicationConfig().isMailDelete()) { + message.setFlag(Flags.Flag.DELETED, true); + } - emailService.saveEmail(email, - attachements, - email.getClient() != null ? email.getClient().getCode() : null, - null, - modifiedProperties.toArray(new String[modifiedProperties.size()])); - - if (log.isDebugEnabled()) { - log.debug("Message:" +message.getSubject() + " placé dans le dossier " + email.getMailFolder().getName()); + } catch (Exception e) { + log.error("Error while reading the email", e); } - // suppression des mails sur le serveur distant (automatique par default) - if (serviceContext.getApplicationConfig().isMailDelete()) { - message.setFlag(Flags.Flag.DELETED, true); - } } if (log.isDebugEnabled()){ log.debug("End of emails"); Modified: trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties =================================================================== --- trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties 2014-06-28 14:29:21 UTC (rev 284) @@ -34,4 +34,6 @@ com.franciaflex.faxtomail.persistence.entities.MailField.SAV_NB=Quantité de SAV com.franciaflex.faxtomail.persistence.entities.MailField.SENDER=Émetteur com.franciaflex.faxtomail.persistence.entities.MailField.TAKEN_BY=Pris par +faxtomail.email.content.attachment.fileName=contenu du mail faxtomail.email.projectReference.default= +faxtomail.email.subject.re=Re \: %s Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-06-28 14:29:21 UTC (rev 284) @@ -349,6 +349,29 @@ </label> </div> + <div class="form-group" ng-if="selectedMailFolder.$parent"> + <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMailAddress" ng-value="false" /> + Hériter de l'adresse de réponse pour les rejets :</label> + <input type="text" class="form-control" disabled + ng-model="parentScopeValues.rejectResponseMailAddress" ng-if="!selectedMailFolder.useCurrentLevelRejectResponseMailAddress"> + </div> + <div class="form-group"> + <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMailAddress" ng-value="true" ng-if="selectedMailFolder.$parent" /> + Définir l'adresse de réponse pour les rejets :</label> + <input type="text" class="form-control" ng-model="selectedMailFolder.rejectResponseMailAddress" ng-if="selectedMailFolder.useCurrentLevelRejectResponseMailAddress || !selectedMailFolder.$parent"> + </div> + <div class="form-group" ng-if="selectedMailFolder.$parent"> + <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMessage" ng-value="false" /> + Hériter du message de réponse pour les rejets :</label> + <textarea type="text" class="form-control" disabled + ng-model="parentScopeValues.rejectResponseMessage" ng-if="!selectedMailFolder.useCurrentLevelRejectResponseMessage"></textarea> + </div> + <div class="form-group"> + <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMessage" ng-value="true" ng-if="selectedMailFolder.$parent" /> + Définir le message de réponse pour les rejets :</label> + <textarea class="form-control" ng-model="selectedMailFolder.rejectResponseMessage" ng-if="selectedMailFolder.useCurrentLevelRejectResponseMessage || !selectedMailFolder.$parent"></textarea> + </div> + <hr /> <div class="form-group" ng-if="selectedMailFolder.$parent"> @@ -382,30 +405,6 @@ <input type="text" class="form-control" ng-model="selectedMailFolder.faxDomain" ng-if="selectedMailFolder.useCurrentLevelFaxDomain || !selectedMailFolder.$parent"> </div> - <hr /> - - <div class="form-group" ng-if="selectedMailFolder.$parent"> - <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMailAddress" ng-value="false" /> - Hériter de l'adresse de réponse pour les rejets :</label> - <input type="text" class="form-control" disabled - ng-model="parentScopeValues.rejectResponseMailAddress" ng-if="!selectedMailFolder.useCurrentLevelRejectResponseMailAddress"> - </div> - <div class="form-group"> - <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMailAddress" ng-value="true" ng-if="selectedMailFolder.$parent" /> - Définir l'adresse de réponse pour les rejets :</label> - <input type="text" class="form-control" ng-model="selectedMailFolder.rejectResponseMailAddress" ng-if="selectedMailFolder.useCurrentLevelRejectResponseMailAddress || !selectedMailFolder.$parent"> - </div> - <div class="form-group" ng-if="selectedMailFolder.$parent"> - <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMessage" ng-value="false" /> - Hériter du message de réponse pour les rejets :</label> - <textarea type="text" class="form-control" disabled - ng-model="parentScopeValues.rejectResponseMessage" ng-if="!selectedMailFolder.useCurrentLevelRejectResponseMessage"></textarea> - </div> - <div class="form-group"> - <label><input type="radio" ng-model="selectedMailFolder.useCurrentLevelRejectResponseMessage" ng-value="true" ng-if="selectedMailFolder.$parent" /> - Définir le message de réponse pour les rejets :</label> - <textarea class="form-control" ng-model="selectedMailFolder.rejectResponseMessage" ng-if="selectedMailFolder.useCurrentLevelRejectResponseMessage || !selectedMailFolder.$parent"></textarea> - </div> </div> </div> </div> @@ -721,7 +720,7 @@ <label><input type="checkbox" ng-model="readRightGroup" ng-checked="selectedMailFolder.readRightGroups.containsByTopiaId(group)" - ng-disabled="parentScopeValues.readRightGroups.containsByTopiaId(group) || selectedMailFolder.writeRightGroups.containsByTopiaId(user)" + ng-disabled="parentScopeValues.readRightGroups.containsByTopiaId(group) || selectedMailFolder.writeRightGroups.containsByTopiaId(group)" ng-change="changeReadRightGroup(group)"> Lecture</label> <label><input type="checkbox" ng-model="writeRightGroup" Modified: trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-27 16:43:13 UTC (rev 283) +++ trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-28 14:29:21 UTC (rev 284) @@ -332,7 +332,13 @@ topiaId: "new_" + guid(), name: name, children: [], - archiveFolder: false + useCurrentLevelEtatAttente: true, + useCurrentLevelTableColumns: true, + useCurrentLevelFaxDomain: true, + useCurrentLevelEdiFolder: true, + useCurrentLevelRejectResponseMessage: true, + useCurrentLevelRejectResponseMailAddress: true, + archiveContainer: false }; $scope.mailFolders.push(newRoot); $scope._updateFlatMailFolders(); // update flat map @@ -888,6 +894,7 @@ $scope.selectedMailFolder.writeRightGroups.splice(index, 1); } else { $scope.selectedMailFolder.writeRightGroups.push(group); + $scope.selectedMailFolder.readRightGroups.push(group); } }; // change le droit de déplacement du groupe
participants (1)
-
kmorin@users.forge.codelutin.com