Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java
===================================================================
diff -u -r9bef1de27d0d527d75191115a535bc2c4311ade9 -r4efa164a1d5bfa5e91d2c00ee471394277f90050
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 9bef1de27d0d527d75191115a535bc2c4311ade9)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 4efa164a1d5bfa5e91d2c00ee471394277f90050)
@@ -83,6 +83,21 @@
public String getFolderContents(Integer userID, Integer workspaceFolderID, Integer mode)throws Exception;
/**
+ * This method does the same as getFolderContents() except that it doesn't return
+ * the home directory as a content of the folder. This is useful to Flash as when the user's organisation
+ * is listed, the client doesn't want the home directory returned as the client already knows about the
+ * folder from the getAccessibleWorkspaceFolders() call.
+ *
+ * @param userID The user_id
of the User
who has requested the contents
+ * @param workspaceFolderID The workspace_folder_id
of the WorkspaceFolder
+ * whose contents are requested
+ * @param mode It can be either 1(AUTHORING) or 2(MONITORING)
+ * @return String The required information in WDDX format
+ * @throws Exception
+ */
+ public String getFolderContentsExcludeHome(Integer userID, Integer workspaceFolderID, Integer mode)throws Exception;
+
+ /**
* This method creates a new folder under the given parentFolder
* inside the user's default workspace.
*
@@ -282,7 +297,6 @@
* The information returned is categorized under 3 main heads
*
* - PRIVATE The folder which belongs to the given User
- * - RUN_SEQUENCES The folder in which user stores his lessons
* - ORGANISATIONS List of folders(root folder only) which belong
* to organisations of which user is a member.
*
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java
===================================================================
diff -u -r9bef1de27d0d527d75191115a535bc2c4311ade9 -r4efa164a1d5bfa5e91d2c00ee471394277f90050
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 9bef1de27d0d527d75191115a535bc2c4311ade9)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 4efa164a1d5bfa5e91d2c00ee471394277f90050)
@@ -196,12 +196,33 @@
return false;
}
}
+
/**
* (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#getFolderContentsExcludeHome(java.lang.Integer, java.lang.Integer, java.lang.Integer)
+ */
+ public String getFolderContentsExcludeHome(Integer userID, Integer workspaceFolderID, Integer mode)throws Exception{
+ User user = userDAO.getUserById(userID);
+ WorkspaceFolder folder = user.getWorkspace().getRootFolder();
+ return getFolderContentsInternal(user, workspaceFolderID, mode, "getFolderContentsExcludeHome",
+ folder != null ? folder.getWorkspaceFolderId() : null);
+ }
+
+
+ /**
+ * (non-Javadoc)
* @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#getFolderContents(java.lang.Integer, java.lang.Integer, java.lang.Integer)
*/
public String getFolderContents(Integer userID, Integer workspaceFolderID, Integer mode)throws Exception{
User user = userDAO.getUserById(userID);
+ return getFolderContentsInternal(user, workspaceFolderID, mode, "getFolderContents", null);
+ }
+
+ /**
+ * Get the contents of a folder. Internal method used for both getFolderContentsExcludeHome() and getFolderContents().
+ * If skipContentId is not null, then skip any contents found with this id.
+ */
+ public String getFolderContentsInternal(User user, Integer workspaceFolderID, Integer mode, String methodName, Integer skipContentId)throws Exception{
WorkspaceFolder workspaceFolder = null;
Integer permissions = null;
if(user!=null){
@@ -212,31 +233,28 @@
Vector contentDTO = new Vector();
getFolderContent(workspaceFolder,permissions,mode,contentDTO);
if(workspaceFolder.hasSubFolders())
- getSubFolderDetails(workspaceFolder,permissions,contentDTO);
+ getSubFolderDetails(workspaceFolder,permissions,contentDTO, skipContentId);
Vector repositoryContent = getContentsFromRepository(new Long(workspaceFolderID.intValue()),permissions);
if(repositoryContent!=null)
contentDTO.addAll(repositoryContent);
- flashMessage = new FlashMessage("getFolderContents",createFolderContentPacket(workspaceFolder,contentDTO));
+ flashMessage = new FlashMessage(methodName,createFolderContentPacket(workspaceFolder,contentDTO));
}
else
- flashMessage = new FlashMessage("getFolderContents",
- "Access Denied for user with user_id:" + userID,
+ flashMessage = new FlashMessage(methodName,
+ "Access Denied for user with user_id:" + user.getUserId(),
FlashMessage.ERROR);
}
else
- flashMessage = new FlashMessage("getFolderContents",
+ flashMessage = new FlashMessage(methodName,
"No such workspaceFolder with workspace_folder_id of:" + workspaceFolderID + " exists",
FlashMessage.ERROR);
}else
- flashMessage = FlashMessage.getNoSuchUserExists("getFolderContents",userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(methodName,user.getUserId());
return flashMessage.serializeMessage();
}
private void getFolderContent(WorkspaceFolder workspaceFolder, Integer permissions, Integer mode,Vector contentDTO){
- Integer parentFolderId = workspaceFolder.getParentWorkspaceFolder()!=null?
- workspaceFolder.getParentWorkspaceFolder().getWorkspaceFolderId():
- WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER;
List designs = null;
if(mode==AUTHORING)
@@ -246,11 +264,16 @@
getFolderContentDTO(designs,permissions,contentDTO);
}
- private void getSubFolderDetails(WorkspaceFolder workspaceFolder,Integer permissions, Vector subFolderContent){
+ /**
+ * Get the folders in the given workspaceFolder. If skipContentId is not null, then skip any contents found with this id.
+ */
+ private void getSubFolderDetails(WorkspaceFolder workspaceFolder,Integer permissions, Vector subFolderContent, Integer skipContentId){
Iterator iterator = workspaceFolder.getChildWorkspaceFolders().iterator();
while(iterator.hasNext()){
WorkspaceFolder subFolder = (WorkspaceFolder)iterator.next();
- subFolderContent.add(new FolderContentDTO(subFolder,permissions));
+ if ( skipContentId==null || ! skipContentId.equals(subFolder.getWorkspaceFolderId()) ) {
+ subFolderContent.add(new FolderContentDTO(subFolder,permissions));
+ }
}
}
/**
@@ -761,10 +784,6 @@
public String deleteWorkspaceFolderContent(Long folderContentID)throws Exception{
WorkspaceFolderContent workspaceFolderContent = workspaceFolderContentDAO.getWorkspaceFolderContentByID(folderContentID);
if(workspaceFolderContent!=null){
- Long uuid = workspaceFolderContent.getUuid();
- Long versionID = workspaceFolderContent.getVersionID();
- ITicket ticket = getRepositoryLoginTicket();
- String files[] = repositoryService.deleteNode(ticket,uuid);
workspaceFolderContentDAO.delete(workspaceFolderContent);
flashMessage = new FlashMessage("deleteWorkspaceFolderContent","Content deleted");
}else
@@ -817,7 +836,6 @@
if (user != null) {
//add the user's own folder to the list
table.put("PRIVATE", new UserAccessFoldersDTO(user.getWorkspace().getRootFolder()));
- table.put("RUN_SEQUENCES", new UserAccessFoldersDTO(workspaceFolderDAO.getRunSequencesFolderForUser(user.getUserId())));
// Get a list of organisations of which the given user is a member
List userMemberships = userOrganisationDAO.getUserOrganisationsByUser(user);
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java
===================================================================
diff -u -r8eca6690f5c756339701b63e5ecf74ead6077fcf -r4efa164a1d5bfa5e91d2c00ee471394277f90050
--- lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 8eca6690f5c756339701b63e5ecf74ead6077fcf)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 4efa164a1d5bfa5e91d2c00ee471394277f90050)
@@ -136,6 +136,30 @@
}
/**
+ * For details please refer to
+ * org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
+ *
+ * @param mapping
+ * @param form
+ * @param request
+ * @param response
+ * @return ActionForward
+ * @throws ServletException
+ * @throws Exception
+ */
+ public ActionForward getFolderContentsExcludeHome(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)throws ServletException,Exception{
+ Integer folderID = new Integer(WebUtil.readIntParam(request,"folderID"));
+ Integer mode = new Integer(WebUtil.readIntParam(request,"mode"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
+ String wddxPacket = workspaceManagementService.getFolderContentsExcludeHome(userID,folderID,mode);
+ return outputPacket(mapping, request, response, wddxPacket, "details");
+ }
+
+ /**
* For details please refer to
* org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
*