branch feature/7060 updated (a4e927e -> 8730ee6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7060 in repository faxtomail. See http://git.codelutin.com/faxtomail.git from a4e927e - ajout des marques par domaine dans le modele - ajout d'une liste de clients qui matchent lors de la réception - interface admin bien avancée new 8730ee6 - 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 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: 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 Summary of changes: .../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(-) copy faxtomail-service/src/main/resources/db/migration/{h2 => sqlserver}/V1_2_0_761__add_brands_for_domain_and_matching_clients_in_emails.sql (84%) create mode 100644 faxtomail-ui-swing/src/main/resources/icons/action-warning.png -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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>.
participants (1)
-
codelutin.com scm