This is an automated email from the git hooks/post-receive script. New commit to branch feature/7060 in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 8730ee6a2c2baea3c4ebe15f430df7797cf6947f Author: Kevin Morin <morin@codelutin.com> Date: Tue May 5 18:26:31 2015 +0200 - fin de l'interface d'admin des marques par nom de domaine - ajout d'un bouton pour choisir parmi les clients détectés lors de la réception --- .../persistence/entities/BrandsForDomainImpl.java | 31 ++++++++------------- .../src/main/xmi/faxtomail.properties | 3 +- faxtomail-persistence/src/main/xmi/faxtomail.zargo | Bin 31130 -> 31055 bytes .../faxtomail/services/DecoratorServiceImpl.java | 2 ++ .../services/service/EmailServiceImpl.java | 1 + .../services/service/InitFaxToMailServiceImpl.java | 23 +++++++++------ ...s_for_domain_and_matching_clients_in_emails.sql | 5 +++- ...s_for_domain_and_matching_clients_in_emails.sql | 14 +++++++--- .../ui/swing/content/demande/DemandeUI.css | 5 ++++ .../ui/swing/content/demande/DemandeUI.jaxx | 25 ++++++++++------- .../ui/swing/content/demande/DemandeUIHandler.java | 25 ++++++++++++++--- .../ui/swing/content/demande/DemandeUIModel.java | 14 ++++++++-- .../src/main/resources/icons/action-warning.png | Bin 0 -> 666 bytes .../web/action/admin/ConfigurationAction.java | 1 - .../WEB-INF/content/admin/configuration-input.jsp | 4 +-- .../src/main/webapp/js/configuration.js | 14 +++++++--- 16 files changed, 109 insertions(+), 58 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/BrandsForDomainImpl.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/BrandsForDomainImpl.java index 03df49c..03d42b6 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/BrandsForDomainImpl.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/BrandsForDomainImpl.java @@ -1,41 +1,32 @@ package com.franciaflex.faxtomail.persistence.entities; -import com.google.gson.reflect.TypeToken; +import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; -import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; /** * @author Kevin Morin (Code Lutin) - * @since x.x + * @since 1.2 */ public class BrandsForDomainImpl extends BrandsForDomainAbstract { - private static final Type LIST_STRING_GSON_TYPE = new TypeToken<List<String>>() {}.getType(); - @Override public void setBrands(List<String> brands) { - String json = AbstractFaxToMailTopiaDao.GSON_INSTANCE.toJson(brands); - setBrandsJson(json); + String brandsAsString = StringUtils.join(brands, ","); + setBrandsJson(brandsAsString); } @Override public List<String> getBrands() { String json = getBrandsJson(); - List<String> brands = AbstractFaxToMailTopiaDao.GSON_INSTANCE.fromJson(json, LIST_STRING_GSON_TYPE); - return brands; - } - - @Override - public void setBrands(String brands) { - List<String> brandList = new ArrayList<>(); - if (brands != null) { - String[] brandArray = brands.split(","); - for (String brand : brandArray) { - brandList.add(brand.trim()); - } + List<String> brands; + if (json == null) { + brands = new ArrayList<>(); + } else { + brands = Lists.newArrayList(json.split(",")); } - setBrands(brandList); + return brands; } } diff --git a/faxtomail-persistence/src/main/xmi/faxtomail.properties b/faxtomail-persistence/src/main/xmi/faxtomail.properties index a3e6a5b..e3aa8ae 100644 --- a/faxtomail-persistence/src/main/xmi/faxtomail.properties +++ b/faxtomail-persistence/src/main/xmi/faxtomail.properties @@ -134,4 +134,5 @@ com.franciaflex.faxtomail.persistence.entities.MailLock.attribute.lockOn.tagvalu com.franciaflex.faxtomail.persistence.entities.MailLock.attribute.lockOn.tagvalue.unique=true # BrandsForDomain -com.franciaflex.faxtomail.persistence.entities.BrandsForDomain.attribute.domain.tagvalue.notNull=true \ No newline at end of file +com.franciaflex.faxtomail.persistence.entities.BrandsForDomain.attribute.domain.tagvalue.notNull=true +com.franciaflex.faxtomail.persistence.entities.BrandsForDomain.attribute.domain.stereotype=unique \ No newline at end of file diff --git a/faxtomail-persistence/src/main/xmi/faxtomail.zargo b/faxtomail-persistence/src/main/xmi/faxtomail.zargo index 2026af5..6a304e1 100644 Binary files a/faxtomail-persistence/src/main/xmi/faxtomail.zargo and b/faxtomail-persistence/src/main/xmi/faxtomail.zargo differ diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorServiceImpl.java index b21ebb7..7492b13 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorServiceImpl.java @@ -26,6 +26,7 @@ package com.franciaflex.faxtomail.services; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.AttachmentFile; +import com.franciaflex.faxtomail.persistence.entities.Client; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.HasLabel; import com.franciaflex.faxtomail.persistence.entities.Reply; @@ -138,6 +139,7 @@ public class DecoratorServiceImpl extends FaxToMailServiceSupport implements Dec }); registerMultiJXPathDecorator(Reply.class, "${sentDate}$s#${subject}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(FaxToMailUser.class, "${lastName}$s#${firstName}$s#${trigraph}$s", SEPARATOR, " "); + registerMultiJXPathDecorator(Client.class, "${code}$s#${name}$s#${company}$s", SEPARATOR, " - "); } }; } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index fc3275e..a440981 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -178,6 +178,7 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe Hibernate.initialize(rangeRow.getRange()); } } + Hibernate.initialize(email.getMatchingClients()); Hibernate.initialize(email.getReplies()); Hibernate.initialize(email.getAttachment()); Collection<History> histories = email.getHistory(); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java index 4d39849..cab3a51 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailServiceImpl.java @@ -40,6 +40,8 @@ import com.franciaflex.faxtomail.persistence.entities.HistoryType; import com.franciaflex.faxtomail.persistence.entities.MailField; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.MailFolderTopiaDao; +import com.franciaflex.faxtomail.persistence.entities.OriginalEmail; +import com.franciaflex.faxtomail.persistence.entities.OriginalEmailTopiaDao; import com.franciaflex.faxtomail.persistence.entities.Priority; import com.franciaflex.faxtomail.persistence.entities.PriorityTopiaDao; import com.franciaflex.faxtomail.persistence.entities.Range; @@ -209,6 +211,7 @@ public class InitFaxToMailServiceImpl extends FaxToMailServiceSupport implements // fixme seed to be used in test Random random = new Random(1234); EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); + OriginalEmailTopiaDao originalEmailDao = getPersistenceContext().getOriginalEmailDao(); HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); RangeRowTopiaDao rangeRowDao = getPersistenceContext().getRangeRowDao(); @@ -309,12 +312,12 @@ public class InitFaxToMailServiceImpl extends FaxToMailServiceSupport implements if (fxClientsStream != null) { List<Client> clients = getReferentielService().importClients(fxClientsStream); - createEmails(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, cyrilFolder, cyril); - createEmails(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, claireFolder, claire); - createEmails(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, agatheFolder, agathe); - createEmails(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, marcFolder, marc); - createEmails(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, fredericFolder, frederic); - createEmails(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, jeanneFolder, jeanne); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, cyrilFolder, cyril); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, claireFolder, claire); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, agatheFolder, agathe); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, marcFolder, marc); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, fredericFolder, frederic); + createEmails(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, jeanneFolder, jeanne); } } catch(Exception e) { @@ -325,12 +328,13 @@ public class InitFaxToMailServiceImpl extends FaxToMailServiceSupport implements } } - protected void createEmails(Random random, HistoryTopiaDao historyDao, RangeRowTopiaDao rangeRowDao, EmailTopiaDao emailDao, + protected void createEmails(Random random, HistoryTopiaDao historyDao, RangeRowTopiaDao rangeRowDao, + EmailTopiaDao emailDao, OriginalEmailTopiaDao originalEmailDao, List<Range> ranges, List<Client> clients, List<DemandType> types, List<Priority> priorities, MailFolder folder, FaxToMailUser user) throws InvalidClientException { int r = random.nextInt(100) + 50; for (int i = 0 ; i < r ; i++) { - createEmail(random, historyDao, rangeRowDao, emailDao, ranges, clients, types, priorities, folder, user); + createEmail(random, historyDao, rangeRowDao, emailDao, originalEmailDao, ranges, clients, types, priorities, folder, user); } } @@ -338,6 +342,7 @@ public class InitFaxToMailServiceImpl extends FaxToMailServiceSupport implements HistoryTopiaDao historyDao, RangeRowTopiaDao rangeRowDao, EmailTopiaDao emailDao, + OriginalEmailTopiaDao originalEmailDao, List<Range> ranges, List<Client> clients, List<DemandType> types, @@ -389,7 +394,7 @@ public class InitFaxToMailServiceImpl extends FaxToMailServiceSupport implements Email.PROPERTY_MAIL_FOLDER, folder, Email.PROPERTY_DEMAND_STATUS, opened ? DemandStatus.IN_PROGRESS : DemandStatus.UNTREATED, Email.PROPERTY_HISTORY, Lists.newArrayList(history), - Email.PROPERTY_ORIGINAL_EMAIL, "Demo data"); + Email.PROPERTY_ORIGINAL_EMAIL, originalEmailDao.create(OriginalEmail.PROPERTY_CONTENT, "Demo data")); if (opened) { diff --git a/faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql b/faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql index 3b83474..47155d7 100644 --- a/faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql +++ b/faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql @@ -4,7 +4,7 @@ CREATE TABLE BrandsForDomain ( topiaId VARCHAR(255) NOT NULL, topiaVersion BIGINT NOT NULL, topiaCreateDate TIMESTAMP, - domainName longvarchar NOT NULL, + domainName longvarchar NOT NULL UNIQUE, brandsJson longvarchar, PRIMARY KEY (topiaId) ); @@ -15,12 +15,15 @@ create table email_matchingClients ( email varchar(255) not null, matchingClients varchar(255) not null ); + alter table email_matchingClients add constraint FK_IICRYCV6TYE2EFQU4JTUM9CS1 foreign key (matchingClients) references client; + alter table email_matchingClients add constraint FK_CDHGKIXMOOF90L83HNWB83A35 foreign key (email) references email; + CREATE INDEX idx_Email_matchingClients ON email_matchingClients(email); \ No newline at end of file diff --git a/faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql b/faxtomail-service/src/main/resources/db/migration/sqlserver/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql similarity index 84% copy from faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql copy to faxtomail-service/src/main/resources/db/migration/sqlserver/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql index 3b83474..6efe734 100644 --- a/faxtomail-service/src/main/resources/db/migration/h2/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql +++ b/faxtomail-service/src/main/resources/db/migration/sqlserver/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql @@ -3,11 +3,12 @@ CREATE TABLE BrandsForDomain ( topiaId VARCHAR(255) NOT NULL, topiaVersion BIGINT NOT NULL, - topiaCreateDate TIMESTAMP, - domainName longvarchar NOT NULL, - brandsJson longvarchar, + topiaCreateDate datetime2, + domainName VARCHAR(MAX) NOT NULL UNIQUE, + brandsJson VARCHAR(MAX), PRIMARY KEY (topiaId) ); +GO -- add matching clients in email @@ -15,12 +16,17 @@ create table email_matchingClients ( email varchar(255) not null, matchingClients varchar(255) not null ); +GO + alter table email_matchingClients add constraint FK_IICRYCV6TYE2EFQU4JTUM9CS1 foreign key (matchingClients) references client; + alter table email_matchingClients add constraint FK_CDHGKIXMOOF90L83HNWB83A35 foreign key (email) references email; -CREATE INDEX idx_Email_matchingClients ON email_matchingClients(email); \ No newline at end of file + +CREATE INDEX idx_Email_matchingClients ON email_matchingClients(email); +GO \ No newline at end of file diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css index 7661cfd..9e482c5 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css @@ -87,6 +87,11 @@ JTextField, JXTable, BeanFilterableComboBox, #commentField, ButtonAttachment, Bu text: {model.getClientBrand()}; } +#warningClient { + actionIcon: warning; + visible: { model.getMatchingClients() != null && model.getMatchingClients().size() > 1 }; +} + #docTypeLabel { text: "faxtomail.demande.demandType.label"; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx index 82b420c..85a81b1 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx @@ -78,6 +78,8 @@ <field name="comment" component="commentPane"/> </BeanValidator> + <JPopupMenu id="matchingClientsPopup"/> + <JToolBar id='topToolBar'> <ButtonDemandReplies id="demandRepliesButton" constructorParams="model"/> @@ -100,7 +102,7 @@ <cell> <JLabel id='receivedDateLabel'/> </cell> - <cell columns="3"> + <cell columns="4"> <JLabel id='receivedDateField'/> </cell> </row> @@ -108,7 +110,7 @@ <cell> <JLabel id='senderLabel'/> </cell> - <cell columns="3"> + <cell columns="4"> <JLabel id='senderField'/> </cell> </row> @@ -116,7 +118,7 @@ <cell> <JLabel id='objectLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <JTextField id='objectField' onKeyReleased='handler.setText(event, "object")'/> </cell> @@ -125,6 +127,9 @@ <cell> <JLabel id='clientLabel'/> </cell> + <cell> + <JButton id='warningClient' onActionPerformed="handler.showMatchingClientsPopup(event)"/> + </cell> <cell weightx='1'> <JTextField id='clientField' onKeyReleased='handler.setText(event, "clientCode")'/> @@ -142,7 +147,7 @@ <cell> <JLabel id='docTypeLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <BeanFilterableComboBox id='docTypeComboBox' constructorParams='this' genericType="DemandType"/> @@ -152,7 +157,7 @@ <cell> <JLabel id='priorityLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <BeanFilterableComboBox id='priorityComboBox' constructorParams='this' genericType="Priority"/> @@ -162,7 +167,7 @@ <cell> <JLabel id='projectReferenceLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <JTextField id='projectReferenceField' onKeyReleased='handler.setText(event, "projectReference")'/> </cell> @@ -171,7 +176,7 @@ <cell> <JLabel id='companyReferenceLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <JTextField id='companyReferenceField' onKeyReleased='handler.setText(event, "companyReference")'/> </cell> @@ -180,7 +185,7 @@ <cell> <JLabel id='waitingStateLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <BeanFilterableComboBox id='waitingStateComboBox' constructorParams='this' genericType="WaitingState"/> @@ -190,7 +195,7 @@ <cell> <JLabel id='statusLabel'/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <JPanel layout="{new BorderLayout()}"> <JLabel id='statusField' constraints='BorderLayout.NORTH'/> <BeanFilterableComboBox id='statusComboBox' @@ -204,7 +209,7 @@ <cell> <JLabel id="takenByLabel"/> </cell> - <cell weightx='1' columns="3"> + <cell weightx='1' columns="4"> <JLabel id="takenByField"/> </cell> </row> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java index 2455bf7..d78fd1d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java @@ -23,6 +23,7 @@ package com.franciaflex.faxtomail.ui.swing.content.demande; */ import com.franciaflex.faxtomail.persistence.entities.Attachment; +import com.franciaflex.faxtomail.persistence.entities.Client; import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.DemandType; import com.franciaflex.faxtomail.persistence.entities.Email; @@ -64,6 +65,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.TableCellEditor; import java.awt.*; +import java.awt.event.ActionEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; @@ -377,10 +379,10 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, } FaxToMailServiceContext serviceContext = getContext().newServiceContext(); Email email = serviceContext.getEmailService().addToHistory(topiaId, - HistoryType.ATTACHMENT_OPENING, - getContext().getCurrentUser(), - new Date(), - filename); + HistoryType.ATTACHMENT_OPENING, + getContext().getCurrentUser(), + new Date(), + filename); getModel().setHistory(email.getHistory()); } } @@ -418,6 +420,16 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, leftVerticalSplitPanel.setName("leftVerticalSplitPanel" + FaxToMailUIUtil.isRangePanelVisible(model.getDemandType())); getContext().getSwingSession().add(leftVerticalSplitPanel, true); + JPopupMenu menu = ui.getMatchingClientsPopup(); + for (final Client client : model.getMatchingClients()) { + menu.add(new JMenuItem(new AbstractAction(decorate(client)) { + @Override + public void actionPerformed(ActionEvent e) { + getModel().setClient(client); + } + })); + } + listModelIsModify(getModel()); } @@ -552,4 +564,9 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, } return result; } + + public void showMatchingClientsPopup(ActionEvent event) { + JButton button = (JButton) event.getSource(); + getUI().getMatchingClientsPopup().show(button, 0, button.getBounds().height); + } } 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 1c0ffa9..bbc845f 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 @@ -382,8 +382,8 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU Object oldValue = getClient(); editObject.setClient(client); if (client != null) { - this.clientCode = client.getCode(); - this.clientBrand = client.getBrand(); + setClientCode(client.getCode()); + setClientBrand(client.getBrand()); } firePropertyChanged(Email.PROPERTY_CLIENT, oldValue, client); } @@ -406,6 +406,16 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU return clientBrand; } + public Collection<Client> getMatchingClients() { + return editObject.getMatchingClients(); + } + + public void setMatchingClients(Collection<Client> matchingClients) { + Object oldValue = getMatchingClients(); + editObject.setMatchingClients(matchingClients); + firePropertyChanged(Email.PROPERTY_MATCHING_CLIENTS, oldValue, matchingClients); + } + public void setWaitingState(WaitingState waitingState) { Object oldValue = getWaitingState(); editObject.setWaitingState(waitingState); diff --git a/faxtomail-ui-swing/src/main/resources/icons/action-warning.png b/faxtomail-ui-swing/src/main/resources/icons/action-warning.png new file mode 100644 index 0000000..628cf2d Binary files /dev/null and b/faxtomail-ui-swing/src/main/resources/icons/action-warning.png differ diff --git a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java index c690119..2f6ce52 100644 --- a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java +++ b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java @@ -219,7 +219,6 @@ public class ConfigurationAction extends FaxToMailActionSupport implements Prepa } public void setBrandsForDomainsJson(String json) { - System.out.println(json); Type type = new TypeToken<List<BrandsForDomain>>() {}.getType(); this.brandsForDomains = getGson().fromJson(json, type); } diff --git a/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp b/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp index 145658c..f880720 100644 --- a/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp +++ b/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp @@ -1195,7 +1195,7 @@ <tbody> <tr ng-repeat="brandsForDomain in brandsForDomains"> <td>{{brandsForDomain.domainName}}</td> - <td>{{brandsForDomain.brands}}</td> + <td>{{brandsForDomain.brandsJson}}</td> <td> <a class="btn btn-danger btn-xs" ng-click="removeBrandsForDomain($index)"> <span class="glyphicon glyphicon-remove"></span> @@ -1219,7 +1219,7 @@ </div> <div class="form-group col-xs-5"> <label for="brandsForDomainBrands" class="control-label">Marques :</label> - <input id="brandsForDomainBrands" name="newBrandsForDomainBrands" type="text" class="form-control" ng-model="newBrandsForDomain.brands" ng-minlength="1" /> + <input id="brandsForDomainBrands" name="newBrandsForDomainBrands" type="text" class="form-control" ng-model="newBrandsForDomain.brands" ng-list ng-minlength="1" /> </div> <div class="form-group col-xs-2"> <br/> diff --git a/faxtomail-ui-web/src/main/webapp/js/configuration.js b/faxtomail-ui-web/src/main/webapp/js/configuration.js index fa4f193..5b5dc75 100644 --- a/faxtomail-ui-web/src/main/webapp/js/configuration.js +++ b/faxtomail-ui-web/src/main/webapp/js/configuration.js @@ -1230,10 +1230,16 @@ ConfigurationModule.controller('ConfigurationBrandsForDomainController', ['$scop // ajout d'un nouveau domaine $scope.addBrandsForDomain = function() { - console.log($scope.newBrandsForDomain); - $scope.brandsForDomains.push($scope.newBrandsForDomain); - $scope.newBrandsForDomain = {}; - $scope.addBrandsForDomainForm.$setPristine(); + if ($scope.brandsForDomains.indexOfBy('domainName', $scope.newBrandsForDomain) != -1) { + $window.alert("Ce nom de domaine est déjà configuré !"); + + } else { + var newBrandsForDomain = $scope.newBrandsForDomain; + newBrandsForDomain.brandsJson = newBrandsForDomain.brands.toString(); + $scope.brandsForDomains.push(newBrandsForDomain); + $scope.newBrandsForDomain = {}; + $scope.addBrandsForDomainForm.$setPristine(); + } }; // suppression d'un domaine -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.