r107 - in trunk: . faxtomail-persistence/src/main/java/com/franciaflex/faxtomail faxtomail-persistence/src/main/xmi faxtomail-service faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-web faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin faxtomail-ui-web/src/main/webapp/js
Author: echatellier Date: 2014-05-30 10:55:55 +0200 (Fri, 30 May 2014) New Revision: 107 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/107 Log: refs #4662: Display ldap groups 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-persistence/src/main/xmi/faxtomail.properties trunk/faxtomail-persistence/src/main/xmi/faxtomail.zargo trunk/faxtomail-service/pom.xml trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationService.java trunk/faxtomail-ui-web/pom.xml trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/import-input.jsp trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js trunk/pom.xml Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java 2014-05-30 08:55:55 UTC (rev 107) @@ -236,6 +236,22 @@ return applicationConfig.getOptionAsBoolean(FaxToMailConfigurationOption.SMTP_SSL.getKey()); } + public String getLdapHost() { + return applicationConfig.getOption(FaxToMailConfigurationOption.LDAP_HOST.getKey()); + } + + public int getLdapPort() { + return applicationConfig.getOptionAsInt(FaxToMailConfigurationOption.LDAP_PORT.getKey()); + } + + public String getLdapUser() { + return applicationConfig.getOption(FaxToMailConfigurationOption.LDAP_USER.getKey()); + } + + public String getLdapPassword() { + return applicationConfig.getOption(FaxToMailConfigurationOption.LDAP_PASSWORD.getKey()); + } + public String getInstanceUrl() { return applicationConfig.getOption(FaxToMailConfigurationOption.INSTANCE_URL.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-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java 2014-05-30 08:55:55 UTC (rev 107) @@ -77,29 +77,32 @@ "Mode développement, court-circuite l'envoi de mail", "true", Boolean.class), -// CREATE_TRAINING_USERS( -// "extranetEncAhi.createTrainingUsers", -// "Vrai s'il faut créer les comptes de formation au démarrage de l'application", -// "true", Boolean.class), - STORAGE_FILE( "faxtomail.storage", "L'emplacement de stockage des fichiers, répertoire accessible en écriture sur le FS", "/tmp/faxtomail/storage", File.class), -// SUPPORT_EMAIL( -// "extranetEncAhi.supportEmail", -// "L'adresse mail à contacter par l'utilisateur pour demander de l'aide", -// "extranet-enc-ahi-users@list.forge.codelutin.com", String.class), - LOG_CONFIGURATION_FILE( "logConfigurationFile", "Chemin vers le fichier de configuration des journaux", - null, - String.class), + null, String.class), - //SERVICE + LDAP_HOST( + "faxtomail.ldap.host", + "Adresse du serveur LDAP", null, String.class), + + LDAP_PORT( + "faxtomail.ldap.port", + "Port du serveur LDAP", "389", Integer.class), + + LDAP_USER( + "faxtomail.ldap.user", + "Nom d'utilisateur pour la connexion au serveur ldap", null, String.class), + LDAP_PASSWORD( + "faxtomail.ldap.password", + "Mot de passe pour la connexion au serveur LDAP", null, String.class), + // TRANSIENT CONFIG VERSION( "faxtomail.version", @@ -189,15 +192,6 @@ true ), -// FAXTOMAIL_HELP_DIRECTORY( -// "faxtomail.help.directory", -// n("faxtomail.config.option.help.directory.description"), -// "${faxtomail.basedir}/help", -// File.class, -// false, -// true -// ), - START_ACTION_FILE( "faxtomail.startActionFile", n("faxtomail.config.option.startActionFile.description"), @@ -306,7 +300,7 @@ String description, String defaultValue, Class<?> type) { - this(key, description, defaultValue, type, true); + this(key, description, defaultValue, type, false); } @Override Modified: trunk/faxtomail-persistence/src/main/xmi/faxtomail.properties =================================================================== --- trunk/faxtomail-persistence/src/main/xmi/faxtomail.properties 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-persistence/src/main/xmi/faxtomail.properties 2014-05-30 08:55:55 UTC (rev 107) @@ -1,10 +1,10 @@ ### # #%L -# Extranet ENC-AHI :: Persistence +# FaxToMail :: Persistence # $Id$ # $HeadURL$ # %% -# Copyright (C) 2013 Ministère des Affaires sociales et de la Santé +# 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 @@ -24,10 +24,31 @@ model.tagValue.notGenerateToString=true model.tagValue.constantPrefix=PROPERTY_ model.tagValue.hibernateAttributeType.java.lang.String=text -#model.tagValue.hibernateAttributeType.java.sql.Blob=blob model.tagValue.useEnumerationName=true model.tagValue.doNotGenerateBooleanGetMethods=true +# EtatAttente +com.franciaflex.faxtomail.persistence.entities.EtatAttente.attribute.label.tagvalue.naturalId=true + +# Priority +com.franciaflex.faxtomail.persistence.entities.Priority.attribute.label.tagvalue.naturalId=true + +# Range +com.franciaflex.faxtomail.persistence.entities.Range.attribute.label.tagvalue.naturalId=true + +# DemandType +com.franciaflex.faxtomail.persistence.entities.DemandType.attribute.label.tagvalue.naturalId=true + +# Client +#com.franciaflex.faxtomail.persistence.entities.Client.attribute.emailAddress.tagvalue.naturalId=true + + +# EmailAccount +com.franciaflex.faxtomail.persistence.entities.EmailAccount.attribute.protocol.tagvalue.naturalId=true +com.franciaflex.faxtomail.persistence.entities.EmailAccount.attribute.host.tagvalue.naturalId=true +com.franciaflex.faxtomail.persistence.entities.EmailAccount.attribute.login.tagvalue.naturalId=true + + # Attachment com.franciaflex.faxtomail.persistence.entities.Attachment.attribute.originalFile.tagvalue.notNull=true @@ -40,17 +61,16 @@ com.franciaflex.faxtomail.persistence.entities.MailFolder.attribute.parent.tagvalue.notNull=false com.franciaflex.faxtomail.persistence.entities.MailFolder.attribute.name.tagvalue.naturalId=true -# EtatAttente -com.franciaflex.faxtomail.persistence.entities.EtatAttente.attribute.label.tagvalue.naturalId=true +# MailFilter +com.franciaflex.faxtomail.persistence.entities.MailFilter.attribute.expression.tagvalue.naturalId=true +com.franciaflex.faxtomail.persistence.entities.MailFilter.attribute.mailFolder.tagvalue.notNull=true +com.franciaflex.faxtomail.persistence.entities.MailFilter.attribute.position.tagvalue.unique=true -# Priority -com.franciaflex.faxtomail.persistence.entities.Priority.attribute.label.tagvalue.naturalId=true +# FaxToMailGroup +com.franciaflex.faxtomail.persistence.entities.FaxToMailUserGroup.attribute.name.tagvalue.naturalId=true -# Range -com.franciaflex.faxtomail.persistence.entities.Range.attribute.label.tagvalue.naturalId=true +# Email +com.franciaflex.faxtomail.persistence.entities.Email.attribute.mailFolder.tagvalue.notNull=true -# DemandType -com.franciaflex.faxtomail.persistence.entities.DemandType.attribute.label.tagvalue.naturalId=true - -# Client -#com.franciaflex.faxtomail.persistence.entities.Client.attribute.emailAddress.tagvalue.naturalId=true +# History +com.franciaflex.faxtomail.persistence.entities.History.attribute.type.tagvalue.notNull=true Modified: trunk/faxtomail-persistence/src/main/xmi/faxtomail.zargo =================================================================== (Binary files differ) Modified: trunk/faxtomail-service/pom.xml =================================================================== --- trunk/faxtomail-service/pom.xml 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-service/pom.xml 2014-05-30 08:55:55 UTC (rev 107) @@ -153,6 +153,10 @@ <artifactId>h2</artifactId> </dependency> + <dependency> + <groupId>com.unboundid</groupId> + <artifactId>unboundid-ldapsdk</artifactId> + </dependency> </dependencies> <build> Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationService.java 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationService.java 2014-05-30 08:55:55 UTC (rev 107) @@ -39,7 +39,11 @@ import com.franciaflex.faxtomail.persistence.entities.MailFilter; import com.franciaflex.faxtomail.persistence.entities.MailFilterTopiaDao; import com.franciaflex.faxtomail.services.FaxToMailServiceSupport; -import com.google.common.collect.Lists; +import com.unboundid.ldap.sdk.LDAPConnection; +import com.unboundid.ldap.sdk.LDAPException; +import com.unboundid.ldap.sdk.SearchResult; +import com.unboundid.ldap.sdk.SearchResultEntry; +import com.unboundid.ldap.sdk.SearchScope; /** * @author kmorin <kmorin@codelutin.com> @@ -49,12 +53,6 @@ private static final Log log = LogFactory.getLog(ConfigurationService.class); - public List<Configuration> getAllConfigurations() { - ConfigurationTopiaDao dao = getPersistenceContext().getConfigurationDao(); - List<Configuration> configs = Lists.newArrayList(dao.findAll()); - return configs; - } - /** * Return unique database configuration. * @@ -69,7 +67,12 @@ return config; } - public Configuration saveConfiguration(Configuration config) { + /** + * Save configuration. + * + * @param config cufiguration to save + */ + public void saveConfiguration(Configuration config) { ConfigurationTopiaDao dao = getPersistenceContext().getConfigurationDao(); if (config.isPersisted()) { config = dao.update(config); @@ -77,13 +80,28 @@ config = dao.create(config); } getPersistenceContext().commit(); - return config; } - - public Collection<MailFilter> saveMailFilters(Collection<MailFilter> mailFilters) { + + /** + * Get all mail filter ordered by position. + * + * @return all mail filter + */ + public List<MailFilter> getMailFilters() { + MailFilterTopiaDao mailFilterDao = getPersistenceContext().getMailFilterDao(); + List<MailFilter> result = mailFilterDao.forAll().setOrderByArguments(MailFilter.PROPERTY_POSITION + " asc").findAll(); + return result; + } + + /** + * Save all mail filters. + * + * @param mailFilters mail filters to save + */ + public void saveMailFilters(List<MailFilter> mailFilters) { MailFilterTopiaDao dao = getPersistenceContext().getMailFilterDao(); - Collection<MailFilter> result = new ArrayList<>(); + int position = 0; for (MailFilter mailFilter : mailFilters) { MailFilter filter; @@ -95,19 +113,67 @@ } filter.setExpression(mailFilter.getExpression()); filter.setMailFolder(mailFilter.getMailFolder()); + filter.setPosition(position); if (create) { filter = dao.create(filter); } else { filter = dao.update(filter); } - result.add(filter); + + position++; } - return result; } - public Collection<EmailAccount> getEmailAccounts() { + /** + * Return all email accounts. + * + * @return all email account + */ + public List<EmailAccount> getEmailAccounts() { EmailAccountTopiaDao emailAccountTopiaDao = getPersistenceContext().getEmailAccountDao(); - return new ArrayList<>(emailAccountTopiaDao.findAll()); + return emailAccountTopiaDao.findAll(); } + + /** + * + * @param emailAccounts + */ + public void saveEmailAccounts(List<EmailAccount> emailAccounts) { + + } + + /** + * Get ldap connection. + * + * @return + * @throws LDAPException + */ + protected LDAPConnection getLDAPConnection() throws LDAPException { + // host, port, username and password + return new LDAPConnection(getApplicationConfig().getLdapHost(), + getApplicationConfig().getLdapPort(), + getApplicationConfig().getLdapUser(), + getApplicationConfig().getLdapPassword()); + } + + public List<String> getAllGroups() throws LDAPException { + List<String> results = new ArrayList<>(); + + // ldapsearch -h ldap.codelutin.home -b "ou=Group,DC=codelutin,DC=home" "objectClass=posixGroup" + String baseDN = "ou=Group,DC=codelutin,DC=home"; + String filter = "(objectClass=posixGroup)"; + + LDAPConnection connection = getLDAPConnection(); + if (connection.isConnected()) { + SearchResult searchResult = connection.search(baseDN, SearchScope.ONE, filter); + + List<SearchResultEntry> searchEntries = searchResult.getSearchEntries(); + for (SearchResultEntry searchEntry : searchEntries) { + results.add(searchEntry.getAttributeValue("cn")); + } + } + + return results; + } } Modified: trunk/faxtomail-ui-web/pom.xml =================================================================== --- trunk/faxtomail-ui-web/pom.xml 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-ui-web/pom.xml 2014-05-30 08:55:55 UTC (rev 107) @@ -242,6 +242,11 @@ <groupId>org.webjars</groupId> <artifactId>angular-ui-utils</artifactId> </dependency> + + <dependency> + <groupId>org.webjars</groupId> + <artifactId>angular-ui-sortable</artifactId> + </dependency> </dependencies> <build> Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java 2014-05-30 08:55:55 UTC (rev 107) @@ -35,8 +35,10 @@ import com.franciaflex.faxtomail.persistence.entities.Action; import com.franciaflex.faxtomail.persistence.entities.Configuration; import com.franciaflex.faxtomail.persistence.entities.ConfigurationImpl; +import com.franciaflex.faxtomail.persistence.entities.EmailAccount; import com.franciaflex.faxtomail.persistence.entities.EtatAttente; import com.franciaflex.faxtomail.persistence.entities.Field; +import com.franciaflex.faxtomail.persistence.entities.MailFilter; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.services.service.ConfigurationService; import com.franciaflex.faxtomail.services.service.MailFolderService; @@ -65,6 +67,12 @@ protected List<MailFolder> mailFolders; + protected List<MailFilter> mailFilters; + + protected List<String> groupNames; + + protected List<EmailAccount> emailAccounts; + @Override public void prepare() throws Exception { configuration = configurationService.getConfiguration(); @@ -75,6 +83,9 @@ public String input() throws Exception { etatAttentes = referentielService.getAllEtatAttente(); mailFolders = mailFolderService.getRootMailFolders(); + groupNames = configurationService.getAllGroups(); + emailAccounts = configurationService.getEmailAccounts(); + mailFilters = configurationService.getMailFilters(); return INPUT; } @@ -135,4 +146,8 @@ Type type = new TypeToken<List<MailFolder>>() {}.getType(); this.mailFolders = getGson().fromJson(json, type); } + + public List<String> getGroupNames() { + return groupNames; + } } Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-05-30 08:55:55 UTC (rev 107) @@ -48,6 +48,8 @@ 'etatAttenteFields': <s:property value="toJson(etatAttenteFields)" escapeHtml="false"/>, 'mailFolders': <s:property value="toJson(mailFolders)" escapeHtml="false"/>, 'searchDisplayColumns': <s:property value="toJson(configuration.searchDisplayColumns)" escapeHtml="false"/>, + 'groupNames': <s:property value="toJson(groupNames)" escapeHtml="false"/>, + 'emailAccounts': <s:property value="toJson(emailAccounts)" escapeHtml="false"/> }); </script> </head> @@ -55,17 +57,19 @@ <body> <div ng-app="ConfigurationModule"> <!-- navbar --> - <header class="navbar navbar-inverse navbar-static-top bs-docs-nav" id="top" role="banner"> + <header class="navbar navbar-inverse navbar-static-top" role="banner"> <div class="container"> <div class="navbar-header"> <a href="<s:url value='/' />" class="navbar-brand">FaxToMail</a> </div> - <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> + <nav class="collapse navbar-collapse" role="navigation"> <ul class="nav navbar-nav"> - <li class="active"><a href="<s:url action='configuration-input' />" class="navbar-brand">Configuration</a></li> - <li><a href="<s:url action='import-input' />" class="navbar-brand">Import</a></li> + <li class="active"><a href="<s:url action='configuration-input' />"> + <span class="glyphicon glyphicon-cog"></span> Configuration</a></li> + <li><a href="<s:url action='import-input' />"> + <span class="glyphicon glyphicon-upload"></span> Import</a></li> </ul> - </div> + </nav> </div> </header> @@ -200,8 +204,10 @@ </thead> <tbody> <tr ng-repeat="customerResponsible in selectedMailFolder.customerResponsibles track by $index"> - <td>{{customerResponsible}}</td> <td> + <span class="glyphicon glyphicon-user"></span> + {{customerResponsible}}</td> + <td> <a class="pull-right btn btn-danger btn-xs" ng-click="removeCustomerResponsible($index)"> <span class="glyphicon glyphicon-remove"></span> </a> @@ -210,7 +216,7 @@ </tbody> </table> - Nouveau : <input type="email" ng-model="newCustomerResponsible" /> + Nouveau : <input type="email" ng-model="newCustomerResponsible" placeholder="nom.prenom@franciaflex.fr" /> <a class="btn btn-success btn-xs" ng-click="addCustomerResponsible()" ng-disabled="!newCustomerResponsible"> <span class="glyphicon glyphicon-ok"></span> </a> @@ -238,8 +244,10 @@ </thead> <tbody> <tr ng-repeat="replyAddress in selectedMailFolder.replyAddresses track by $index"> - <td>{{replyAddress}}</td> <td> + <span class="glyphicon glyphicon-user"></span> + {{replyAddress}}</td> + <td> <a class="pull-right btn btn-danger btn-xs" ng-click="removeReplyAddress($index)"> <span class="glyphicon glyphicon-remove"></span> </a> @@ -248,7 +256,7 @@ </tbody> </table> - Nouveau : <input type="email" ng-model="newReplyAddress" /> + Nouveau : <input type="email" ng-model="newReplyAddress" placeholder="nom.prenom@franciaflex.fr" /> <a class="btn btn-success btn-xs" ng-click="addReplyAddress()" ng-disabled="!newReplyAddress"> <span class="glyphicon glyphicon-ok"></span> </a> @@ -294,8 +302,27 @@ <th>Type</th> </tr> </thead> - <tbody></tbody> + <tbody> + + </tbody> </table> + + <div class="form-group"> + Nouveau utilisateur : <input type="email" ng-model="newReplyAddress" placeholder="nom.prenom@franciaflex.fr" /> + <a class="btn btn-success btn-xs" ng-click="addReplyAddress()" ng-disabled="!newReplyAddress"> + <span class="glyphicon glyphicon-ok"></span> + </a> + </div> + + <div class="form-group"> + Nouveau groupe : + <select ng-model="newWriteAccessGroup" ng-options="groupName for groupName in groupNames"> + <option></option> + </select> + <a class="btn btn-success btn-xs" ng-click="addReplyAddress()" ng-disabled="!newWriteAccessGroup"> + <span class="glyphicon glyphicon-ok"></span> + </a> + </div> </div> </div> </div> @@ -432,12 +459,12 @@ <thead> <tr> <th>Dossier</th> - <th ng-repeat="ldapGroup in ldapGroups">{{ldapGroup}}</th> + <th ng-repeat="groupName in groupNames">{{groupName}}</th> </tr> </thead> <tbody ng-repeat="mailFolder in flatMailFolders()"> <th>{{mailFolder.name}}</th> - <td ng-repeat="ldapGroup in ldapGroups"> + <td ng-repeat="groupName in groupNames"> <input type="checkbox" /> </td> </tbody> Modified: trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/import-input.jsp =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/import-input.jsp 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/import-input.jsp 2014-05-30 08:55:55 UTC (rev 107) @@ -34,17 +34,19 @@ <body> <div> <!-- navbar --> - <header class="navbar navbar-inverse navbar-static-top bs-docs-nav" id="top" role="banner"> + <header class="navbar navbar-inverse navbar-static-top" role="banner"> <div class="container"> <div class="navbar-header"> <a href="<s:url value='/' />" class="navbar-brand">FaxToMail</a> </div> - <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> + <nav class="collapse navbar-collapse" role="navigation"> <ul class="nav navbar-nav"> - <li><a href="<s:url action='configuration-input' />" class="navbar-brand">Configuration</a></li> - <li class="active"><a href="<s:url action='import-input' />" class="navbar-brand">Import</a></li> + <li><a href="<s:url action='configuration-input' />"> + <span class="glyphicon glyphicon-cog"></span> Configuration</a></li> + <li class="active"><a href="<s:url action='import-input' />"> + <span class="glyphicon glyphicon-upload"></span> Import</a></li> </ul> - </div> + </nav> </div> </header> Modified: trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-05-30 08:55:55 UTC (rev 107) @@ -35,6 +35,8 @@ $scope.etatAttenteFields = ConfigurationData.etatAttenteFields; //{Array} les etats d'attentes disponibles $scope.etatAttentes = ConfigurationData.etatAttentes; + // {Array} Liste des groupes ldap + $scope.groupNames = ConfigurationData.groupNames; // method privée recursive pour retourner l'ensemble des dossiers var recursiveAddMailFolder = function(result, mailFolders) { @@ -316,6 +318,5 @@ */ FaxToMailModule.controller('ConfigurationLdapController', ['$scope', '$http', 'ConfigurationData', function($scope, $http, ConfigurationData) { - // {Array} Liste des groupes ldap - $scope.ldapGroups = ["Group1", "Group2", "Group3", "Group4", "Group5"]; + }]); Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-05-30 08:31:12 UTC (rev 106) +++ trunk/pom.xml 2014-05-30 08:55:55 UTC (rev 107) @@ -531,6 +531,13 @@ <dependency> <groupId>org.webjars</groupId> + <artifactId>angular-ui-sortable</artifactId> + <version>0.12.2</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.webjars</groupId> <artifactId>bootstrap</artifactId> <version>3.1.1-1</version> <scope>runtime</scope> @@ -562,6 +569,12 @@ </exclusion> </exclusions> </dependency> + + <dependency> + <groupId>com.unboundid</groupId> + <artifactId>unboundid-ldapsdk</artifactId> + <version>2.3.6</version> + </dependency> </dependencies> </dependencyManagement>
participants (1)
-
echatellier@users.forge.codelutin.com