branch develop updated (d791361 -> ab49fc1)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from d791361 refs #9107 #9108 sauvegarde de l'état de l'arbre dans la session swing et plus dans le contexte new ab49fc1 fixes #9099 mauvais tri si on affiche le nom entier dans les colonnes representant des utilisateurs + correction sur des requetes qui ne passent pas sur sqlserver The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit ab49fc1099ca45ba45ff55db55e7562cfb372541 Author: Kevin Morin <morin@codelutin.com> Date: Thu Apr 6 18:06:14 2017 +0200 fixes #9099 mauvais tri si on affiche le nom entier dans les colonnes representant des utilisateurs + correction sur des requetes qui ne passent pas sur sqlserver Summary of changes: .../persistence/entities/EmailTopiaDao.java | 49 ++++++++++++++++++---- .../faxtomail/persistence/entities/MailField.java | 6 +-- .../src/main/resources/faxToMail.properties | 2 +- .../ui/swing/util/FolderTreeSwingSessionState.java | 24 +++++++++++ 4 files changed, 70 insertions(+), 11 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit ab49fc1099ca45ba45ff55db55e7562cfb372541 Author: Kevin Morin <morin@codelutin.com> Date: Thu Apr 6 18:06:14 2017 +0200 fixes #9099 mauvais tri si on affiche le nom entier dans les colonnes representant des utilisateurs + correction sur des requetes qui ne passent pas sur sqlserver --- .../persistence/entities/EmailTopiaDao.java | 49 ++++++++++++++++++---- .../faxtomail/persistence/entities/MailField.java | 6 +-- .../src/main/resources/faxToMail.properties | 2 +- .../ui/swing/util/FolderTreeSwingSessionState.java | 24 +++++++++++ 4 files changed, 70 insertions(+), 11 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java index 7ee4374..aba1a85 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java @@ -524,30 +524,65 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { String tableToJoin = null; if (!pagination.getOrderClauses().isEmpty()) { orderClause = pagination.getOrderClauses().get(0).getClause(); - String clauseNoSum = orderClause.replaceAll("SUM\\((.*)\\)", "$1"); + String clauseNoSum = orderClause.replaceAll("(SUM|SIZE)\\((.*)\\)", "$2"); int dotIndex = clauseNoSum.indexOf('.'); if (dotIndex >= 0) { tableToJoin = clauseNoSum.substring(0, dotIndex); + } else { + // il s'agit d'un champ portant sur un utilisateur, + // donc on vérifie dans la conf du dossier si on trie sur le trigramme ou le nom complet + MailFolder folderWithTrigrammConf = folder; + while (folderWithTrigrammConf.getParent() != null + && folderWithTrigrammConf.getDisplayOnlyUserTrigraphInTables() == null) { + folderWithTrigrammConf = folderWithTrigrammConf.getParent(); + } + boolean sortOnTrigraph = Boolean.TRUE.equals(folderWithTrigrammConf.getDisplayOnlyUserTrigraphInTables()); + boolean desc = pagination.getOrderClauses().get(0).isDesc(); + if (sortOnTrigraph) { + orderClause += "." + FaxToMailUser.PROPERTY_TRIGRAPH; + pagination = PaginationParameter.of(pagination.getPageNumber(), pagination.getPageSize(), + orderClause, desc); + } else { + String originalClause = orderClause; + orderClause += "." + FaxToMailUser.PROPERTY_LAST_NAME + + ", " + originalClause + "." + FaxToMailUser.PROPERTY_FIRST_NAME + + ", " + originalClause + "." + FaxToMailUser.PROPERTY_TRIGRAPH; + pagination = PaginationParameter.of(pagination.getPageNumber(), pagination.getPageSize(), + originalClause + "." + FaxToMailUser.PROPERTY_LAST_NAME, desc, + originalClause + "." + FaxToMailUser.PROPERTY_FIRST_NAME, desc, + originalClause + "." + FaxToMailUser.PROPERTY_TRIGRAPH, desc); + } } } boolean orderByWithSum = orderClause != null && orderClause.startsWith("SUM("); + boolean orderByWithSize = orderClause != null && orderClause.startsWith("SIZE("); // add same fecth liste as emailService#getEmailForFolder() StringBuilder hqlForFetchStep1 = new StringBuilder("SELECT " + EMAIL_IDENTIFIER + "." + TopiaEntity.PROPERTY_TOPIA_ID); - if (orderByWithSum) { - hqlForFetchStep1.append(", " + orderClause); + if (orderClause != null && !orderByWithSize) { + hqlForFetchStep1.append(", ").append(orderClause); } - hqlForFetchStep1.append(" FROM " + Email.class.getName() + " " + EMAIL_IDENTIFIER); + if (orderByWithSize && tableToJoin != null) { + hqlForFetchStep1.append(", ").append(tableToJoin).append(".").append(TopiaEntity.PROPERTY_TOPIA_ID); + } + hqlForFetchStep1.append(" FROM ").append(Email.class.getName()).append(" ").append(EMAIL_IDENTIFIER); if (RANGE_ROW_IDENTIFIER.equals(tableToJoin)) { - hqlForFetchStep1.append(" LEFT JOIN " + EMAIL_IDENTIFIER + "." + Email.PROPERTY_RANGE_ROW + " " + RANGE_ROW_IDENTIFIER); + hqlForFetchStep1.append(" LEFT JOIN ").append(EMAIL_IDENTIFIER).append(".").append(Email.PROPERTY_RANGE_ROW) + .append(" ").append(RANGE_ROW_IDENTIFIER); } if (orderClause != null) { addJoinsForOrderBy(orderClause, hqlForFetchStep1); } - hqlForFetchStep1.append(" ").append(query).append(" GROUP BY E.topiaId"); + hqlForFetchStep1.append(" ").append(query).append(" GROUP BY ") + .append(EMAIL_IDENTIFIER).append(".").append(Email.PROPERTY_TOPIA_ID); + if (orderClause != null && !orderByWithSum && !orderByWithSize) { + hqlForFetchStep1.append(", ").append(orderClause); + } else if (orderByWithSize && tableToJoin != null) { + hqlForFetchStep1.append(", ").append(tableToJoin).append(".").append(TopiaEntity.PROPERTY_TOPIA_ID); + } if (log.isTraceEnabled()) { log.trace("getEmailForFolder 1 - " + hqlForFetchStep1); } @@ -578,7 +613,7 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { } List<String> step1ResultTopiaIds; - if (orderByWithSum) { + if (orderClause != null && (!orderByWithSize || tableToJoin != null)) { step1ResultTopiaIds = Lists.transform(pageResult.getElements(), new Function<Object[], String>() { @Override public String apply(Object[] input) { diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailField.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailField.java index 0056018..9dd1e65 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailField.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailField.java @@ -51,14 +51,14 @@ public enum MailField { PF_NB("SUM(" + EmailTopiaDao.RANGE_ROW_IDENTIFIER + "." + RangeRow.PROPERTY_PRODUCT_QUANTITY + ")"), SAV_NB("SUM(" + EmailTopiaDao.RANGE_ROW_IDENTIFIER + "." + RangeRow.PROPERTY_SAV_QUANTITY + ")"), QUOTATION_NB("SUM(" + EmailTopiaDao.RANGE_ROW_IDENTIFIER + "." + RangeRow.PROPERTY_QUOTATION_QUANTITY + ")"), - TAKEN_BY(EmailTopiaDao.TAKEN_BY_IDENTIFIER + "." + FaxToMailUser.PROPERTY_TRIGRAPH), - LAST_ATTACHMENT_OPENING_IN_THIS_FOLDER_USER(EmailTopiaDao.LAST_ATTACHMENT_OPENER_IDENTIFIER + "." + FaxToMailUser.PROPERTY_TRIGRAPH), + TAKEN_BY(EmailTopiaDao.TAKEN_BY_IDENTIFIER), + LAST_ATTACHMENT_OPENING_IN_THIS_FOLDER_USER(EmailTopiaDao.LAST_ATTACHMENT_OPENER_IDENTIFIER), REPLIES("SIZE(" + EmailTopiaDao.EMAIL_IDENTIFIER + "." + Email.PROPERTY_REPLIES + ")"), ATTACHMENT("SIZE(" + EmailTopiaDao.EMAIL_IDENTIFIER + "." + Email.PROPERTY_ATTACHMENT + ")"), GROUP("SIZE(" + EmailTopiaDao.GROUP_IDENTIFIER + "." + EmailGroup.PROPERTY_EMAIL + ")"), EDI_RETURN(EmailTopiaDao.EMAIL_IDENTIFIER + "." + Email.PROPERTY_EDI_ERROR), SUBJECT(EmailTopiaDao.EMAIL_IDENTIFIER + "." + Email.PROPERTY_SUBJECT), - LAST_PRINTING_USER(EmailTopiaDao.LAST_PRINTING_USER_IDENTIFIER + "." + FaxToMailUser.PROPERTY_TRIGRAPH), + LAST_PRINTING_USER(EmailTopiaDao.LAST_PRINTING_USER_IDENTIFIER), LAST_PRINTING_DATE(EmailTopiaDao.EMAIL_IDENTIFIER + "." + Email.PROPERTY_LAST_PRINTING_DATE); private String orderProperty; diff --git a/faxtomail-persistence/src/main/resources/faxToMail.properties b/faxtomail-persistence/src/main/resources/faxToMail.properties index f7d5084..237548e 100644 --- a/faxtomail-persistence/src/main/resources/faxToMail.properties +++ b/faxtomail-persistence/src/main/resources/faxToMail.properties @@ -31,7 +31,7 @@ hibernate.connection.password= #hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect #hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver -#hibernate.connection.url=jdbc:jtds:sqlserver://192.168.100.247:1433/faxtomailtest +#hibernate.connection.url=jdbc:jtds:sqlserver://192.168.100.238:1433/faxtomail #hibernate.connection.username=fx #hibernate.connection.password=FX2013! diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FolderTreeSwingSessionState.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FolderTreeSwingSessionState.java index f6c9b16..7a56231 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FolderTreeSwingSessionState.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FolderTreeSwingSessionState.java @@ -1,5 +1,29 @@ package com.franciaflex.faxtomail.ui.swing.util; +/*- + * #%L + * FaxToMail :: UI + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2014 - 2017 Mac-Groupe, 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.MailFolder; import jaxx.runtime.swing.session.State; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm