r412 - 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-web/src/main/java/com/franciaflex/faxtomail/web faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin
Author: echatellier Date: 2014-07-17 16:18:33 +0200 (Thu, 17 Jul 2014) New Revision: 412 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/412 Log: fixes #5453: Utilisation de execAndWait pour la mise ?\195?\160 jour ldap Added: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-wait.jsp Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailInterceptor.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/LdapAction.java trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-input.jsp 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-07-17 12:11:37 UTC (rev 411) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapService.java 2014-07-17 14:18:33 UTC (rev 412) @@ -52,6 +52,28 @@ private static final Log log = LogFactory.getLog(LdapService.class); /** + * Retourne le nombre d'utilisateur en base. + * + * @return user count + */ + public long getUserCount() { + FaxToMailUserTopiaDao faxtomailUserDao = getPersistenceContext().getFaxToMailUserDao(); + long result = faxtomailUserDao.count(); + return result; + } + + /** + * Retourne le nombre de groupe en base. + * + * @return group count + */ + public long getGroupCount() { + FaxToMailUserGroupTopiaDao faxtomailUserGroupDao = getPersistenceContext().getFaxToMailUserGroupDao(); + long result = faxtomailUserGroupDao.count(); + return result; + } + + /** * Update all user and group from ldap. */ public void updateLdapData() { 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-07-17 12:11:37 UTC (rev 411) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/LoadFolderEmailsAction.java 2014-07-17 14:18:33 UTC (rev 412) @@ -110,7 +110,7 @@ } } // / getValidRangeRowModels() - + demand.setValid(handler.isDemandeValid(demand)); demands.add(demand); } Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailInterceptor.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailInterceptor.java 2014-07-17 12:11:37 UTC (rev 411) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailInterceptor.java 2014-07-17 14:18:33 UTC (rev 412) @@ -110,6 +110,8 @@ } else if (FaxToMailConfiguration.class.isAssignableFrom(propertyType)) { toInject = getFaxToMailApplicationContext(invocation).getApplicationConfig(); + } else if (FaxToMailApplicationContext.class.isAssignableFrom(propertyType)) { + toInject = getFaxToMailApplicationContext(invocation); } if (toInject != null) { Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/LdapAction.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/LdapAction.java 2014-07-17 12:11:37 UTC (rev 411) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/LdapAction.java 2014-07-17 14:18:33 UTC (rev 412) @@ -30,7 +30,11 @@ import org.apache.struts2.convention.annotation.InterceptorRef; import org.apache.struts2.convention.annotation.InterceptorRefs; import org.apache.struts2.convention.annotation.Result; +import org.nuiton.jaxx.application.ApplicationContext; +import com.franciaflex.faxtomail.FaxToMailApplicationContext; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaPersistenceContext; +import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.LdapService; import com.franciaflex.faxtomail.web.FaxToMailActionSupport; import com.opensymphony.xwork2.Preparable; @@ -38,7 +42,9 @@ @InterceptorRefs({ @InterceptorRef("faxToMailInterceptor"), @InterceptorRef("loginInterceptor"), - @InterceptorRef("paramsPrepareParamsStack") + @InterceptorRef("paramsPrepareParamsStack"), + @InterceptorRef(value="execAndWait", + params={"excludeMethods","input"}) }) public class LdapAction extends FaxToMailActionSupport implements Preparable { @@ -46,10 +52,28 @@ protected LdapService ldapService; + protected long userCount; + + protected long groupCount; + + protected FaxToMailApplicationContext applicationContext; + + public void setApplicationContext(FaxToMailApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + public void setLdapService(LdapService ldapService) { this.ldapService = ldapService; } + public long getUserCount() { + return userCount; + } + + public long getGroupCount() { + return groupCount; + } + @Override public void prepare() throws Exception { // check authorization @@ -61,13 +85,29 @@ @Override @Action("ldap-input") public String input() throws Exception { + userCount = ldapService.getUserCount(); + groupCount = ldapService.getGroupCount(); return INPUT; } @Override - @Action(results = {@Result(type = "redirectAction", params = {"actionName", "ldap-input"})}) + @Action(results = { + @Result(name="wait", location="/WEB-INF/content/admin/ldap-wait.jsp"), + @Result(type = "redirectAction", params = {"actionName", "ldap-input"})}) public String execute() throws Exception { - ldapService.updateLdapData(); + + // cette methode doit ouvrir sa propre connexion sinon l'interceptor va la fermer + // and cause du execAndWait + FaxToMailTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext(); + try { + persistenceContext = applicationContext.newPersistenceContext(); + FaxToMailServiceContext serviceContext = applicationContext.newServiceContext(persistenceContext); + LdapService ldapService2 = serviceContext.newService(LdapService.class); + ldapService2.updateLdapData(); + } finally { + persistenceContext.close(); + } + return SUCCESS; } } Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-input.jsp 2014-07-17 12:11:37 UTC (rev 411) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-input.jsp 2014-07-17 14:18:33 UTC (rev 412) @@ -28,14 +28,6 @@ <html> <head> <title>Ldap</title> - - <script type="text/javascript"> - function disableAndSubmit() { - $("#submit_button").attr("disabled", true); - $("#submit_button").text("Mise à jour en cours..."); - $("#main_form").submit(); - } - </script> </head> <body> @@ -44,11 +36,19 @@ <h1 class="page-header">Active Directory</h1> + La base de données contient actuellement : + <ul> + <li><strong>${userCount}</strong> utilisateurs + <li><strong>${groupCount}</strong> groupes + </ul> + + <hr /> + <s:form id="main_form" action="ldap" method="post"> Cette action permet d'importer tout les utilisateurs et les groupes du serveur Active Directory dans l'application FaxToMail. Cette action peut prendre quelques minutes. - <button id="submit_button" type="button" class="btn btn-primary navbar-btn" onclick="disableAndSubmit()">Mettre à jour les groupes et utilisateurs</button> + <button id="submit_button" type="submit" class="btn btn-primary navbar-btn">Mettre à jour les groupes et utilisateurs</button> </s:form> </div> Added: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-wait.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-wait.jsp (rev 0) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-wait.jsp 2014-07-17 14:18:33 UTC (rev 412) @@ -0,0 +1,44 @@ +<%-- + #%L + FaxToMail :: Web + $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% + --%> +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<!DOCTYPE html> +<%@taglib uri="/struts-tags" prefix="s" %> + +<html> + <head> + <title>Ldap</title> + <meta http-equiv="refresh" content="5;url=<s:url />"/> + </head> + + <body> + + <div id="main-container" class="container"> + + <h1 class="page-header">Active Directory</h1> + + <em>L'import des utilisateurs et groupes Active Directory est en cours...</em> + + </div> + </body> +</html> Property changes on: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/ldap-wait.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native
participants (1)
-
echatellier@users.forge.codelutin.com