r201 - in trunk/faxtomail-ui-web/src/main: java/com/franciaflex/faxtomail/web/action/admin webapp/js
Author: echatellier Date: 2014-06-12 17:23:11 +0200 (Thu, 12 Jun 2014) New Revision: 201 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/201 Log: Display folder full path Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/UserFolderAction.java trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js trunk/faxtomail-ui-web/src/main/webapp/js/user-folder.js Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/UserFolderAction.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/UserFolderAction.java 2014-06-12 15:00:44 UTC (rev 200) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/UserFolderAction.java 2014-06-12 15:23:11 UTC (rev 201) @@ -76,7 +76,7 @@ @Override @Action("user-folder-input") public String input() throws Exception { - mailFolders = mailFolderService.getAllMailFolders(); + mailFolders = mailFolderService.getRootMailFolders(); users = configurationService.getUserManagedUsers(getSession().getAuthenticatedFaxToMailUser()); // build display map Modified: trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-12 15:00:44 UTC (rev 200) +++ trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-12 15:23:11 UTC (rev 201) @@ -45,7 +45,7 @@ $scope.mailFolders = ConfigurationData.mailFolders; // {Map} Mail folder usage $scope.mailFoldersUsage = ConfigurationData.mailFoldersUsage; - //{Map<MailFolder id, Array<MailFolder>>} liste des + //{Map<MailFolder id, Array<MailFolder>>} liste des dossier (a plat, par dossier racine) $scope.flatMailFolders; //{Array} All application users $scope.users = ConfigurationData.users; Modified: trunk/faxtomail-ui-web/src/main/webapp/js/user-folder.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/user-folder.js 2014-06-12 15:00:44 UTC (rev 200) +++ trunk/faxtomail-ui-web/src/main/webapp/js/user-folder.js 2014-06-12 15:23:11 UTC (rev 201) @@ -33,28 +33,45 @@ $scope.mailFolders = UserFolderData.mailFolders; // {Array} Liste des utilisateurs ldap $scope.users = UserFolderData.users; + //{Map<MailFolder id, Array<MailFolder>>} liste des + $scope.flatMailFolders; //{Map} Topia id : mailFolders $scope.userFolders = UserFolderData.userFolders; //{Array} Group list $scope.groups = UserFolderData.groups; - - // method privée recursive pour retourner l'ensemble des dossiers - var recursiveAddMailFolder = function(result, mailFolders) { + + // method privée recursive pour retourner l'ensemble des dossiers en les modifiant pour ajouter + // des metadata (full path from root, and root node instance) + var recursiveAddMailFolder = function(result, mailFolders, rootFolder, prefix, parent) { if (mailFolders) { angular.forEach(mailFolders, function(mailFolder) { + + // warning modify input object :( + // use $ from this, even not recommended because angular exlude those fields when jsonify + mailFolder.$fullPath = prefix + "/" + mailFolder.name; + // ha la la, modify input object again :( + // use $ from this, even not recommended because angular exlude those fields when jsonify + mailFolder.$rootFolder = rootFolder; + // encore pour le parent + mailFolder.$parent = parent; + result.push(mailFolder); - recursiveAddMailFolder(result, mailFolder.children); + recursiveAddMailFolder(result, mailFolder.children, rootFolder, mailFolder.$fullPath, mailFolder); }); } }; - // Retourne l'ensemble de l'arbre des dossiers "à plat" - $scope.flatMailFolders = function() { - var flatMailFolders = []; - recursiveAddMailFolder(flatMailFolders, $scope.mailFolders); - return flatMailFolders; + // update $scope.flatMailFolders when $scope.mailFolders changes + $scope._updateFlatMailFolders = function() { + console.log("Update flatMailFolders map"); + $scope.flatMailFolders = {}; + angular.forEach($scope.mailFolders, function(mailFolder) { + $scope.flatMailFolders[mailFolder.topiaId] = []; + recursiveAddMailFolder($scope.flatMailFolders[mailFolder.topiaId], mailFolder.children, mailFolder, mailFolder.name, mailFolder); + }); }; - + $scope._updateFlatMailFolders(); + // fonction retournant l'ensemble des options disponibles $scope.getObjectsData = function(term, result) { var resultArray = []; @@ -62,7 +79,20 @@ // select 2 require an id field mailFolder.id = mailFolder.topiaId; // select 2 can use 'name' for display, so it's ok + + // push root resultArray.push(mailFolder); + + // build children map + if ($scope.flatMailFolders.hasOwnProperty(mailFolder.topiaId)) { + angular.forEach($scope.flatMailFolders[mailFolder.topiaId], function(childFolder) { + childFolder.id = childFolder.topiaId; + // defined text for display + childFolder.text = childFolder.$fullPath; + resultArray.push(childFolder); + }); + } + }); result(resultArray); };
participants (1)
-
echatellier@users.forge.codelutin.com