branch feature/9526 updated (b42ebec7 -> a6223cc3)
This is an automated email from the git hooks/post-receive script. New change to branch feature/9526 in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from b42ebec7 refs #9526 : Pris par sur le clic droit des demandes sélectionnées - WIP pour Kevin new a6223cc3 refs #9526 : Pris par sur le clic droit des demandes sélectionnées - Fonctionne jusqu'au bout pour une demande 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 a6223cc3ed4606692aa3e062e5113f9ab1232398 Author: Jean Couteau <jean.couteau@gmail.com> Date: Wed Dec 13 09:23:26 2017 +0100 refs #9526 : Pris par sur le clic droit des demandes sélectionnées - Fonctionne jusqu'au bout pour une demande RAF : - Gérer les droits (tous les users ayant les droits ne sont pas proposés) - Gérer la multi-sélection Summary of changes: .../faxtomail/services/service/LdapService.java | 3 ++ .../services/service/LdapServiceImpl.java | 9 +++++ .../services/service/MailFolderServiceImpl.java | 22 ++++++++---- .../content/demande/TakenByFormUIHandler.java | 40 ++++++++++++++++------ .../demande/actions/OpenTakenByFormAction.java | 39 +++------------------ 5 files changed, 62 insertions(+), 51 deletions(-) -- 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/9526 in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit a6223cc3ed4606692aa3e062e5113f9ab1232398 Author: Jean Couteau <jean.couteau@gmail.com> Date: Wed Dec 13 09:23:26 2017 +0100 refs #9526 : Pris par sur le clic droit des demandes sélectionnées - Fonctionne jusqu'au bout pour une demande RAF : - Gérer les droits (tous les users ayant les droits ne sont pas proposés) - Gérer la multi-sélection --- .../faxtomail/services/service/LdapService.java | 3 ++ .../services/service/LdapServiceImpl.java | 9 +++++ .../services/service/MailFolderServiceImpl.java | 22 ++++++++---- .../content/demande/TakenByFormUIHandler.java | 40 ++++++++++++++++------ .../demande/actions/OpenTakenByFormAction.java | 39 +++------------------ 5 files changed, 62 insertions(+), 51 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java index 9da50dd2..579351a4 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java @@ -25,6 +25,7 @@ package com.franciaflex.faxtomail.services.service; */ import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroup; import com.franciaflex.faxtomail.services.FaxToMailService; import com.franciaflex.faxtomail.services.service.ldap.AuthenticationException; import com.franciaflex.faxtomail.services.service.ldap.Contact; @@ -44,4 +45,6 @@ public interface LdapService extends FaxToMailService { FaxToMailUser getUserFromPrincipal(String login) throws AuthenticationException; List<Contact> getUserAndEmails(); + + List<FaxToMailUser> getUsersForGroup(FaxToMailUserGroup group); } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java index 023992bb..cfc9399d 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java @@ -443,4 +443,13 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ return result; } + + public List<FaxToMailUser> getUsersForGroup(FaxToMailUserGroup group){ + FaxToMailUserTopiaDao faxtomailUserDao = getPersistenceContext().getFaxToMailUserDao(); + FaxToMailUserGroupTopiaDao faxtomailUserGroupDao = getPersistenceContext().getFaxToMailUserGroupDao(); + + List<FaxToMailUser> users = faxtomailUserDao.forUserGroupsContains(group).findAll(); + return users; + + } } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java index 85e33a11..d4d64d28 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java @@ -27,6 +27,7 @@ package com.franciaflex.faxtomail.services.service; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailTopiaDao; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroup; import com.franciaflex.faxtomail.persistence.entities.MailFilter; import com.franciaflex.faxtomail.persistence.entities.MailFilterTopiaDao; import com.franciaflex.faxtomail.persistence.entities.MailFolder; @@ -355,13 +356,22 @@ public class MailFolderServiceImpl extends FaxToMailServiceSupport implements Ma @Override public Collection<FaxToMailUser> getUsersForFolder(String topiaId) { - MailFolderTopiaDao dao = getPersistenceContext().getMailFolderDao(); - MailFolder mailFolder = dao.forTopiaIdEquals(topiaId) - .findUnique(); - System.out.println(mailFolder); + Collection<FaxToMailUser> users = new ArrayList<>(); + MailFolder mailFolder = getMailFolder(topiaId); + LdapService ldapService = serviceContext.getLdapService(); + + Hibernate.initialize(mailFolder.getWriteRightUsers()); - System.out.println(mailFolder.getWriteRightUsers()); - Collection<FaxToMailUser> users = mailFolder.getWriteRightUsers(); + Hibernate.initialize(mailFolder.getWriteRightGroups()); + users.addAll(mailFolder.getWriteRightUsers()); + Collection<FaxToMailUserGroup> groups = mailFolder.getWriteRightGroups(); + for (FaxToMailUserGroup group:groups) { + users.addAll(ldapService.getUsersForGroup(group)); + } + + if (mailFolder.getParent() != null) { + users.addAll(getUsersForFolder(mailFolder.getParent().getTopiaId())); + } return users; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java index 6c3867fb..1d41605b 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/TakenByFormUIHandler.java @@ -1,30 +1,25 @@ package com.franciaflex.faxtomail.ui.swing.content.demande; +import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; -import com.franciaflex.faxtomail.persistence.entities.MailFolder; -import com.franciaflex.faxtomail.services.service.MailFolderService; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; +import com.franciaflex.faxtomail.services.service.EmailService; +import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import jaxx.runtime.validator.swing.SwingValidator; import org.nuiton.jaxx.application.swing.util.Cancelable; import javax.swing.*; import java.awt.*; - -import java.util.ArrayList; import java.util.Collection; -import java.util.List; public class TakenByFormUIHandler extends AbstractFaxToMailUIHandler<TakenByFormUIModel, TakenByFormUI> implements Cancelable { - - - @Override public void beforeInit(TakenByFormUI ui) { super.beforeInit(ui); TakenByFormUIModel model = new TakenByFormUIModel(); - this.ui.setContextValue(model); } @@ -52,8 +47,7 @@ public class TakenByFormUIHandler extends AbstractFaxToMailUIHandler<TakenByForm @Override protected JComponent getComponentToFocus() { - //TODO JC focus on list - return getUI(); + return getUI().getTakenByComboBox(); } @Override @@ -62,7 +56,31 @@ public class TakenByFormUIHandler extends AbstractFaxToMailUIHandler<TakenByForm } public void validate(){ + Collection<DemandeUIModel> demands = getModel().getDemandsToTake(); + FaxToMailUser user = (FaxToMailUser) getUI().getTakenByComboBox().getSelectedItem(); + + for (DemandeUIModel demand:demands){ + demand.setTakenBy(user); + } + + FaxToMailUIContext context = getContext(); + FaxToMailServiceContext serviceContext = context.newServiceContext(); + EmailService emailService = serviceContext.getEmailService(); + + for (DemandeUIModel demand : getModel().getDemandsToTake()) { + + String topiaId = demand.getTopiaId(); + Email persistedEmail = emailService.getFullEmailById(topiaId); + + FaxToMailUser currentUser = context.getCurrentUser(); + Email email = demand.toEntity(persistedEmail); + + email = emailService.saveEmail(email, currentUser, Email.PROPERTY_TAKEN_BY); + demand.fromEntity(email); + } + + closeFrame(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java index ae1f9ee2..dafedd3f 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenTakenByFormAction.java @@ -46,12 +46,12 @@ public class OpenTakenByFormAction extends AbstractFaxToMailAction<DemandeListUI demandsToTake = new ArrayList<>(); List<DemandeUIModel> currentEmails = getModel().getSelectedEmails(); - String notTakableDemandTitles = ""; + StringBuilder notTakableDemandTitles = new StringBuilder(); for (DemandeUIModel demandeUIModel : currentEmails) { // is the demand takable? if (!demandeUIModel.isEditable() || !handler.isActionEnabled(demandeUIModel, MailAction.TAKENBY)) { - notTakableDemandTitles += "- " + demandeUIModel.getTitle() + "<br/>"; + notTakableDemandTitles.append("- ").append(demandeUIModel.getTitle()).append("<br/>"); } else { demandsToTake.add(demandeUIModel); @@ -65,7 +65,7 @@ public class OpenTakenByFormAction extends AbstractFaxToMailAction<DemandeListUI } else { String message; - if (!notTakableDemandTitles.isEmpty()) { + if (!(notTakableDemandTitles.length() == 0)) { message = t("faxtomail.alert.takesWithNotTakableConfirmation.message", notTakableDemandTitles); } else if (demandsToTake.size() == 1) { @@ -103,50 +103,21 @@ public class OpenTakenByFormAction extends AbstractFaxToMailAction<DemandeListUI model.setDemandsToTake(demandsToTake); - - - MailFolderService mailFolderService = getContext().newServiceContext().getMailFolderService(); - System.out.println(getContext().getCurrentFolderEmails()); MailFolder folder = demand.getMailFolder(); - System.out.println(folder); List<FaxToMailUser> users = (List<FaxToMailUser>)mailFolderService.getUsersForFolder(folder.getTopiaId()); - model.setUsers(users); + frameContent.setContextValue(model); } } - /**@Override - public void doAction() throws Exception { - List<DemandeUIModel> demands = getModel().getSelectedEmails(); - - if (StringUtils.isNotBlank(demand.getTopiaId())) { - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - Email email = serviceContext.getEmailService().getFullEmailById(demand.getTopiaId(), getContext().getCurrentUser()); - demand.fromEntity(email); - - getContext().setCurrentEmail(demand); - - frameContent = new ReplyFormUI(getUI()); - ReplyFormUIModel model = frameContent.getModel(); - - SigningForDomain signingForDomain = null; - if (!demand.isFax() && demand.getRecipient() != null) { - signingForDomain = getContext().newServiceContext().getConfigurationService().getSigningForEmailAddress(demand.getRecipient()).orNull(); - } - model.setSigning(signingForDomain); - - model.setForward(true); - model.setOriginalDemand(demand); - } - } **/ - @Override public void postSuccessAction() { super.postSuccessAction(); + frameContent.getTakenByComboBox().addItems(frameContent.getModel().getUsers()); frame = getHandler().openModalFrame(frameContent, t("faxtomail.takenby.modalTitle"), new Dimension(800, 600)); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm