01/01: refs #9526 : Pris par sur le clic droit des demandes sélectionnées - Fonctionne jusqu'au bout pour une demande
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