r266 - in trunk: faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin faxtomail-ui-web/src/main/webapp/js
Author: kmorin Date: 2014-06-26 04:49:55 +0200 (Thu, 26 Jun 2014) New Revision: 266 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/266 Log: - apply move rights - write rights implies reading rights Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 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-25 08:25:10 UTC (rev 265) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java 2014-06-26 02:49:55 UTC (rev 266) @@ -114,6 +114,29 @@ } } + public List<MailFolder> getRootMailFoldersWithMoveRights(FaxToMailUser user) { + List<MailFolder> rootFolders = getRootMailFolders(); + List<MailFolder> result = new ArrayList<>(); + + for (MailFolder folder : rootFolders) { + findMoveFolders(folder, user, result); + } + + return result; + } + + protected void findMoveFolders(MailFolder folder, FaxToMailUser user, List<MailFolder> folders) { + if (folder.containsMoveRightUsers(user) + || !CollectionUtils.intersection(folder.getMoveRightGroups(), user.getUserGroups()).isEmpty()) { + folders.add(folder); + + } else if (folder.isChildrenNotEmpty()) { + for (MailFolder child : folder.getChildren()) { + findMoveFolders(child, user, folders); + } + } + } + public List<MailFolder> getMailFolders(Collection<String> ids) { MailFolderTopiaDao dao = getPersistenceContext().getMailFolderDao(); return new ArrayList<MailFolder>(dao.forTopiaIdIn(ids).findAll()); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java 2014-06-25 08:25:10 UTC (rev 265) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/transmit/MailFolderChooserUIHandler.java 2014-06-26 02:49:55 UTC (rev 266) @@ -69,7 +69,8 @@ } // init tree - Collection<MailFolder> folders = getContext().getMailFolderService().getRootMailFolders(); + Collection<MailFolder> folders = getContext().getMailFolderService(). + getRootMailFoldersWithMoveRights(getContext().getCurrentUser()); JTree navigationTree = ui.getNavigationTree(); Map<MailFolder, DefaultMutableTreeNode> nodesByFolder = @@ -78,13 +79,16 @@ for (MailFolder folder : nodesByFolder.keySet()) { DefaultMutableTreeNode node = nodesByFolder.get(folder); + if (node.getClass().isAssignableFrom(FolderTreeNode.class)) { FolderTreeNode folderTreeNode = (FolderTreeNode) node; MailFolder folderWithAllowMoveDemandIntoFolder = folder; + while (folderWithAllowMoveDemandIntoFolder.getAllowMoveDemandIntoFolder() == null && folderWithAllowMoveDemandIntoFolder.getParent() != null) { folderWithAllowMoveDemandIntoFolder = folderWithAllowMoveDemandIntoFolder.getParent(); } + folderTreeNode.setCanSelect(!currentFolder.equals(folder) && Boolean.TRUE.equals(folderWithAllowMoveDemandIntoFolder.getAllowMoveDemandIntoFolder()) && (CollectionUtils.isEmpty(foldersWithEtatAttente) @@ -92,7 +96,7 @@ } } - navigationTree.setCellRenderer(new DefaultTreeCellRenderer() { + DefaultTreeCellRenderer cellRenderer = new DefaultTreeCellRenderer() { @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { @@ -103,7 +107,10 @@ return component; } - }); + }; + Icon folderIcon = cellRenderer.getDefaultClosedIcon(); + cellRenderer.setLeafIcon(folderIcon); + navigationTree.setCellRenderer(cellRenderer); navigationTree.addTreeSelectionListener(new TreeSelectionListener() { @Override 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-06-25 08:25:10 UTC (rev 265) +++ trunk/faxtomail-ui-web/src/main/webapp/WEB-INF/content/admin/configuration-input.jsp 2014-06-26 02:49:55 UTC (rev 266) @@ -742,7 +742,7 @@ <label><input type="checkbox" ng-model="readRightUser" ng-checked="selectedMailFolder.readRightUsers.containsByTopiaId(user)" - ng-disabled="parentScopeValues.readRightUsers.containsByTopiaId(user)" + ng-disabled="parentScopeValues.readRightUsers.containsByTopiaId(user) || selectedMailFolder.writeRightUsers.containsByTopiaId(user)" ng-change="changeReadRightUser(user)"> Lecture</label> <label><input type="checkbox" ng-model="writeRightUser" Modified: trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js =================================================================== --- trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-25 08:25:10 UTC (rev 265) +++ trunk/faxtomail-ui-web/src/main/webapp/js/configuration.js 2014-06-26 02:49:55 UTC (rev 266) @@ -328,7 +328,8 @@ var newRoot = { topiaId: "new_" + guid(), name: name, - children: [] + children: [], + archiveFolder: false }; $scope.mailFolders.push(newRoot); $scope._updateFlatMailFolders(); // update flat map @@ -352,7 +353,8 @@ useCurrentLevelFaxDomain: false, useCurrentLevelEdiFolder: false, useCurrentLevelRejectResponseMessage: false, - useCurrentLevelRejectResponseMailAddress: false + useCurrentLevelRejectResponseMailAddress: false, + archiveFolder: false }; // extend node (in faxtomail collapsed = extended) scope.collapse(); @@ -878,6 +880,7 @@ if (index != -1) { $scope.selectedMailFolder.writeRightUsers.splice(index, 1); } else { + $scope.selectedMailFolder.readRightUsers.push(user); $scope.selectedMailFolder.writeRightUsers.push(user); } };
participants (1)
-
kmorin@users.forge.codelutin.com