Faxtomail-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
June 2014
- 6 participants
- 194 discussions
r301 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search faxtomail-ui-swing/src/main/resources/i18n
by echatellier@users.forge.codelutin.com 30 Jun '14
by echatellier@users.forge.codelutin.com 30 Jun '14
30 Jun '14
Author: echatellier
Date: 2014-06-30 18:35:30 +0200 (Mon, 30 Jun 2014)
New Revision: 301
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/301
Log:
Application de la securit?\195?\169 ?\195?\160 la recherche
Modified:
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.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/MailFolderService.java
trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java
trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestData.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties
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-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-06-30 16:35:30 UTC (rev 301)
@@ -27,6 +27,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -39,16 +40,20 @@
* Search for email using filter.
*
* @param emailFilter email filter
- * @param user user (for rights compute)
+ * @param readMailFolders readable mail folders (for rights compute)
* @param pagination pagination
* @return email list matching query filters
*/
- public PaginationResult<Email> search(EmailFilter emailFilter, FaxToMailUser user, PaginationParameter pagination) {
+ public PaginationResult<Email> search(EmailFilter emailFilter, Set<MailFolder> readMailFolders, PaginationParameter pagination) {
StringBuilder query = new StringBuilder("FROM " + Email.class.getName() + " E");
- query.append(" WHERE 1 = 1");
Map<String, Object> args = new HashMap<>();
+ // apply security
+ //query.append(" WHERE E." + Email.PROPERTY_MAIL_FOLDER + " in (:readMailFolders)");
+ //args.put("readMailFolders", readMailFolders);
+ query.append(" WHERE 1 = 1");
+
// email minReceptionDate
if (emailFilter.getMinReceptionDate() != null) {
query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_RECEPTION_DATE);
@@ -305,9 +310,9 @@
query.append(")");
}
- // email comment
+ // email message
if (StringUtils.isNotBlank(emailFilter.getMessage())) {
- query.append(" AND lower(E." + Email.PROPERTY_COMMENT + ") LIKE lower(:" + EmailFilter.PROPERTY_MESSAGE + ")");
+ query.append(" AND lower(E." + Email.PROPERTY_ORIGINAL_EMAIL + ") LIKE lower(:" + EmailFilter.PROPERTY_MESSAGE + ")");
args.put(EmailFilter.PROPERTY_MESSAGE, "%" + emailFilter.getMessage() + "%");
}
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-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-06-30 16:35:30 UTC (rev 301)
@@ -47,12 +47,6 @@
import javax.activation.FileDataSource;
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;
@@ -75,25 +69,33 @@
import com.franciaflex.faxtomail.persistence.entities.AttachmentFileImpl;
import com.franciaflex.faxtomail.persistence.entities.AttachmentFileTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.AttachmentImpl;
+import com.franciaflex.faxtomail.persistence.entities.AttachmentTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.Client;
import com.franciaflex.faxtomail.persistence.entities.DemandStatus;
+import com.franciaflex.faxtomail.persistence.entities.EdiReturn;
+import com.franciaflex.faxtomail.persistence.entities.EdiReturnTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.EmailFilter;
import com.franciaflex.faxtomail.persistence.entities.EmailGroup;
import com.franciaflex.faxtomail.persistence.entities.EmailGroupTopiaDao;
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.History;
import com.franciaflex.faxtomail.persistence.entities.HistoryTopiaDao;
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.RangeRow;
import com.franciaflex.faxtomail.persistence.entities.RangeRowTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.Reply;
import com.franciaflex.faxtomail.persistence.entities.ReplyTopiaDao;
import com.franciaflex.faxtomail.services.FaxToMailServiceSupport;
+import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -484,10 +486,41 @@
return email;
}
+ /**
+ * Calcule recursivement l'ensemble des répertoires lisible par un utilisateur récursivement.
+ *
+ * @param readMailFolders result mail folders
+ * @param mailFolders mail folder to allow
+ */
+ protected void computeUserReadableFolder(Set<MailFolder> readMailFolders, Iterable<MailFolder> mailFolders) {
+ if (mailFolders != null) {
+ for (MailFolder mailFolder : mailFolders) {
+ readMailFolders.add(mailFolder);
+ computeUserReadableFolder(readMailFolders, mailFolder.getChildren());
+ }
+ }
+ }
+
public PaginationResult<Email> search(EmailFilter emailFilter, FaxToMailUser user, PaginationParameter pagination) {
+
+ // compute rigths
+ MailFolderTopiaDao mailFolderDao = getPersistenceContext().getMailFolderDao();
+ Set<MailFolder> readMailFolders = new HashSet<MailFolder>();
+ // read rights for user
+ Iterable<MailFolder> mailFolders = mailFolderDao.forReadRightUsersContains(user).findAll();
+ computeUserReadableFolder(readMailFolders, mailFolders);
+ // read rigths for groups
+ if (user.getUserGroups() != null) {
+ for (FaxToMailUserGroup group : user.getUserGroups()) {
+ mailFolders = mailFolderDao.forReadRightGroupsContains(group).findAll();
+ computeUserReadableFolder(readMailFolders, mailFolders);
+ }
+ }
- EmailTopiaDao dao = getPersistenceContext().getEmailDao();
- PaginationResult<Email> result = dao.search(emailFilter, user, pagination);
+ // compute search
+ EmailTopiaDao emailDao = getPersistenceContext().getEmailDao();
+ PaginationResult<Email> result = emailDao.search(emailFilter, readMailFolders, pagination);
+
return result;
}
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java 2014-06-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java 2014-06-30 16:35:30 UTC (rev 301)
@@ -32,14 +32,9 @@
import java.util.Map;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
-import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroup;
import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.persistence.TopiaEntities;
-import org.nuiton.util.beans.Binder;
-import org.nuiton.util.beans.BinderFactory;
import org.nuiton.util.pagination.PaginationParameter;
import com.franciaflex.faxtomail.persistence.entities.EmailTopiaDao;
@@ -47,11 +42,8 @@
import com.franciaflex.faxtomail.persistence.entities.MailFilter;
import com.franciaflex.faxtomail.persistence.entities.MailFilterTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.MailFolder;
-import com.franciaflex.faxtomail.persistence.entities.MailFolderImpl;
import com.franciaflex.faxtomail.persistence.entities.MailFolderTopiaDao;
import com.franciaflex.faxtomail.services.FaxToMailServiceSupport;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
/**
* @author kmorin <kmorin(a)codelutin.com>
Modified: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java
===================================================================
--- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java 2014-06-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java 2014-06-30 16:35:30 UTC (rev 301)
@@ -26,7 +26,6 @@
import java.io.File;
import java.io.IOException;
-import java.io.ObjectInputStream.GetField;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
Modified: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestData.java
===================================================================
--- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestData.java 2014-06-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestData.java 2014-06-30 16:35:30 UTC (rev 301)
@@ -167,6 +167,10 @@
FaxToMailUser.PROPERTY_LOGIN, "jbourgoin",
FaxToMailUser.PROPERTY_TRIGRAPH, "JBO");
+ // droits global à marc pour tout
+ franciaflex.addReadRightUsers(marc);
+ franciaflex = folderDao.update(franciaflex);
+
// import test csv
List<Range> ranges = null;
try (InputStream is = InitTestData.class.getResourceAsStream("/csv/ranges.csv")) {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css 2014-06-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css 2014-06-30 16:35:30 UTC (rev 301)
@@ -206,7 +206,6 @@
#ediCodeNumberField {
text: { model.getEdiCodeNumber() };
- editable: false;
}
#priorityLabel {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-06-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-06-30 16:35:30 UTC (rev 301)
@@ -218,7 +218,6 @@
#ediCodeNumberField {
text: { model.getEdiCodeNumber() };
- editable: false;
}
#priorityLabel {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-06-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-06-30 16:35:30 UTC (rev 301)
@@ -283,7 +283,6 @@
Object oldValue = getMinReceptionDate();
editObject.setMinReceptionDate(minReceptionDate);
firePropertyChanged(EmailFilter.PROPERTY_MIN_RECEPTION_DATE, oldValue, minReceptionDate);
- System.out.println(minReceptionDate);
}
public Date getMaxReceptionDate() {
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-30 15:35:05 UTC (rev 300)
+++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-06-30 16:35:30 UTC (rev 301)
@@ -106,7 +106,7 @@
faxtomail.demande.demandStatus.label=Statut
faxtomail.demande.demandType.label=Type
faxtomail.demande.docType.label=Type
-faxtomail.demande.ediCodeNumber.label=
+faxtomail.demande.ediCodeNumber.label=Code EDI
faxtomail.demande.ediError.label=Retour EDI
faxtomail.demande.etatAttente.label=État attente
faxtomail.demande.fax.label=Fax
1
0
Author: echatellier
Date: 2014-06-30 17:35:05 +0200 (Mon, 30 Jun 2014)
New Revision: 300
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/300
Log:
Use topia stable
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-06-30 15:18:16 UTC (rev 299)
+++ trunk/pom.xml 2014-06-30 15:35:05 UTC (rev 300)
@@ -105,7 +105,7 @@
<nuitonWebVersion>1.16</nuitonWebVersion>
<eugeneVersion>2.11</eugeneVersion>
- <topiaVersion>3.0-SNAPSHOT</topiaVersion>
+ <topiaVersion>3.0-beta-7</topiaVersion>
<hibernateVersion>4.3.5.Final</hibernateVersion>
<h2Version>1.3.176</h2Version>
1
0
30 Jun '14
Author: echatellier
Date: 2014-06-30 17:18:16 +0200 (Mon, 30 Jun 2014)
New Revision: 299
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/299
Log:
Pagination de la recherche (sans les droits).
Reset de la pagination pour les actions de recherche et pour le changement de dossier dans l'arbre.
Modified:
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java
trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java
trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx
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/DemandeListUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
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-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -30,6 +30,8 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.nuiton.util.pagination.PaginationParameter;
+import org.nuiton.util.pagination.PaginationResult;
public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> {
@@ -37,9 +39,11 @@
* Search for email using filter.
*
* @param emailFilter email filter
+ * @param user user (for rights compute)
+ * @param pagination pagination
* @return email list matching query filters
*/
- public List<Email> search(EmailFilter emailFilter) {
+ public PaginationResult<Email> search(EmailFilter emailFilter, FaxToMailUser user, PaginationParameter pagination) {
StringBuilder query = new StringBuilder("FROM " + Email.class.getName() + " E");
query.append(" WHERE 1 = 1");
@@ -289,12 +293,6 @@
query.append(")");
}
- // email recipient
- /*if (StringUtils.isNotBlank(emailFilter.getRecipient())) {
- query.append(" AND lower(E." + Email.PROPERTY_RECIPIENT + ") LIKE lower(:" + EmailFilter.PROPERTY_RECIPIENT + ")");
- args.put(EmailFilter.PROPERTY_RECIPIENT, "%" + emailFilter.getRecipient() + "%");
- }*/
-
// email etat attente
List<EtatAttente> etatAttente = emailFilter.getEtatAttente();
if (CollectionUtils.isNotEmpty(etatAttente)) {
@@ -326,12 +324,6 @@
query.append("))");
}
-// // email comment
-// if (StringUtils.isNotBlank(emailFilter.getBody())) {
-// query.append(" AND lower(E." + Email.PROPERTY_HTML_CONTENT + ") LIKE lower(:" + EmailFilter.PROPERTY_BODY + ")");
-// args.put(EmailFilter.PROPERTY_BODY, "%" + emailFilter.getBody() + "%");
-// }
-
// email localReference
if (StringUtils.isNotBlank(emailFilter.getLocalReference())) {
query.append(" AND (EXISTS (FROM " + RangeRow.class.getName() + " RR WHERE RR in elements(E." + Email.PROPERTY_RANGE_ROW + ")");
@@ -341,7 +333,9 @@
query.append(")");
}
- return findAll(query.toString(), args);
+ // compute paginated
+ PaginationResult<Email> result = findPage(query.toString(), args, pagination);
+ return result;
}
/**
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-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -484,10 +484,10 @@
return email;
}
- public List<Email> search(EmailFilter emailFilter) {
+ public PaginationResult<Email> search(EmailFilter emailFilter, FaxToMailUser user, PaginationParameter pagination) {
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
- List<Email> result = dao.search(emailFilter);
+ PaginationResult<Email> result = dao.search(emailFilter, user, pagination);
return result;
}
Modified: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java
===================================================================
--- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/AbstractFaxToMailServiceTest.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -26,6 +26,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.ObjectInputStream.GetField;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -43,6 +44,8 @@
import com.franciaflex.faxtomail.FaxToMailConfiguration;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaApplicationContext;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaPersistenceContext;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserTopiaDao;
import com.franciaflex.faxtomail.services.FaxToMailService;
import com.franciaflex.faxtomail.services.FaxToMailServiceContext;
@@ -61,6 +64,8 @@
protected List<FaxToMailTopiaPersistenceContext> openedTransactions = new LinkedList<>();
protected File databaseFile;
+
+ protected FaxToMailUser currentUser;
protected Map<String, String> getDatabaseConfiguration(String dataBase) {
Map<String, String> hibernateH2Config = new HashMap<String, String>();
@@ -144,12 +149,10 @@
serviceContext.setPersistenceContext(persistenceContext);
-// serviceContext.setStorageFile(new File (tempDirFile, UUID.randomUUID().toString()));
+ InitFaxToMailService initFaxToMailService = serviceContext.newService(InitFaxToMailService.class);
- InitFaxToMailService initExtranetService = serviceContext.newService(InitFaxToMailService.class);
+ initFaxToMailService.init();
- initExtranetService.init();
-
if (log.isTraceEnabled()) {
log.trace("closing transaction " + persistenceContext);
}
@@ -290,4 +293,11 @@
}
+ protected FaxToMailUser getCurrentUser() {
+ if (currentUser == null) {
+ FaxToMailUserTopiaDao faxToMailUserTopiaDao = serviceContext.getPersistenceContext().getFaxToMailUserDao();
+ currentUser = faxToMailUserTopiaDao.forLoginEquals("mlefebvre").findUnique();
+ }
+ return currentUser;
+ }
}
Modified: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java
===================================================================
--- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -26,11 +26,12 @@
import java.io.IOException;
import java.util.Collections;
-import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.nuiton.util.pagination.PaginationParameter;
+import org.nuiton.util.pagination.PaginationResult;
import com.franciaflex.faxtomail.persistence.entities.DemandStatus;
import com.franciaflex.faxtomail.persistence.entities.Email;
@@ -60,21 +61,23 @@
@Test
public void testSearch() {
+ PaginationParameter paginationParameter = PaginationParameter.of(0, 50);
+
// empty filter
EmailFilter filter = new EmailFilter();
- List<Email> emails = service.search(filter);
- Assert.assertEquals(10, emails.size());
+ PaginationResult<Email> emails = service.search(filter, getCurrentUser(), paginationParameter);
+ Assert.assertEquals(10, emails.getCount());
// client code filter
filter.setClientCode("9915");
- emails = service.search(filter);
- Assert.assertEquals(10, emails.size());
-
+ emails = service.search(filter, getCurrentUser(), paginationParameter);
+ Assert.assertEquals(10, emails.getCount());
+
// client code filter + subject filter
filter.setDemandObject("A+");
- emails = service.search(filter);
- Assert.assertEquals(0, emails.size());
-
+ emails = service.search(filter, getCurrentUser(), paginationParameter);
+ Assert.assertEquals(0, emails.getCount());
+
// some other fields just to test query syntax
filter.setMinReceptionDate(getServiceContext().getNow());
filter.setMaxReceptionDate(getServiceContext().getNow());
@@ -102,7 +105,7 @@
filter.setLocalReference("test");
filter.setMessage("test");
filter.setProjectReference("test");
- emails = service.search(filter);
- Assert.assertEquals(0, emails.size());
+ emails = service.search(filter, getCurrentUser(), paginationParameter);
+ Assert.assertEquals(0, emails.getCount());
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -24,9 +24,13 @@
* #L%
*/
+import static org.nuiton.i18n.I18n.t;
+
import java.util.ArrayList;
import java.util.List;
+import org.nuiton.util.pagination.PaginationResult;
+
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.EmailFilter;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
@@ -34,8 +38,6 @@
import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIModel;
-import static org.nuiton.i18n.I18n.t;
-
/**
* @author Kevin Morin (Code Lutin)
* @since x.x
@@ -54,7 +56,9 @@
EmailFilter emailFilter = model.toEntity();
- List<Email> emails = getContext().getEmailService().search(emailFilter);
+ PaginationResult<Email> paginationResult = getContext().getEmailService().search(emailFilter,
+ getContext().getCurrentUser(), getModel().getPaginationParameter());
+ List<Email> emails = paginationResult.getElements();
List<DemandeUIModel> result = new ArrayList<>();
for (Email email : emails) {
DemandeUIModel demand = new DemandeUIModel();
@@ -68,5 +72,7 @@
}
}
model.setResults(result);
+ model.setPaginationParameter(paginationResult.getCurrentPage());
+ model.setPaginationResult(paginationResult);
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchToGroupAction.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -34,6 +34,8 @@
import java.util.ArrayList;
import java.util.List;
+import org.nuiton.util.pagination.PaginationResult;
+
import static org.nuiton.i18n.I18n.t;
/**
@@ -53,7 +55,9 @@
getContext().setSearch(model);
EmailFilter emailFilter = model.toEntity();
- List<Email> emails = getContext().getEmailService().search(emailFilter);
+ PaginationResult<Email> paginationResult = getContext().getEmailService().search(emailFilter,
+ getContext().getCurrentUser(), getModel().getPaginationParameter());
+ List<Email> emails = paginationResult.getElements();
List<DemandeUIModel> result = new ArrayList<>();
for (Email mail : emails) {
@@ -63,5 +67,7 @@
result.add(demand);
}
model.setResults(result);
+ model.setPaginationParameter(paginationResult.getCurrentPage());
+ model.setPaginationResult(paginationResult);
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-06-30 15:18:16 UTC (rev 299)
@@ -57,7 +57,7 @@
}
#demandNbField {
- text: { String.valueOf(model.getEmailNb()) };
+ text: { String.valueOf(model.getPaginationResult().getCount()) };
}
#quotationNbLabel {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-06-30 15:18:16 UTC (rev 299)
@@ -97,7 +97,7 @@
<JLabel styleClass="horizontal-separator"/>
<JLabel text="faxtomail.demandeList.pages" />
<JButton text="faxtomail.demandeList.goToPreviousPage" onActionPerformed="handler.goToPreviousPage()"
- enabled="{model.getPaginationParameter().getPageNumber() > 0}" />
+ enabled="{model.getPaginationResult().hasPreviousPage()}" />
<JLabel text="{String.valueOf(getModel().getPaginationParameter().getPageNumber() + 1)}" />
<JLabel styleClass="page-separator"/>
<JLabel text="{String.valueOf(model.getPaginationResult().getLastPage().getPageNumber() + 1)}" />
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-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -49,8 +49,10 @@
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;
import org.jdesktop.swingx.JXTable;
@@ -58,6 +60,7 @@
import org.jdesktop.swingx.decorator.ComponentAdapter;
import org.jdesktop.swingx.decorator.HighlightPredicate;
import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
+import org.nuiton.util.pagination.PaginationParameter;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
@@ -68,6 +71,7 @@
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
+
import java.awt.*;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
@@ -129,6 +133,10 @@
model.addPropertyChangeListener(DemandeListUIModel.PROPERTY_SELECTED_FOLDER, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
+
+ // reset pagination when folder change
+ getModel().resetPaginationParameter();
+
MailFolder folder = (MailFolder) evt.getNewValue();
while (folder.getAllowCreateDemandIntoFolder() == null
&& folder.getParent() != null) {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -60,7 +60,7 @@
protected PaginationParameter paginationParameter = PaginationParameter.of(0, 50, Email.PROPERTY_RECEPTION_DATE, true);
- protected PaginationResult<Email> paginationResult;
+ protected PaginationResult<Email> paginationResult = PaginationResult.of(null, 0, paginationParameter);
protected List<DemandeUIModel> filteredEmails;
@@ -111,6 +111,10 @@
public PaginationParameter getPaginationParameter() {
return paginationParameter;
}
+
+ public void resetPaginationParameter() {
+ setPaginationParameter(PaginationParameter.of(0, 50, Email.PROPERTY_RECEPTION_DATE, true));
+ }
public void setPaginationResult(PaginationResult<Email> paginationResult) {
PaginationResult<Email> oldValue = this.paginationResult;
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.css 2014-06-30 15:18:16 UTC (rev 299)
@@ -19,6 +19,13 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+.horizontal-separator {
+ text: " | ";
+}
+.page-separator {
+ text: "/";
+}
+
JSplitPane {
oneTouchExpandable:true;
}
@@ -260,7 +267,7 @@
#searchButton {
text: "faxtomail.search.button.label";
- _applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.SearchToGroupAction.class };
+ /* _applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.SearchToGroupAction.class };*/
}
#dataTable {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx 2014-06-30 15:18:16 UTC (rev 299)
@@ -41,6 +41,8 @@
org.jdesktop.swingx.JXDatePicker
org.jdesktop.swingx.JXTitledPanel
org.jdesktop.swingx.JXTable
+
+ java.awt.FlowLayout
</import>
<script><![CDATA[
@@ -334,7 +336,7 @@
</JScrollPane>
<JPanel constraints='BorderLayout.SOUTH'>
- <JButton id="searchButton"/>
+ <JButton id="searchButton" onActionPerformed="handler.searchDemandes()" />
</JPanel>
</JPanel>
@@ -342,6 +344,19 @@
<JScrollPane constraints='BorderLayout.CENTER'>
<JXTable id='dataTable'/>
</JScrollPane>
+ <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.SOUTH'>
+ <JLabel text="faxtomail.demandeList.totalCount" />
+ <JLabel text="{String.valueOf(model.getPaginationResult().getCount())}" />
+ <JLabel styleClass="horizontal-separator"/>
+ <JLabel text="faxtomail.demandeList.pages" />
+ <JButton text="faxtomail.demandeList.goToPreviousPage" onActionPerformed="handler.goToPreviousPage()"
+ enabled="{model.getPaginationResult().hasPreviousPage()}" />
+ <JLabel text="{String.valueOf(getModel().getPaginationParameter().getPageNumber() + 1)}" />
+ <JLabel styleClass="page-separator"/>
+ <JLabel text="{String.valueOf(model.getPaginationResult().getLastPage().getPageNumber() + 1)}" />
+ <JButton text="faxtomail.demandeList.goToNextPage" onActionPerformed="handler.goToNextPage()"
+ enabled="{model.getPaginationResult().hasNextPage()}" />
+ </JPanel>
</JPanel>
</JSplitPane>
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -29,11 +29,14 @@
import com.franciaflex.faxtomail.persistence.entities.MailField;
import com.franciaflex.faxtomail.services.service.ReferentielService;
import com.franciaflex.faxtomail.ui.swing.actions.GroupAction;
+import com.franciaflex.faxtomail.ui.swing.actions.SearchAction;
import com.franciaflex.faxtomail.ui.swing.actions.SearchToGroupAction;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailDemandListHandler;
import com.franciaflex.faxtomail.ui.swing.util.Cancelable;
+
import jaxx.runtime.validator.swing.SwingValidator;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
@@ -45,6 +48,7 @@
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
+
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
@@ -216,6 +220,48 @@
}
+ public void searchDemandes() {
+ getModel().resetPaginationParameter();
+ try {
+ SearchAction searchAction = getContext().getActionFactory().createLogicAction(this, SearchAction.class);
+ searchAction.doAction();
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("error while searching", e);
+ }
+ getContext().getErrorHelper().showErrorDialog(t("faxtomail.search.action.error"));
+ }
+ }
+
+ public void goToNextPage() {
+ getModel().setPaginationParameter(getModel().getPaginationResult().getNextPage());
+ try {
+ SearchAction searchAction = getContext().getActionFactory().createLogicAction(this, SearchAction.class);
+ searchAction.doAction();
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("error while searching", e);
+ }
+ getContext().getErrorHelper().showErrorDialog(t("faxtomail.search.action.error"));
+ }
+ }
+
+ public void goToPreviousPage() {
+ getModel().setPaginationParameter(getModel().getPaginationResult().getPreviousPage());
+ try {
+ SearchAction searchAction = getContext().getActionFactory().createLogicAction(this, SearchAction.class);
+ searchAction.doAction();
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("error while searching", e);
+ }
+ getContext().getErrorHelper().showErrorDialog(t("faxtomail.search.action.error"));
+ }
+ }
+
@Override
protected List<MailField> getColumns() {
List<MailField> tableColumns = getContext().getFaxToMailConfiguration().getSearchDisplayColumns();
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-06-30 15:18:16 UTC (rev 299)
@@ -19,6 +19,13 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+.horizontal-separator {
+ text: " | ";
+}
+.page-separator {
+ text: "/";
+}
+
JSplitPane {
oneTouchExpandable:true;
}
@@ -300,7 +307,7 @@
#searchButton {
text: "faxtomail.search.button.label";
- _applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.SearchAction.class };
+ /* _applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.SearchAction.class }; */
}
#dataTable {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-06-30 15:18:16 UTC (rev 299)
@@ -41,6 +41,8 @@
org.jdesktop.swingx.JXDatePicker
org.jdesktop.swingx.JXTitledPanel
org.jdesktop.swingx.JXTable
+
+ java.awt.FlowLayout
</import>
<script><![CDATA[
@@ -352,7 +354,7 @@
</JScrollPane>
<JPanel constraints='BorderLayout.SOUTH'>
- <JButton id="searchButton"/>
+ <JButton id="searchButton" onActionPerformed="handler.searchDemandes()" />
</JPanel>
</JPanel>
@@ -362,6 +364,19 @@
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'
onKeyPressed='handler.openRowMenu(event, tablePopup)'/>
</JScrollPane>
+ <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.SOUTH'>
+ <JLabel text="faxtomail.demandeList.totalCount" />
+ <JLabel text="{String.valueOf(model.getPaginationResult().getCount())}" />
+ <JLabel styleClass="horizontal-separator"/>
+ <JLabel text="faxtomail.demandeList.pages" />
+ <JButton text="faxtomail.demandeList.goToPreviousPage" onActionPerformed="handler.goToPreviousPage()"
+ enabled="{model.getPaginationResult().hasPreviousPage()}" />
+ <JLabel text="{String.valueOf(getModel().getPaginationParameter().getPageNumber() + 1)}" />
+ <JLabel styleClass="page-separator"/>
+ <JLabel text="{String.valueOf(model.getPaginationResult().getLastPage().getPageNumber() + 1)}" />
+ <JButton text="faxtomail.demandeList.goToNextPage" onActionPerformed="handler.goToNextPage()"
+ enabled="{model.getPaginationResult().hasNextPage()}" />
+ </JPanel>
</JPanel>
</JSplitPane>
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -26,19 +26,24 @@
import com.franciaflex.faxtomail.persistence.entities.EmailFilter;
import com.franciaflex.faxtomail.persistence.entities.MailField;
import com.franciaflex.faxtomail.services.service.ReferentielService;
+import com.franciaflex.faxtomail.ui.swing.actions.LoadFolderEmailsAction;
import com.franciaflex.faxtomail.ui.swing.actions.SearchAction;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeListAction;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailDemandListHandler;
import com.franciaflex.faxtomail.ui.swing.util.CloseableUI;
import com.franciaflex.faxtomail.ui.swing.util.DemandeTableModel;
+
import jaxx.runtime.validator.swing.SwingValidator;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import javax.swing.*;
+
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Arrays;
@@ -176,6 +181,48 @@
}
+ public void searchDemandes() {
+ getModel().resetPaginationParameter();
+ try {
+ SearchAction searchAction = getContext().getActionFactory().createLogicAction(this, SearchAction.class);
+ searchAction.doAction();
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("error while searching", e);
+ }
+ getContext().getErrorHelper().showErrorDialog(t("faxtomail.search.action.error"));
+ }
+ }
+
+ public void goToNextPage() {
+ getModel().setPaginationParameter(getModel().getPaginationResult().getNextPage());
+ try {
+ SearchAction searchAction = getContext().getActionFactory().createLogicAction(this, SearchAction.class);
+ searchAction.doAction();
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("error while searching", e);
+ }
+ getContext().getErrorHelper().showErrorDialog(t("faxtomail.search.action.error"));
+ }
+ }
+
+ public void goToPreviousPage() {
+ getModel().setPaginationParameter(getModel().getPaginationResult().getPreviousPage());
+ try {
+ SearchAction searchAction = getContext().getActionFactory().createLogicAction(this, SearchAction.class);
+ searchAction.doAction();
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("error while searching", e);
+ }
+ getContext().getErrorHelper().showErrorDialog(t("faxtomail.search.action.error"));
+ }
+ }
+
@Override
protected List<MailField> getColumns() {
List<MailField> tableColumns = getContext().getFaxToMailConfiguration().getSearchDisplayColumns();
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-06-30 14:14:09 UTC (rev 298)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-06-30 15:18:16 UTC (rev 299)
@@ -29,9 +29,12 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
+import org.nuiton.util.pagination.PaginationParameter;
+import org.nuiton.util.pagination.PaginationResult;
import com.franciaflex.faxtomail.persistence.entities.DemandStatus;
import com.franciaflex.faxtomail.persistence.entities.DemandType;
+import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.EmailFilter;
import com.franciaflex.faxtomail.persistence.entities.EtatAttente;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
@@ -51,9 +54,13 @@
public static final String PROPERTY_RESULTS = "results";
public static final String PROPERTY_MENU_ENABLED = "menuEnabled";
public static final String PROPERTY_GROUP_ENABLED = "groupEnabled";
+ public static final String PROPERTY_PAGINATION_PARAMETER = "paginationParameter";
+ public static final String PROPERTY_PAGINATION_RESULT = "paginationResult";
protected final EmailFilter editObject = new EmailFilter();
+ protected PaginationParameter paginationParameter = PaginationParameter.of(0, 50, Email.PROPERTY_RECEPTION_DATE, true);
+ protected PaginationResult<Email> paginationResult = PaginationResult.of(null, 0, paginationParameter);
protected List<DemandeUIModel> results;
protected boolean menuEnabled;
@@ -82,16 +89,6 @@
return editObject.getSender();
}
- /*public void setRecipient(String recipient) {
- Object oldValue = getRecipient();
- editObject.setRecipient(recipient);
- firePropertyChanged(EmailFilter.PROPERTY_RECIPIENT, oldValue, recipient);
- }
-
- public String getRecipient() {
- return editObject.getRecipient();
- }*/
-
public void setDemandObject(String demandObject) {
Object oldValue = getDemandObject();
editObject.setDemandObject(demandObject);
@@ -131,16 +128,6 @@
public String getBody() {
return editObject.getBody();
}
-//
-// public void setCommandNumber(String commandNumber) {
-// Object oldValue = getCommandNumber();
-// editObject.setCommandNumber(commandNumber);
-// firePropertyChanged(EmailFilter.PROPERTY_COMMAND_NUMBER, oldValue, commandNumber);
-// }
-//
-// public String getCommandNumber() {
-// return editObject.getCommandNumber();
-// }
public void setEtatAttente(List<EtatAttente> etatAttente) {
editObject.setEtatAttente(etatAttente);
@@ -407,6 +394,30 @@
firePropertyChanged(PROPERTY_RESULTS, null, results);
}
+ public void setPaginationParameter(PaginationParameter paginationParameter) {
+ Object oldValue = this.paginationParameter;
+ this.paginationParameter = paginationParameter;
+ firePropertyChanged(PROPERTY_PAGINATION_PARAMETER, oldValue, paginationParameter);
+ }
+
+ public PaginationParameter getPaginationParameter() {
+ return paginationParameter;
+ }
+
+ public void resetPaginationParameter() {
+ setPaginationParameter(PaginationParameter.of(0, 50, Email.PROPERTY_RECEPTION_DATE, true));
+ }
+
+ public void setPaginationResult(PaginationResult<Email> paginationResult) {
+ Object oldValue = this.paginationResult;
+ this.paginationResult = paginationResult;
+ firePropertyChanged(PROPERTY_PAGINATION_RESULT, oldValue, paginationResult);
+ }
+
+ public PaginationResult<Email> getPaginationResult() {
+ return paginationResult;
+ }
+
public boolean isMenuEnabled() {
return menuEnabled;
}
1
0
Author: echatellier
Date: 2014-06-30 16:14:09 +0200 (Mon, 30 Jun 2014)
New Revision: 298
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/298
Log:
Use some release
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-06-30 12:18:46 UTC (rev 297)
+++ trunk/pom.xml 2014-06-30 14:14:09 UTC (rev 298)
@@ -104,7 +104,7 @@
<nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion>
<nuitonWebVersion>1.16</nuitonWebVersion>
- <eugeneVersion>2.11-SNAPSHOT</eugeneVersion>
+ <eugeneVersion>2.11</eugeneVersion>
<topiaVersion>3.0-SNAPSHOT</topiaVersion>
<hibernateVersion>4.3.5.Final</hibernateVersion>
<h2Version>1.3.176</h2Version>
@@ -541,7 +541,7 @@
<dependency>
<groupId>org.nuiton.js</groupId>
<artifactId>nuiton-js-bootstrap</artifactId>
- <version>3.2.0-1-SNAPSHOT</version>
+ <version>3.2.0-1</version>
<scope>runtime</scope>
</dependency>
@@ -589,7 +589,7 @@
<dependency>
<groupId>org.nuiton.js</groupId>
<artifactId>nuiton-js-angularjs</artifactId>
- <version>1.2.18-1-SNAPSHOT</version>
+ <version>1.2.18-1</version>
<scope>runtime</scope>
</dependency>
1
0
r297 - in trunk: faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande faxtomail-ui-swing/src/main/resources/i18n faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job
by echatellier@users.forge.codelutin.com 30 Jun '14
by echatellier@users.forge.codelutin.com 30 Jun '14
30 Jun '14
Author: echatellier
Date: 2014-06-30 14:18:46 +0200 (Mon, 30 Jun 2014)
New Revision: 297
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/297
Log:
Pagination de la liste des mails (par dossier)
Modified:
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx
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/DemandeListUIModel.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/job/MailFilterJob.java
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-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-06-30 12:18:46 UTC (rev 297)
@@ -51,8 +51,8 @@
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 com.google.common.base.Function;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.io.IOUtils;
@@ -67,6 +67,8 @@
import org.nuiton.topia.persistence.TopiaEntities;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
+import org.nuiton.util.pagination.PaginationParameter;
+import org.nuiton.util.pagination.PaginationResult;
import com.franciaflex.faxtomail.persistence.entities.Attachment;
import com.franciaflex.faxtomail.persistence.entities.AttachmentFile;
@@ -415,16 +417,19 @@
}
}
- public List<Email> getEmailForFolder(MailFolder folder) {
+ public PaginationResult<Email> getEmailForFolder(MailFolder folder, PaginationParameter page) {
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
- List<Email> result = new ArrayList<>(dao.forMailFolderEquals(folder)
- .addNull(Email.PROPERTY_ARCHIVE_DATE)
- .addNotEquals(Email.PROPERTY_DEMAND_STATUS, DemandStatus.ARCHIVED)
- .setOrderByArguments(Email.PROPERTY_RECEPTION_DATE)
- .findAll());
+ PaginationResult<Email> result = dao.forMailFolderEquals(folder)
+ .addNull(Email.PROPERTY_ARCHIVE_DATE)
+ .addNotEquals(Email.PROPERTY_DEMAND_STATUS, DemandStatus.ARCHIVED)
+ .findPage(page);
return result;
}
+ /**
+ * @deprecated Ne pas recuperer trop de mails
+ */
+ @Deprecated
public List<Email> getEmailForFolderAndSubfolders(MailFolder folder) {
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
List<MailFolder> folders = new ArrayList<>();
@@ -433,6 +438,7 @@
.findAll());
}
+ @Deprecated
protected List<MailFolder> getChildrenRecursively(MailFolder folder) {
List<MailFolder> folders = new ArrayList<>();
folders.add(folder);
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java 2014-06-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java 2014-06-30 12:18:46 UTC (rev 297)
@@ -30,9 +30,11 @@
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
+import org.nuiton.util.pagination.PaginationResult;
import java.util.ArrayList;
import java.util.List;
@@ -76,7 +78,8 @@
DemandeListUIModel model = getModel();
MailFolder folder = model.getSelectedFolder();
- List<Email> emails = getContext().getEmailService().getEmailForFolder(folder);
+ PaginationResult<Email> paginationResult = getContext().getEmailService().getEmailForFolder(folder, model.getPaginationParameter());
+ List<Email> emails = paginationResult.getElements();
log.info(emails.size() + " emails in folder " + folder.getName());
List<DemandeUIModel> demands = new ArrayList<DemandeUIModel>();
@@ -88,5 +91,7 @@
}
model.setEmails(demands);
+ model.setPaginationParameter(paginationResult.getCurrentPage());
+ model.setPaginationResult(paginationResult);
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java 2014-06-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/OpenAttachmentAction.java 2014-06-30 12:18:46 UTC (rev 297)
@@ -31,10 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.DesktopUtil;
-import java.io.File;
-
import static org.nuiton.i18n.I18n.t;
/**
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-06-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-06-30 12:18:46 UTC (rev 297)
@@ -23,6 +23,10 @@
text: " | ";
}
+.page-separator {
+ text: "/";
+}
+
#mainSplitPane {
resizeWeight: 0.2;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-06-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-06-30 12:18:46 UTC (rev 297)
@@ -91,6 +91,19 @@
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'
onKeyPressed='handler.openRowMenu(event, tablePopup)'/>
</JScrollPane>
+ <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.SOUTH'>
+ <JLabel text="faxtomail.demandeList.totalCount" />
+ <JLabel text="{String.valueOf(model.getPaginationResult().getCount())}" />
+ <JLabel styleClass="horizontal-separator"/>
+ <JLabel text="faxtomail.demandeList.pages" />
+ <JButton text="faxtomail.demandeList.goToPreviousPage" onActionPerformed="handler.goToPreviousPage()"
+ enabled="{model.getPaginationParameter().getPageNumber() > 0}" />
+ <JLabel text="{String.valueOf(getModel().getPaginationParameter().getPageNumber() + 1)}" />
+ <JLabel styleClass="page-separator"/>
+ <JLabel text="{String.valueOf(model.getPaginationResult().getLastPage().getPageNumber() + 1)}" />
+ <JButton text="faxtomail.demandeList.goToNextPage" onActionPerformed="handler.goToNextPage()"
+ enabled="{model.getPaginationResult().hasNextPage()}" />
+ </JPanel>
</JPanel>
</JSplitPane>
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-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-30 12:18:46 UTC (rev 297)
@@ -295,6 +295,22 @@
}
+ public void goToNextPage() {
+ getModel().setPaginationParameter(getModel().getPaginationResult().getNextPage());
+ LoadFolderEmailsAction loadFolderEmailsAction =
+ getContext().getActionFactory().createLogicAction(DemandeListUIHandler.this,
+ LoadFolderEmailsAction.class);
+ getContext().getActionEngine().runAction(loadFolderEmailsAction);
+ }
+
+ public void goToPreviousPage() {
+ getModel().setPaginationParameter(getModel().getPaginationResult().getPreviousPage());
+ LoadFolderEmailsAction loadFolderEmailsAction =
+ getContext().getActionFactory().createLogicAction(DemandeListUIHandler.this,
+ LoadFolderEmailsAction.class);
+ getContext().getActionEngine().runAction(loadFolderEmailsAction);
+ }
+
@Override
public void initDemandeTable(final JXTable table, boolean sortable) {
super.initDemandeTable(table, sortable);
@@ -529,5 +545,4 @@
ArchiveFromListAction.class);
getContext().getActionEngine().runAction(saveAction);
}
-
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-06-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-06-30 12:18:46 UTC (rev 297)
@@ -22,12 +22,16 @@
* #L%
*/
-import com.franciaflex.faxtomail.persistence.entities.MailFolder;
-import org.jdesktop.beans.AbstractSerializableBean;
-
import java.util.ArrayList;
import java.util.List;
+import org.jdesktop.beans.AbstractSerializableBean;
+import org.nuiton.util.pagination.PaginationParameter;
+import org.nuiton.util.pagination.PaginationResult;
+
+import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.persistence.entities.MailFolder;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since x.x
@@ -36,6 +40,8 @@
public static final String PROPERTY_FOLDERS = "folders";
public static final String PROPERTY_EMAILS = "emails";
+ public static final String PROPERTY_PAGINATION_PARAMETER = "paginationParameter";
+ public static final String PROPERTY_PAGINATION_RESULT = "paginationResult";
public static final String PROPERTY_FILTERED_EMAILS = "filteredEmails";
public static final String PROPERTY_CURRENT_EMAILS = "currentEmails";
public static final String PROPERTY_EMAIL_NB = "emailNb";
@@ -52,6 +58,10 @@
protected List<DemandeUIModel> emails;
+ protected PaginationParameter paginationParameter = PaginationParameter.of(0, 50, Email.PROPERTY_RECEPTION_DATE, true);
+
+ protected PaginationResult<Email> paginationResult;
+
protected List<DemandeUIModel> filteredEmails;
protected List<DemandeUIModel> currentEmails;
@@ -92,6 +102,26 @@
firePropertyChange(PROPERTY_EMAILS, null, emails);
}
+ public void setPaginationParameter(PaginationParameter paginationParameter) {
+ PaginationParameter oldValue = this.paginationParameter;
+ this.paginationParameter = paginationParameter;
+ firePropertyChange(PROPERTY_PAGINATION_PARAMETER, oldValue, paginationParameter);
+ }
+
+ public PaginationParameter getPaginationParameter() {
+ return paginationParameter;
+ }
+
+ public void setPaginationResult(PaginationResult<Email> paginationResult) {
+ PaginationResult<Email> oldValue = this.paginationResult;
+ this.paginationResult = paginationResult;
+ firePropertyChange(PROPERTY_PAGINATION_RESULT, oldValue, paginationResult);
+ }
+
+ public PaginationResult<Email> getPaginationResult() {
+ return paginationResult;
+ }
+
public List<DemandeUIModel> getFilteredEmails() {
return filteredEmails;
}
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-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-06-30 12:18:46 UTC (rev 297)
@@ -1,4 +1,5 @@
\ |\ =
+/=
\:=
X=
application.action.create.error=
@@ -155,6 +156,9 @@
faxtomail.demandeList.action.reply=Répondre
faxtomail.demandeList.action.reply.tip=Répondre
faxtomail.demandeList.demandNbLabel=Nombre de demandes
+faxtomail.demandeList.goToNextPage=>
+faxtomail.demandeList.goToPreviousPage=<
+faxtomail.demandeList.pages=Pages \:
faxtomail.demandeList.pfNbLabel=Nombre de produits finis
faxtomail.demandeList.quotationNbLabel=Nombre de devis
faxtomail.demandeList.savNbLabel=Nombre de SAV
@@ -203,6 +207,7 @@
faxtomail.demandeList.table.header.waitingState=État attente
faxtomail.demandeList.table.header.waitingState.tip=État attente
faxtomail.demandeList.title=Liste des éléments
+faxtomail.demandeList.totalCount=Nombre de demandes \:
faxtomail.historyList.action.tip=Historique
faxtomail.historyList.text=Historique (%s)
faxtomail.historyList.title=Historique
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-30 11:39:20 UTC (rev 296)
+++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-30 12:18:46 UTC (rev 297)
@@ -26,19 +26,11 @@
import static org.nuiton.i18n.I18n.t;
-import java.awt.image.RenderedImage;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.FileReader;
import java.io.IOException;
-import java.io.StringBufferInputStream;
import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.util.ArrayList;
1
0
30 Jun '14
Author: kmorin
Date: 2014-06-30 13:39:20 +0200 (Mon, 30 Jun 2014)
New Revision: 296
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/296
Log:
- d?\195?\169sactivation de l'impression des pj non editables
- d?\195?\169placement des archives dans le dossier d'archive
- prise ou non de l'?\195?\169l?\195?\169ment ?\195?\160 l'impression
Modified:
trunk/faxtomail-persistence/src/main/resources/faxToMail.properties
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.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/DemandesUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java
Modified: trunk/faxtomail-persistence/src/main/resources/faxToMail.properties
===================================================================
--- trunk/faxtomail-persistence/src/main/resources/faxToMail.properties 2014-06-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-persistence/src/main/resources/faxToMail.properties 2014-06-30 11:39:20 UTC (rev 296)
@@ -24,7 +24,7 @@
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.connection.driver_class=org.h2.Driver
-hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer
+hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer;AUTO_SERVER=TRUE
hibernate.connection.username=sa
hibernate.connection.password=
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java 2014-06-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ArchiveAction.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -25,11 +25,17 @@
*/
import com.franciaflex.faxtomail.persistence.entities.DemandStatus;
+import com.franciaflex.faxtomail.persistence.entities.MailFolder;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.Iterables;
import javax.swing.*;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import static org.nuiton.i18n.I18n.t;
@@ -64,6 +70,24 @@
model.setArchiveDate(new Date());
model.setDemandStatus(DemandStatus.ARCHIVED);
model.setTakenBy(null);
+
+ MailFolder folder = model.getMailFolder();
+ MailFolder archiveChild = null;
+ do {
+ archiveChild = Iterables.find(folder.getChildren(), new Predicate<MailFolder>() {
+ @Override
+ public boolean apply(MailFolder mailFolder) {
+ return mailFolder.isArchiveFolder();
+ }
+ });
+ folder = folder.getParent();
+
+ } while (archiveChild == null && folder != null);
+
+ if (archiveChild != null) {
+ model.setMailFolder(archiveChild);
+ }
+
super.doAction();
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java 2014-06-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveAndOpenDialogAction.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -24,6 +24,8 @@
* #L%
*/
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
+import com.franciaflex.faxtomail.persistence.entities.MailFolder;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI;
@@ -40,23 +42,26 @@
protected FaxToMailUI dialogContent;
protected String title;
protected Dimension dimension;
+ protected boolean takeDemand;
public SaveAndOpenDialogAction(DemandeUIHandler handler,
boolean modal,
FaxToMailUI dialogContent,
String title,
- Dimension dimension) {
+ Dimension dimension,
+ boolean takeDemand) {
super(handler);
this.modal = modal;
this.dialogContent = dialogContent;
this.title = title;
this.dimension = dimension;
+ this.takeDemand = takeDemand;
}
@Override
public void doAction() throws Exception {
DemandeUIModel model = getModel();
- if (model.getTakenBy() == null) {
+ if (takeDemand && model.getTakenBy() == null) {
model.setTakenBy(getContext().getCurrentUser());
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-06-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/attachment/AttachmentEditorUIHandler.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -29,6 +29,7 @@
import com.franciaflex.faxtomail.ui.swing.actions.EditAttachmentAction;
import com.franciaflex.faxtomail.ui.swing.actions.OpenAttachmentAction;
import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupHandler;
+import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
@@ -79,9 +80,6 @@
private static final Log log = LogFactory.getLog(AttachmentEditorUIHandler.class);
- public static final List<String> EDITABLE_EXTENSIONS = Lists.newArrayList("PDF", "PNG", "JPG", "JPEG", "GIF",
- "TIF", "BMP", "TXT");
-
protected OpenAttachmentAction openAttachmentAction = new OpenAttachmentAction(this);
protected EditAttachmentAction editAttachmentAction = new EditAttachmentAction(this);
@@ -190,8 +188,7 @@
public void editAttachment(Attachment attachment) {
AttachmentEditorUIModel model = getModel();
- String extension = FileUtil.extension(attachment.getOriginalFileName());
- if (model.isEditable() && EDITABLE_EXTENSIONS.contains(extension.toUpperCase())) {
+ if (model.isEditable() && FaxToMailUIUtil.isFileTypeEditable(attachment.getOriginalFileName())) {
editAttachmentAction.setAttachment(attachment);
getContext().getActionFactory().createUIAction(null, editAttachmentAction).actionPerformed(null);
@@ -229,8 +226,8 @@
}
public boolean isAttachmentEditable(Attachment attachment) {
- String extension = FileUtil.extension(attachment.getOriginalFileName());
- return EDITABLE_EXTENSIONS.contains(extension.toUpperCase()) && (getModel().isEditable() || attachment.getEditedFileName() != null);
+ return FaxToMailUIUtil.isFileTypeEditable(attachment.getOriginalFileName())
+ && (getModel().isEditable() || attachment.getEditedFileName() != null);
}
public boolean isAttachmentRemovable(Attachment attachment) {
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-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -495,7 +495,12 @@
if (attachmentFile == null) {
attachmentFile = attachment.getOriginalFile();
}
- FaxToMailUIUtil.print(attachmentFile, true);
+ boolean printable = FaxToMailUIUtil.isFileTypeEditable(attachmentFile.getFilename());
+ if (printable) {
+ FaxToMailUIUtil.print(attachmentFile, true);
+ } else {
+ //TODO kmorin 20140629 add to errors
+ }
}
}
}
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-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandesUIHandler.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -328,7 +328,8 @@
true,
dialogContent,
t("faxtomail.chooseMailFolder.title"),
- new Dimension(350, 500));
+ new Dimension(350, 500),
+ true);
getContext().getActionFactory().createUIAction(null, action).actionPerformed(null);
}
@@ -355,11 +356,19 @@
DemandeUI demandeUI = (DemandeUI) getTabPanel().getSelectedComponent();
AttachmentToPrintChooserUI dialogContent = new AttachmentToPrintChooserUI(ui, demandeUI.getModel());
+
+ MailFolder selectedFolder = getModel().getCurrentDemand().getMailFolder();
+ while (selectedFolder.getParent() != null && selectedFolder.getPrintActionEqualTakeAction() == null) {
+ selectedFolder = selectedFolder.getParent();
+ }
+ boolean take = Boolean.TRUE.equals(selectedFolder.getPrintActionEqualTakeAction());
+
SaveAndOpenDialogAction action = new SaveAndOpenDialogAction(demandeUI.getHandler(),
true,
dialogContent,
t("faxtomail.chooseAttachmentToPrint.title"),
- new Dimension(350, 500));
+ new Dimension(350, 500),
+ take);
getContext().getActionFactory().createUIAction(null, action).actionPerformed(null);
}
@@ -393,7 +402,8 @@
false,
dialogContent,
t("faxtomail.reply.title", currentDemand.getObject()),
- new Dimension(800, 600));
+ new Dimension(800, 600),
+ true);
getContext().getActionFactory().createUIAction(null, action).actionPerformed(null);
}
@@ -407,7 +417,8 @@
false,
dialogContent,
t("faxtomail.searchToGroup.title", demandeUI.getModel().getObject()),
- getContext().getMainUI().getSize());
+ getContext().getMainUI().getSize(),
+ true);
getContext().getActionFactory().createUIAction(null, action).actionPerformed(null);
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java 2014-06-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/print/AttachmentToPrintChooserUIHandler.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -92,7 +92,6 @@
if (attachment.getOriginalFile() == null) {
FaxToMailUIUtil.forceAttachmentFileLoading(getContext(), attachment);
-
}
createCheckBox(attachment.getOriginalFile());
@@ -104,22 +103,31 @@
}
protected void createCheckBox(final AttachmentFile attachmentFile) {
- String attachmentName = attachmentFile != null ? attachmentFile.getFilename() : "";
- JCheckBox checkBox = new JCheckBox(attachmentName, true);
+ if (attachmentFile == null) {
+ return;
+ }
+ String attachmentName = attachmentFile.getFilename();
+ boolean printable = FaxToMailUIUtil.isFileTypeEditable(attachmentName);
+
+ JCheckBox checkBox = new JCheckBox(attachmentName, printable);
+ checkBox.setEnabled(printable);
ui.getAttachmentPanel().add(checkBox);
- getModel().addAttachmentToPrint(attachmentFile);
- checkBox.addItemListener(new ItemListener() {
- @Override
- public void itemStateChanged(ItemEvent e) {
- log.info("state changed " + e.getStateChange());
- if (e.getStateChange() == ItemEvent.SELECTED) {
- getModel().addAttachmentToPrint(attachmentFile);
- } else {
- getModel().removeAttachmentToPrint(attachmentFile);
+ if (printable) {
+ getModel().addAttachmentToPrint(attachmentFile);
+
+ checkBox.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ log.info("state changed " + e.getStateChange());
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ getModel().addAttachmentToPrint(attachmentFile);
+ } else {
+ getModel().removeAttachmentToPrint(attachmentFile);
+ }
}
- }
- });
+ });
+ }
}
@Override
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-30 11:16:33 UTC (rev 295)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-06-30 11:39:20 UTC (rev 296)
@@ -63,6 +63,7 @@
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
+import com.google.common.collect.Lists;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.JAXXUtil;
@@ -102,6 +103,9 @@
/** Logger. */
private static final Log log = LogFactory.getLog(FaxToMailUIUtil.class);
+ public static final List<String> EDITABLE_EXTENSIONS = Lists.newArrayList("PDF", "PNG", "JPG", "JPEG", "GIF",
+ "TIF", "BMP", "TXT");
+
private FaxToMailUIUtil() {
// never instanciate util class
}
@@ -272,6 +276,11 @@
return FileUtil.extension(file.getFilename()).toUpperCase().equals("TIF");
}
+ public static boolean isFileTypeEditable(String fileName) {
+ String extension = FileUtil.extension(fileName);
+ return EDITABLE_EXTENSIONS.contains(extension.toUpperCase());
+ }
+
public static void setEmailContentInTextPane(DemandeUIHandler handler, JTextPane textPane, DemandeUIModel demandeUIModel) {
String content = demandeUIModel.getHtmlContent();
if (content != null) {
1
0
r295 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service
by echatellier@users.forge.codelutin.com 30 Jun '14
by echatellier@users.forge.codelutin.com 30 Jun '14
30 Jun '14
Author: echatellier
Date: 2014-06-30 13:16:33 +0200 (Mon, 30 Jun 2014)
New Revision: 295
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/295
Log:
Fix ldap connection with sAMAccountName
Modified:
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java
Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java
===================================================================
--- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java 2014-06-30 08:20:04 UTC (rev 294)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java 2014-06-30 11:16:33 UTC (rev 295)
@@ -275,10 +275,6 @@
return applicationConfig.getOptionAsList(FaxToMailConfigurationOption.LDAP_ADMIN_GROUPS.getKey()).getOption();
}
- public String getLdapPrincipalDomain() {
- return applicationConfig.getOption(FaxToMailConfigurationOption.LDAP_PRINCIPAL_DOMAIN.getKey());
- }
-
public String getLdapTestPrincipal() {
return applicationConfig.getOption(FaxToMailConfigurationOption.LDAP_TEST_PRINCIPAL.getKey());
}
Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java
===================================================================
--- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java 2014-06-30 08:20:04 UTC (rev 294)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java 2014-06-30 11:16:33 UTC (rev 295)
@@ -120,10 +120,6 @@
"faxtomail.ldap.admin.groups",
"DN du groupe ldap ayant les autorisations d'accéder à la partie admin de l'interface web", null, String.class),
- LDAP_PRINCIPAL_DOMAIN(
- "faxtomail.ldap.principal.domain",
- "Domaine des principals utilisés par l'authentification kerberos", "mac-groupe.net", String.class),
-
LDAP_TEST_PRINCIPAL(
"faxtomail.ldap.test.principal",
"Principal de test pour forcer un utilsateur particulier", null, String.class),
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java 2014-06-30 08:20:04 UTC (rev 294)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java 2014-06-30 11:16:33 UTC (rev 295)
@@ -76,12 +76,13 @@
List<SearchResultEntry> userEntries = userResult.getSearchEntries();
for (SearchResultEntry userEntry : userEntries) {
- String login = userEntry.getAttributeValue("sn");
+ String login = userEntry.getAttributeValue("sAMAccountName");
if (login == null) {
if (log.isWarnEnabled()) {
- log.warn("Null sn for DN " + userEntry.getDN());
+ log.warn("Null sAMAccountName for DN " + userEntry.getDN());
}
} else {
+ login = login.toLowerCase();
updateUserFormLdap(userEntry, login);
}
}
@@ -154,6 +155,7 @@
FaxToMailUser result;
+ login = login.toLowerCase();
try {
// first connexion to get full user login
LDAPConnection adminConnect = new LDAPConnection();
@@ -165,7 +167,7 @@
SearchResultEntry searchEntry = null;
if (adminConnect.isConnected()) {
// sn est le login interne à franciaflex
- String filter = String.format("(sn=%s)", login);
+ String filter = String.format("(sAMAccountName=%s)", login);
SearchResult searchResult = adminConnect.search(getApplicationConfig().getLdapBaseDn(), SearchScope.SUB, filter);
if (!searchResult.getSearchEntries().isEmpty()) {
searchEntry = searchResult.getSearchEntries().get(0);
@@ -212,14 +214,16 @@
*
* This method doesn't require any password.
*
- * @param principal user principal (without domain)
+ * @param login user principal (without domain)
* @return user instance
* @throws AuthenticationException is user can't be found in ldap
*/
- public FaxToMailUser getUserFromPrincipal(String principal) throws AuthenticationException {
+ public FaxToMailUser getUserFromPrincipal(String login) throws AuthenticationException {
FaxToMailUser result;
+ login = login.toLowerCase();
+
try {
// first connexion to get full user login
LDAPConnection adminConnect = new LDAPConnection();
@@ -227,21 +231,17 @@
adminConnect.bind(getApplicationConfig().getLdapUser(), getApplicationConfig().getLdapPassword());
// search user in ldap
- String login = null;
SearchResultEntry searchEntry = null;
if (adminConnect.isConnected()) {
- // userPrincipalName est l'identifiant kerberos
- // xxx(a)mac-groupe.net
- String filter = String.format("(userPrincipalName=%s@%s)", principal, getApplicationConfig().getLdapPrincipalDomain());
+ // sAMAccountName est l'identifiant kerberos
+ String filter = String.format("(sAMAccountName=%s)", login);
SearchResult searchResult = adminConnect.search(getApplicationConfig().getLdapBaseDn(), SearchScope.SUB, filter);
if (!searchResult.getSearchEntries().isEmpty()) {
searchEntry = searchResult.getSearchEntries().get(0);
- // sn est le 'login' interne a franciaflex
- login = searchEntry.getAttributeValue("sn");
}
adminConnect.close();
} else {
- throw new AuthenticationException("Utilisateur inconnu : " + principal);
+ throw new AuthenticationException("Utilisateur inconnu : " + login);
}
if( searchEntry != null ) {
@@ -254,7 +254,7 @@
result = new FaxToMailUserImpl();
faxToMailUserBinder.copyExcluding(user, result);
} else {
- throw new AuthenticationException("Utilisateur inconnu : " + principal);
+ throw new AuthenticationException("Utilisateur inconnu : " + login);
}
} catch (LDAPException ex) {
if (log.isWarnEnabled()) {
1
0
r294 - trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap
by echatellier@users.forge.codelutin.com 30 Jun '14
by echatellier@users.forge.codelutin.com 30 Jun '14
30 Jun '14
Author: echatellier
Date: 2014-06-30 10:20:04 +0200 (Mon, 30 Jun 2014)
New Revision: 294
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/294
Log:
Fix complete name
Modified:
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java 2014-06-30 08:01:09 UTC (rev 293)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java 2014-06-30 08:20:04 UTC (rev 294)
@@ -70,7 +70,7 @@
if (fakeGroup == null) {
fakeGroup = new FaxToMailUserGroupImpl();
fakeGroup.setName("fake group");
- fakeGroup.setName(adminGroups.get(0));
+ fakeGroup.setCompleteName(adminGroups.get(0));
fakeGroup = groupDao.create(fakeGroup);
}
1
0
r293 - trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap
by echatellier@users.forge.codelutin.com 30 Jun '14
by echatellier@users.forge.codelutin.com 30 Jun '14
30 Jun '14
Author: echatellier
Date: 2014-06-30 10:01:09 +0200 (Mon, 30 Jun 2014)
New Revision: 293
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/293
Log:
Fix fake ldap admin user group
Modified:
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java 2014-06-30 07:47:30 UTC (rev 292)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java 2014-06-30 08:01:09 UTC (rev 293)
@@ -24,7 +24,14 @@
* #L%
*/
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroup;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroupImpl;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroupTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserImpl;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserTopiaDao;
import com.franciaflex.faxtomail.services.service.LdapService;
@@ -40,17 +47,39 @@
protected FaxToMailUser getFakeFaxToMailUser() {
if (fakeUser == null) {
- FaxToMailUserTopiaDao dao = getPersistenceContext().getFaxToMailUserDao();
+ FaxToMailUserTopiaDao userDao = getPersistenceContext().getFaxToMailUserDao();
+ FaxToMailUserGroupTopiaDao groupDao = getPersistenceContext().getFaxToMailUserGroupDao();
- fakeUser = dao.forAll().findAnyOrNull();
+ fakeUser = userDao.forAll().findAnyOrNull();
+
+ // create user
if (fakeUser == null) {
fakeUser = new FaxToMailUserImpl();
fakeUser.setTrigraph("fkr");
fakeUser.setFirstName("Test ldap");
fakeUser.setLastName("Test ldap");
fakeUser.setLogin("test");
- dao.create(fakeUser);
+ fakeUser = userDao.create(fakeUser);
}
+
+ // add user to fake group
+ FaxToMailUserGroup fakeGroup = null;
+ List<String> adminGroups = getApplicationConfig().getLdapAdminGroups();
+ if (CollectionUtils.isNotEmpty(adminGroups)) {
+ fakeGroup = groupDao.forCompleteNameEquals(adminGroups.get(0)).findAnyOrNull();
+ if (fakeGroup == null) {
+ fakeGroup = new FaxToMailUserGroupImpl();
+ fakeGroup.setName("fake group");
+ fakeGroup.setName(adminGroups.get(0));
+ fakeGroup = groupDao.create(fakeGroup);
+ }
+
+ if (!fakeUser.containsUserGroups(fakeGroup)) {
+ fakeUser.addUserGroups(fakeGroup);
+ }
+ }
+
+ getPersistenceContext().commit();
}
return fakeUser;
}
1
0
r292 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail faxtomail-service/src/main/java/com/franciaflex/faxtomail/services faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap
by echatellier@users.forge.codelutin.com 30 Jun '14
by echatellier@users.forge.codelutin.com 30 Jun '14
30 Jun '14
Author: echatellier
Date: 2014-06-30 09:47:30 +0200 (Mon, 30 Jun 2014)
New Revision: 292
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/292
Log:
Add fake ldap service
Added:
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
Modified:
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceContext.java
Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java
===================================================================
--- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java 2014-06-29 18:47:40 UTC (rev 291)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java 2014-06-30 07:47:30 UTC (rev 292)
@@ -247,6 +247,10 @@
return applicationConfig.getOptionAsBoolean(FaxToMailConfigurationOption.MAIL_EXPUNGE.getKey());
}
+ public boolean isLdapMock() {
+ return applicationConfig.getOptionAsBoolean(FaxToMailConfigurationOption.LDAP_MOCK.getKey());
+ }
+
public String getLdapHost() {
return applicationConfig.getOption(FaxToMailConfigurationOption.LDAP_HOST.getKey());
}
Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java
===================================================================
--- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java 2014-06-29 18:47:40 UTC (rev 291)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java 2014-06-30 07:47:30 UTC (rev 292)
@@ -92,6 +92,10 @@
"Chemin vers le fichier de configuration des journaux",
null, String.class),
+ LDAP_MOCK(
+ "faxtomail.ldap.mock",
+ "Utilisation d'un service ldap mock", "false", Boolean.class),
+
LDAP_HOST(
"faxtomail.ldap.host",
"Adresse du serveur LDAP", null, String.class),
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceContext.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceContext.java 2014-06-29 18:47:40 UTC (rev 291)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceContext.java 2014-06-30 07:47:30 UTC (rev 292)
@@ -24,21 +24,23 @@
* #L%
*/
-import com.franciaflex.faxtomail.FaxToMailConfiguration;
-import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaPersistenceContext;
-import com.franciaflex.faxtomail.services.service.FaxToMailWebApplicationContext;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Date;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.jaxx.application.ApplicationTechnicalException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Date;
+import com.franciaflex.faxtomail.FaxToMailConfiguration;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaPersistenceContext;
+import com.franciaflex.faxtomail.services.service.FaxToMailWebApplicationContext;
+import com.franciaflex.faxtomail.services.service.LdapService;
+import com.franciaflex.faxtomail.services.service.ldap.LdapServiceMock;
public class FaxToMailServiceContext {
- private static final Log log =
- LogFactory.getLog(FaxToMailServiceContext.class);
+ private static final Log log = LogFactory.getLog(FaxToMailServiceContext.class);
protected FaxToMailConfiguration applicationConfig;
@@ -64,6 +66,11 @@
public <E extends FaxToMailService> E newService(Class<E> serviceClass) {
+ // special case for mock services
+ if (serviceClass.equals(LdapService.class) && applicationConfig.isLdapMock()) {
+ serviceClass = (Class<E>)LdapServiceMock.class;
+ }
+
E service;
try {
Added: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java (rev 0)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java 2014-06-30 07:47:30 UTC (rev 292)
@@ -0,0 +1,77 @@
+package com.franciaflex.faxtomail.services.service.ldap;
+
+/*
+ * #%L
+ * FaxToMail :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2014 Franciaflex, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserImpl;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUserTopiaDao;
+import com.franciaflex.faxtomail.services.service.LdapService;
+
+/**
+ * Surcharge les methodes qui utilisent le serveur ldap pour pouvoir fonctionner sans serveur ldap.
+ *
+ * @author Eric Chatellier
+ */
+public class LdapServiceMock extends LdapService {
+
+ protected FaxToMailUser fakeUser;
+
+ protected FaxToMailUser getFakeFaxToMailUser() {
+ if (fakeUser == null) {
+ FaxToMailUserTopiaDao dao = getPersistenceContext().getFaxToMailUserDao();
+
+ fakeUser = dao.forAll().findAnyOrNull();
+ if (fakeUser == null) {
+ fakeUser = new FaxToMailUserImpl();
+ fakeUser.setTrigraph("fkr");
+ fakeUser.setFirstName("Test ldap");
+ fakeUser.setLastName("Test ldap");
+ fakeUser.setLogin("test");
+ dao.create(fakeUser);
+ }
+ }
+ return fakeUser;
+ }
+
+ @Override
+ public void updateLdapData() {
+ // do nothing here
+ }
+
+ @Override
+ public FaxToMailUser getUserBean(String userTopiaId) {
+ return getFakeFaxToMailUser();
+ }
+
+ @Override
+ public FaxToMailUser authenticateUser(String login, String password) throws AuthenticationException {
+ return getFakeFaxToMailUser();
+ }
+
+ @Override
+ public FaxToMailUser getUserFromPrincipal(String principal) throws AuthenticationException {
+ return getFakeFaxToMailUser();
+ }
+}
Property changes on: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ldap/LdapServiceMock.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0