Index: lams_build/lib/lams/lams-central.jar
===================================================================
diff -u -rcdfe4624503ed79494cf91dddcbf1f544f83aab2 -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java
===================================================================
diff -u -r93895cc6ca6a7ca99b3b1706ae141978a5ca0612 -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
--- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 93895cc6ca6a7ca99b3b1706ae141978a5ca0612)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7)
@@ -70,9 +70,7 @@
import org.lamsfoundation.lams.util.ConfigurationKeys;
import org.lamsfoundation.lams.util.wddx.FlashMessage;
import org.lamsfoundation.lams.util.wddx.WDDXProcessor;
-import org.lamsfoundation.lams.authoring.LearningDesignValidator;
-
import com.allaire.wddx.WddxDeserializationException;
@@ -240,7 +238,7 @@
}
return flashMessage.serializeMessage();
}
- public String copyLearningDesign(Long originalDesignID,Integer copyType,
+ public LearningDesign copyLearningDesign(Long originalDesignID,Integer copyType,
Integer userID, Integer workspaceFolderID)throws UserException, LearningDesignException,
WorkspaceFolderException, IOException{
@@ -256,9 +254,7 @@
if(workspaceFolder==null)
throw new WorkspaceFolderException("No such WorkspaceFolder with workspace_folder_id of:" + workspaceFolderID + " exists");
- LearningDesign designCopy = copyLearningDesign(originalDesign,copyType,user,workspaceFolder);
- flashMessage = new FlashMessage("copyLearningDesign", designCopy.getLearningDesignId());
- return flashMessage.serializeMessage();
+ return copyLearningDesign(originalDesign,copyType,user,workspaceFolder);
}
/**
@@ -422,9 +418,8 @@
groupingDAO,toolDAO,groupDAO,transitionDAO);
try {
LearningDesign design = extractor.extractLearningDesign(table);
- LearningDesignValidator validator = new LearningDesignValidator(learningDesignDAO);
- flashMessage = validator.validateLearningDesign(design);
-
+ learningDesignDAO.insert(design);
+ flashMessage = new FlashMessage(IAuthoringService.STORE_LD_MESSAGE_KEY,design.getLearningDesignId());
} catch ( ObjectExtractorException e ) {
flashMessage = new FlashMessage(IAuthoringService.STORE_LD_MESSAGE_KEY,
"Invalid Object in WDDX packet. Error was "+e.getMessage(),
Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java
===================================================================
diff -u -r8773d184c34809bac6172def0c7ad0fc26fe515b -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
--- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java (.../IAuthoringService.java) (revision 8773d184c34809bac6172def0c7ad0fc26fe515b)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java (.../IAuthoringService.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7)
@@ -71,7 +71,8 @@
public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user, WorkspaceFolder workspaceFolder);
/**
* Create a copy of learning design as per the requested learning design
- * and saves it in the given workspacefoler
+ * and saves it in the given workspacefolder. Designed to be called when user tries
+ * to copy a learning design using the Flash interface.
*
* @param originalLearningDesingID the source learning design id.
* @param copyType purpose of copying the design. Can have one of the follwing values
@@ -82,9 +83,9 @@
*
* @param userID The user_id of the user who has sent this request(author/teacher)
* @param workspaceFolderID The workspacefolder where this copy of the design would be saved
- * @return String Acknowledgment message for FLASH in WDDX format
+ * @return new LearningDesign
*/
- public String copyLearningDesign(Long originalLearningDesignID,Integer copyType,
+ public LearningDesign copyLearningDesign(Long originalLearningDesignID,Integer copyType,
Integer userID, Integer workspaceFolder)throws UserException, LearningDesignException,
WorkspaceFolderException, IOException;
/**
Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java
===================================================================
diff -u -r8773d184c34809bac6172def0c7ad0fc26fe515b -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
--- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java (.../AuthoringAction.java) (revision 8773d184c34809bac6172def0c7ad0fc26fe515b)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java (.../AuthoringAction.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7)
@@ -107,21 +107,6 @@
return outputPacket(mapping, request, response, wddxPacket, "details");
}
- public ActionForward copyLearningDesign(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)throws ServletException, IOException,
- UserException, WorkspaceFolderException,
- LearningDesignException{
-
- Long originalDesignID = new Long(WebUtil.readLongParam(request,"originalDesignID"));
- Integer workspaceFolderID = new Integer(WebUtil.readIntParam(request,"workspaceFolderID"));
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
- Integer copyType = new Integer(WebUtil.readIntParam(request,"copyType"));
- IAuthoringService authoringService = getAuthoringService();
- String message = authoringService.copyLearningDesign(originalDesignID,copyType,userID,workspaceFolderID);
- return outputPacket(mapping, request, response, message, "message");
- }
public ActionForward getLearningDesignsForUser(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java
===================================================================
diff -u -r24e81813a7f7ce5a240c6bf7f4e3b70d55ce2f56 -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 24e81813a7f7ce5a240c6bf7f4e3b70d55ce2f56)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7)
@@ -126,90 +126,56 @@
/**
- * This method deletes the WorkspaceFolder
with given
- * workspaceFolderID
. But before it does so it checks whether the
- * User
is authorized to perform this action
- *
- *
Note:
To be able to a delete a WorkspaceFolder
- * successfully you have to keep the following things in mind
- *
Organisation
- * or User
- * WorkspaceFolder
to be deleted
+ * This method deletes an entry from a workspace. It may be a folder,
+ * a learning design or an arbitrary resource. It works out what the resource
+ * is and then calls the other deletion methods. Currently folders, files and learning
+ * designs are supported - all other types return an error.
+ *
+ * @param resourceID The id
to be deleted. May be a learning design id
+ * or a folder id.
+ * @param resourceType The resource type sent to the client in the FolderContentDTO.
* @param userID The User
who has requested this operation
* @return String The acknowledgement/error message in WDDX format for FLASH
* @throws IOException
*/
- public String deleteFolder(Integer workspaceFolderID, Integer userID)throws IOException;
-
+ public String deleteResource(Long resourceID, String resourceType, Integer userID)
+ throws IOException;
+
/**
- * This method deletes a LearningDesign
with given learningDesignID
- * provied the User
is authorized to do so.
- *
Note:
- *LearningDesign
should not be readOnly,
- * indicating that a Lesson
has already been started
- * LearningDesign
should not be acting as a
- * parent to any other existing LearningDesign's
learning_design_id
of the
- * LearningDesign
to be deleted.
- * @param userID The user_id
of the User
who has
- * requested this opeartion
- * @return String The acknowledgement/error message in WDDX format for FLASH
- * @throws IOException
- */
- public String deleteLearningDesign(Long learningDesignID, Integer userID)throws IOException;
-
- /**
- * This method copies one folder inside another folder. To be able to
- * successfully perform this action following conditions must be met in the
- * order they are listed.
- * WorkspaceFolder
must existsUser
with the given userID
- * must have OWNER or MEMBERSHIP rights for that WorkspaceFolder
- * to be authorized to do so.Note: By default the copied folder has the same name as that of the
- * one being copied. But in case the target WorkspaceFolder
already has
- * a folder with the same name, an additional "C" is appended to the name of the folder
- * thus created.
WorkspaceFolder
to be copied.
- * @param newFolderID The parent WorkspaceFolder
under
+ * This method copies one folder inside another folder, or a learning design
+ * to another folder. If it is a learning design then it also needs the copyType parameter.
+ * String wddxPacket = workspaceManagementService.copyResource(resourceID,resourceType,copyType,targetFolderID,userID);
+
+ * @param resourceID The WorkspaceFolder
or LearningDesign
to be copied.
+ * @param resourceType The resource type sent to the client in the FolderContentDTO.
+ * @param copyType Is this an ordinary learning design or a runtime learning design.
+ * @param targetFolderID The parent WorkspaceFolder
under
* which it has to be copied
* @param userID The User
who has requested this opeartion
* @return String The acknowledgement/error message to be sent to FLASH
* @throws IOException
*/
- public String copyFolder(Integer folderID,Integer newFolderID,Integer userID)throws IOException;
+ public String copyResource(Long resourceID, String resourceType, Integer copyType, Integer targetFolderID, Integer userID)throws IOException;
/**
- * This method moves the given WorkspaceFolder
with currentFolderID
- * under the WorkspaceFolder with targetFolderID
.But before it does so it checks
- * whether the User
is authorized to do so.
- *
+ * This method moves an entry (folder, design, etc) etc from a workspace. It may be a folder,
+ * a learning design or an arbitrary resource. under the WorkspaceFolder with targetFolderID
.
+ * But before it does so it checks whether the User
is authorized to do so.
*
- * Note: This method doesn't actually copies the content from one place to another.
- * All it does is change the parent_workspace_folder_id
of the currentFolder
- * to that of the targetFolder
id
to be moved. May be a learning design id
+ * or a folder id.
+ * @param resourceType The resource type sent to the client in the FolderContentDTO.
* @param targetFolderID The WorkspaceFolder under which it has to be moved
* @param userID The User who has requested this opeartion
- * @return String The acknowledgement/error message to be sent to FLASH
+ * @return String The acknowledgement/error message in WDDX format for FLASH
* @throws IOException
*/
- public String moveFolder(Integer currentFolderID,Integer targetFolderID,Integer userID)throws IOException;
-
+ public String moveResource(Long resourceID, Integer targetFolderID, String resourceType, Integer userID)
+ throws IOException;
+
/**
* This method is called every time a new content is inserted into the
* given workspaceFolder. The content to be inserted can be either of
@@ -245,16 +211,6 @@
public String updateWorkspaceFolderContent(Long folderContentID,String path)throws Exception;
/**
- * This method deletes all versions of the given content (FILE/PACKAGE)
- * fom the repository.
- *
- * @param folderContentID The content to be deleted
- * @return String Acknowledgement/error message in WDDX format for FLASH
- * @throws Exception
- */
- public String deleteWorkspaceFolderContent(Long folderContentID)throws Exception;
-
- /**
* This method is called when the user knows which version of the
* worksapceFolderContent
he wants to delete.
*
@@ -331,54 +287,25 @@
public String getAccessibleWorkspaceFoldersNew(Integer userID)throws IOException;
/**
- * This method moves a Learning Design from one workspace
- * folder to another.But before it does that it checks whether
- * the given User is authorized to do so.
+ * This method renames the workspaceFolder/learning design with the
+ * given resourceID
to newName
.
+ *
+ * Currently only folders and learning designs are supported - all other
+ * types return an error.
*
- * Nothing is physically moved from one folder to another.
- * It just changes the workspace_folder_id
for the
- * given learningdesign in the lams_learning_design_table
- * if the User
is authorized to do so.
- *
- * @param learningDesignID The learning_design_id
of the
- * design to be moved
- * @param targetWorkspaceFolderID The workspaceFolder
under
- * which it has to be moved.
- * @param userID The User
who is requesting this operation
- * @return String Acknowledgement/error message in WDDX format for FLASH
+ * @param resourceID The id
to be moved. May be a learning design id
+ * or a folder id.
+ * @param resourceType The resource type sent to the client in the FolderContentDTO.
+ * @param targetFolderID The WorkspaceFolder under which it has to be moved
+ * @param userID The User who has requested this opeartion
+ * @return String The acknowledgement/error message in WDDX format for FLASH
* @throws IOException
*/
- public String moveLearningDesign(Long learningDesignID,Integer targetWorkspaceFolderID,Integer userID) throws IOException;
-
+ public String renameResource(Long resourceID, String resourceType, String newName, Integer userID)
+ throws IOException;
+
+
/**
- * This method renames the workspaceFolder
with the
- * given workspaceFodlerID
to newName
.
- * But before it does that it checks if the user is authorized to
- * do so.
- *
- * @param workspaceFolderID The workspaceFolder
to be renamed
- * @param newName The newName
to be assigned
- * @param userID The User
who requested this operation
- * @return String Acknowledgement/error message in WDDX format for FLASH
- * @throws IOException
- */
- public String renameWorkspaceFolder(Integer workspaceFolderID,String newName,Integer userID)throws IOException;
-
- /**
- * This method renames the Learning design with given learningDesignID
- * to the new title
. But before it does that it checks if the user
- * is authorized to do so.
- *
- * @param learningDesignID The learning_design_id
of the
- * design to be renamed
- * @param title The new title
- * @param userID The User
who requested this operation
- * @return String Acknowledgement/error message in WDDX format for FLASH
- * @throws IOException
- */
- public String renameLearningDesign(Long learningDesignID, String title,Integer userID)throws IOException;
-
- /**
* This method returns the workspace for the given User
*
* @param userID The userID
of the
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java
===================================================================
diff -u -r24e81813a7f7ce5a240c6bf7f4e3b70d55ce2f56 -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 24e81813a7f7ce5a240c6bf7f4e3b70d55ce2f56)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7)
@@ -43,16 +43,15 @@
import org.lamsfoundation.lams.contentrepository.InvalidParameterException;
import org.lamsfoundation.lams.contentrepository.ItemExistsException;
import org.lamsfoundation.lams.contentrepository.ItemNotFoundException;
-import org.lamsfoundation.lams.contentrepository.LoginException;
import org.lamsfoundation.lams.contentrepository.NodeKey;
import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException;
import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException;
-import org.lamsfoundation.lams.contentrepository.client.ToolContentHandler;
import org.lamsfoundation.lams.contentrepository.service.IRepositoryService;
import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy;
import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO;
+import org.lamsfoundation.lams.learningdesign.exception.LearningDesignException;
import org.lamsfoundation.lams.usermanagement.Organisation;
import org.lamsfoundation.lams.usermanagement.Role;
import org.lamsfoundation.lams.usermanagement.User;
@@ -66,11 +65,10 @@
import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceDAO;
import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO;
import org.lamsfoundation.lams.usermanagement.dto.UserAccessFoldersDTO;
-import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.usermanagement.exception.UserException;
import org.lamsfoundation.lams.usermanagement.exception.WorkspaceFolderException;
+import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.wddx.FlashMessage;
-import org.lamsfoundation.lams.util.wddx.WDDXTAGS;
import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
import org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO;
import org.lamsfoundation.lams.workspace.dto.FolderContentDTO;
@@ -85,6 +83,11 @@
private FlashMessage flashMessage;
+ private static final String MSG_KEY_MOVE = "moveResource";
+ private static final String MSG_KEY_COPY = "copyResource";
+ private static final String MSG_KEY_RENAME = "renameResource";
+ private static final String MSG_KEY_DELETE = "deleteResource";
+
public static final Integer AUTHORING = new Integer(1);
public static final Integer MONITORING = new Integer(2);
@@ -101,6 +104,7 @@
protected IRepositoryService repositoryService;
protected IUserManagementService userMgmtService;
+
/**
* @param workspaceFolderContentDAO The workspaceFolderContentDAO to set.
*/
@@ -156,30 +160,74 @@
this.userMgmtService = userMgmtService;
}
+
/**
* (non-Javadoc)
- * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#deleteFolder(java.lang.Integer, java.lang.Integer)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#deleteResource(java.lang.Integer, java.lang.String, java.lang.Integer)
*/
+ public String deleteResource(Long resourceID, String resourceType, Integer userID) throws IOException {
+
+ String errorMessage = null;
+
+ if ( resourceID == null || resourceType == null || userID== null ) {
+ errorMessage = "deleteResource(Long resourceID, String resourceType, Integer userID) requires a value for resourceID, resourceType and userID";
+ } else if ( FolderContentDTO.DESIGN.equals(resourceType) ) {
+ return deleteLearningDesign(resourceID, userID);
+ } else if ( FolderContentDTO.FOLDER.equals(resourceType) ) {
+ return deleteFolder(new Integer(resourceID.intValue()), userID);
+ } else if ( FolderContentDTO.FILE.equals(resourceType) ) {
+ return deleteWorkspaceFolderContent(resourceID);
+ } else if ( FolderContentDTO.LESSON.equals(resourceType) ) {
+ // TODO implement delete lesson
+ errorMessage = "LAMS does not support deleting a lesson via the workspace interface. ";
+ }
+
+ FlashMessage message = new FlashMessage(MSG_KEY_DELETE,
+ "Cannot delete the resource: "+errorMessage,
+ FlashMessage.ERROR);
+ return message.serializeMessage();
+
+ }
+
+ /**
+ * This method deletes the WorkspaceFolder
with given
+ * workspaceFolderID
. But before it does so it checks whether the
+ * User
is authorized to perform this action
+ *
+ *
Note:
To be able to a delete a WorkspaceFolder
+ * successfully you have to keep the following things in mind
+ *
Organisation
+ * or User
+ * WorkspaceFolder
to be deleted
+ * @param userID The User
who has requested this operation
+ * @return String The acknowledgement/error message in WDDX format for FLASH
+ * @throws IOException
+ */
public String deleteFolder(Integer folderID, Integer userID)throws IOException{
WorkspaceFolder workspaceFolder = workspaceFolderDAO.getWorkspaceFolderByID(folderID);
User user = userDAO.getUserById(userID);
if(user!=null){
if(!getPermissions(workspaceFolder,user).equals(WorkspaceFolder.OWNER_ACCESS)){
- flashMessage = FlashMessage.getUserNotAuthorized("deleteFolder",userID);
+ flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_DELETE,userID);
}else{
if(workspaceFolder!=null){
if(isRootFolder(workspaceFolder))
- flashMessage = new FlashMessage("deleteFolder",
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,
"Cannot delete this folder as it is the Root folder.",
FlashMessage.ERROR);
else{
flashMessage = deleteFolderContents(workspaceFolder, userID);
}
}else
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("deleteFolder",folderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_DELETE,folderID);
}
}else
- flashMessage = FlashMessage.getNoSuchUserExists("deleteFolder",userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(MSG_KEY_DELETE,userID);
return flashMessage.serializeMessage();
}
@@ -241,7 +289,7 @@
{
if (learningDesign.getReadOnly().booleanValue()) {
isDeleteSuccessful = false;
- flashMessage = new FlashMessage("deleteFolder",
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,
"Cannot delete design with learning_design_id of :" + learningDesignID +
" as it is READ ONLY.", FlashMessage.ERROR);
}
@@ -255,7 +303,7 @@
else
{
isDeleteSuccessful = false;
- flashMessage = new FlashMessage("deleteFolder",
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,
"Cannot delete design with learning_design_id of:" + learningDesignID +
" as it is a PARENT.",
FlashMessage.ERROR);
@@ -273,7 +321,7 @@
if(isDeleteSuccessful) //it will only delete this folder if all the files/folder/learningDesigns are all deleted
{
workspaceFolderDAO.delete(folder);
- flashMessage = new FlashMessage("deleteFolder","Folder deleted:" + folderID);
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,"Folder deleted:" + folderID);
}
return flashMessage;
@@ -472,31 +520,111 @@
return packet;
}
/**
- * (non-Javadoc)
- * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#copyFolder(java.lang.Integer, java.lang.Integer, java.lang.Integer)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#copyResource(Long, String, Integer, Integer, Integer)
*/
- public String copyFolder(Integer folderID,Integer newFolderID,Integer userID)throws IOException{
+ public String copyResource(Long resourceID, String resourceType, Integer copyType, Integer targetFolderID, Integer userID)throws IOException {
+ String errorMessage = null;
+
+ if ( resourceID == null || targetFolderID == null || resourceType == null || userID== null ) {
+ errorMessage = "copyResource(Long resourceID,Integer targetFolderID, String resourceType, Integer userID) requires a value for resourceID, targetFolderID, resourceType and userID";
+ } else if ( FolderContentDTO.DESIGN.equals(resourceType) ) {
+ return copyLearningDesign(resourceID,targetFolderID,copyType,userID);
+ } else if ( FolderContentDTO.FOLDER.equals(resourceType) ) {
+ return copyFolder(new Integer(resourceID.intValue()), targetFolderID, userID);
+ } else if ( FolderContentDTO.FILE.equals(resourceType) ) {
+ // TODO implement delete file resource
+ errorMessage = "LAMS does not support copying a file via the workspace interface. ";
+ } else if ( FolderContentDTO.LESSON.equals(resourceType) ) {
+ // TODO implement delete lesson
+ errorMessage = "LAMS does not support copying a lesson via the workspace interface. ";
+ }
+
+ FlashMessage message = new FlashMessage(MSG_KEY_COPY,
+ "Cannot copy the resource: "+errorMessage,
+ FlashMessage.ERROR);
+ return message.serializeMessage();
+
+ }
+
+ /**
+ * This method copies one folder inside another folder. To be able to
+ * successfully perform this action following conditions must be met in the
+ * order they are listed.
+ * WorkspaceFolder
must existsUser
with the given userID
+ * must have OWNER or MEMBERSHIP rights for that WorkspaceFolder
+ * to be authorized to do so.Note: By default the copied folder has the same name as that of the
+ * one being copied. But in case the target WorkspaceFolder
already has
+ * a folder with the same name, an additional "C" is appended to the name of the folder
+ * thus created.
WorkspaceFolder
to be copied.
+ * @param targetFolderID The parent WorkspaceFolder
under
+ * which it has to be copied
+ * @param userID The User
who has requested this opeartion
+ * @return String The acknowledgement/error message to be sent to FLASH
+ * @throws IOException
+ */
+ public String copyFolder(Integer folderID,Integer targetFolderID,Integer userID)throws IOException{
try{
- if(isUserAuthorized(newFolderID,userID)){
+ if(isUserAuthorized(targetFolderID,userID)){
WorkspaceFolder workspaceFolder = workspaceFolderDAO.getWorkspaceFolderByID(folderID);
if(workspaceFolder!=null){
- WorkspaceFolder newFolder = createFolder(newFolderID,workspaceFolder.getName(),userID);
+ WorkspaceFolder newFolder = createFolder(targetFolderID,workspaceFolder.getName(),userID);
copyRootContent(workspaceFolder,newFolder,userID);
if(workspaceFolder.hasSubFolders())
createSubFolders(workspaceFolder, newFolder,userID);
- flashMessage = new FlashMessage("copyFolder",createCopyFolderPacket(newFolder));
+ flashMessage = new FlashMessage(MSG_KEY_COPY,newFolder.getWorkspaceFolderId());
}else
throw new WorkspaceFolderException();
}else
- flashMessage = FlashMessage.getUserNotAuthorized("copyFolder", userID);
+ flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_COPY, userID);
}catch(UserException ue){
- flashMessage = FlashMessage.getNoSuchUserExists("copyFolder",userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(MSG_KEY_COPY,userID);
}catch(WorkspaceFolderException we){
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("copyFolder",folderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_COPY,folderID);
}
return flashMessage.serializeMessage();
}
+
/**
+ * This method copies a learning design to another folder. Call the AuthoringService
+ * to do the copy.
+ *
+ * @param folderID The WorkspaceFolder
to be copied.
+ * @param newFolderID The parent WorkspaceFolder
under
+ * which it has to be copied
+ * @param userID The User
who has requested this opeartion
+ * @return String The acknowledgement/error message to be sent to FLASH
+ * @throws IOException
+ */
+ public String copyLearningDesign(Long designID,Integer targetFolderID,Integer copyType,Integer userID)throws IOException{
+ FlashMessage message = null;
+ try {
+ LearningDesign ld = authoringService.copyLearningDesign(designID,
+ copyType != null ? copyType : new Integer(LearningDesign.COPY_TYPE_NONE),
+ userID, targetFolderID);
+ message = new FlashMessage(MSG_KEY_COPY,ld.getLearningDesignId());
+
+ } catch ( Exception e ) {
+ log.error("copyLearningDesign() unable to copy learning design due to an error. "
+ + "designID="+designID
+ + "copyType="+copyType
+ + "targetFolderID="+targetFolderID
+ + "userID="+userID ,e);
+
+ message = new FlashMessage(MSG_KEY_COPY, "Unable to copy learning design due to an error "+e.getMessage(), FlashMessage.ERROR);
+
+ }
+
+ return message.serializeMessage();
+ }
+
+ /**
* This method checks whether the user is authorized to create
* a new folder under the given WorkspaceFolder.
*
@@ -524,10 +652,10 @@
return authorized;
}
- private Hashtable createCopyFolderPacket(WorkspaceFolder workspaceFolder){
+ private Hashtable createCopyFolderPacket(Long newResourceID, Integer targetFolderID){
Hashtable packet = new Hashtable();
- packet.put("workspaceFolderID", workspaceFolder.getWorkspaceFolderId());
- packet.put("workspaceID",workspaceFolder.getWorkspaceID());
+ packet.put("newResourceID", newResourceID);
+ packet.put("targetFolderID",targetFolderID);
return packet;
}
public boolean isUserOwner(WorkspaceFolder workspaceFolder, User user){
@@ -636,12 +764,28 @@
}
}
/**
+ * This method deletes a LearningDesign
with given learningDesignID
+ * provied the User
is authorized to do so.
+ * Note:
+ *LearningDesign
should not be readOnly,
+ * indicating that a Lesson
has already been started
+ * LearningDesign
should not be acting as a
+ * parent to any other existing LearningDesign's
learning_design_id
of the
+ * LearningDesign
to be deleted.
+ * @param userID The user_id
of the User
who has
+ * requested this opeartion
+ * @return String The acknowledgement/error message in WDDX format for FLASH
+ * @throws IOException
*/
public String deleteLearningDesign(Long learningDesignID, Integer userID)throws IOException{
User user = userDAO.getUserById(userID);
@@ -651,32 +795,72 @@
if(learningDesign!=null){
if(learningDesign.getUser().getUserId().equals(user.getUserId())){
if(learningDesign.getReadOnly().booleanValue()){
- flashMessage = new FlashMessage("deleteLearningDesign",
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,
"Cannot delete design with learning_design_id of:" + learningDesignID +
" as it is READ ONLY.",
FlashMessage.ERROR);
}else{
List list = learningDesignDAO.getLearningDesignsByParent(learningDesignID);
if(list==null || list.size()==0){
learningDesignDAO.delete(learningDesign);
- flashMessage = new FlashMessage("deleteLearningDesign","Learning Design deleted: "+ learningDesignID);
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,"Learning Design deleted: "+ learningDesignID);
}
else
- flashMessage = new FlashMessage("deleteLearningDesign",
+ flashMessage = new FlashMessage(MSG_KEY_DELETE,
"Cannot delete design with learning_design_id of:" + learningDesignID +
" as it is a PARENT.",
FlashMessage.ERROR);
}
}else
- flashMessage = FlashMessage.getUserNotAuthorized("deleteLearningDesign",userID);
+ flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_DELETE,userID);
}else
- flashMessage = FlashMessage.getNoSuchLearningDesignExists("deleteLearningDesign",learningDesignID);
+ flashMessage = FlashMessage.getNoSuchLearningDesignExists(MSG_KEY_DELETE,learningDesignID);
}else
- flashMessage = FlashMessage.getNoSuchUserExists("deleteLearningDesign",userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(MSG_KEY_DELETE,userID);
return flashMessage.serializeMessage();
}
/**
+ * This method moves the given WorkspaceFolder
with currentFolderID
+ * under the WorkspaceFolder with targetFolderID
.But before it does so it checks
+ * whether the User
is authorized to do so.
+ *
+ *
+ * Note: This method doesn't actually copies the content from one place to another.
+ * All it does is change the parent_workspace_folder_id
of the currentFolder
+ * to that of the targetFolder
workspace_folder_id
for the
+ * given learningdesign in the lams_learning_design_table
+ * if the User
is authorized to do so.
+ *
+ * @param learningDesignID The learning_design_id
of the
+ * design to be moved
+ * @param targetWorkspaceFolderID The workspaceFolder
under
+ * which it has to be moved.
+ * @param userID The User
who is requesting this operation
+ * @return String Acknowledgement/error message in WDDX format for FLASH
+ * @throws IOException
*/
public String moveLearningDesign(Long learningDesignID,
Integer targetWorkspaceFolderID,
@@ -1120,25 +1322,58 @@
if(workspaceFolder != null){
learningDesign.setWorkspaceFolder(workspaceFolder);
learningDesignDAO.update(learningDesign);
- //flashMessage = new FlashMessage("moveLearningDesign","New WorkspaceFolderID is " + targetWorkspaceFolderID);
- flashMessage = new FlashMessage("moveLearningDesign", targetWorkspaceFolderID);
+ flashMessage = new FlashMessage(MSG_KEY_MOVE, targetWorkspaceFolderID);
}else
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("moveLearningDesign",targetWorkspaceFolderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_MOVE,targetWorkspaceFolderID);
}else
- flashMessage = FlashMessage.getNoSuchLearningDesignExists("moveLearningDesign", learningDesignID);
+ flashMessage = FlashMessage.getNoSuchLearningDesignExists(MSG_KEY_MOVE, learningDesignID);
}else
- flashMessage = FlashMessage.getUserNotAuthorized("moveLearningDesign",userID);
+ flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_MOVE,userID);
}catch(UserException ue){
- flashMessage = FlashMessage.getNoSuchUserExists("moveLearningDesign", userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(MSG_KEY_MOVE, userID);
}catch(WorkspaceFolderException we){
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("moveLearningDesign",targetWorkspaceFolderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_MOVE,targetWorkspaceFolderID);
}
return flashMessage.serializeMessage();
}
/**
- * (non-Javadoc)
- * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#renameWorkspaceFolder(java.lang.Long, java.lang.String, java.lang.Integer)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#renameResource(Long, String, String, Integer)
*/
+ public String renameResource(Long resourceID, String resourceType, String newName, Integer userID)throws IOException{
+ String errorMessage = null;
+
+ if ( resourceID == null || newName == null || resourceType == null || userID== null ) {
+ errorMessage = "renameResource(Long resourceID,Integer newName, String resourceType, Integer userID) requires a value for resourceID, targetFolderID, resourceType and userID";
+ } else if ( FolderContentDTO.DESIGN.equals(resourceType) ) {
+ return renameLearningDesign(resourceID, newName, userID);
+ } else if ( FolderContentDTO.FOLDER.equals(resourceType) ) {
+ return renameWorkspaceFolder(new Integer(resourceID.intValue()), newName, userID);
+ } else if ( FolderContentDTO.FILE.equals(resourceType) ) {
+ // TODO implement delete file resource
+ errorMessage = "LAMS does not support renaming a file via the workspace interface. ";
+ } else if ( FolderContentDTO.LESSON.equals(resourceType) ) {
+ // TODO implement delete lesson
+ errorMessage = "LAMS does not support renaming a lesson via the workspace interface. ";
+ }
+
+ FlashMessage message = new FlashMessage(MSG_KEY_RENAME,
+ "Cannot rename the resource: "+errorMessage,
+ FlashMessage.ERROR);
+ return message.serializeMessage();
+
+ }
+ /**
+ * This method renames the workspaceFolder
with the
+ * given workspaceFolderID
to newName
.
+ * But before it does that it checks if the user is authorized to
+ * do so.
+ *
+ * @param workspaceFolderID The workspaceFolder
to be renamed
+ * @param newName The newName
to be assigned
+ * @param userID The User
who requested this operation
+ * @return String Acknowledgement/error message in WDDX format for FLASH
+ * @throws IOException
+ */
public String renameWorkspaceFolder(Integer workspaceFolderID,String newName,Integer userID)throws IOException{
try{
WorkspaceFolder folder = workspaceFolderDAO.getWorkspaceFolderByID(workspaceFolderID);
@@ -1149,29 +1384,37 @@
if(!ifNameExists(parent,newName)){
folder.setName(newName);
workspaceFolderDAO.update(folder);
- flashMessage = new FlashMessage("renameWorkspaceFolder",newName);
+ flashMessage = new FlashMessage(MSG_KEY_RENAME,newName);
}else
- flashMessage = new FlashMessage("renameWorkspaceFolder",
+ flashMessage = new FlashMessage(MSG_KEY_RENAME,
"A folder with given name '" + newName + "' already exists.",
FlashMessage.ERROR);
}else
- flashMessage = FlashMessage.getUserNotAuthorized("renameWorkspaceFolder",userID);
+ flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_RENAME,userID);
}else
- flashMessage = new FlashMessage("renameWorkspaceFolder",
+ flashMessage = new FlashMessage(MSG_KEY_RENAME,
"Cannot rename the ROOT folder",
FlashMessage.ERROR);
}else
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("renameWorkspaceFolder",workspaceFolderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_RENAME,workspaceFolderID);
}catch(UserException ue){
- flashMessage = FlashMessage.getNoSuchUserExists("renameWorkspaceFolder", userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(MSG_KEY_RENAME, userID);
}catch(WorkspaceFolderException we){
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("renameWorkspaceFolder",workspaceFolderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_RENAME,workspaceFolderID);
}
return flashMessage.serializeMessage();
}
/**
- * (non-Javadoc)
- * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#renameLearningDesign(java.lang.Long, java.lang.String, java.lang.Integer)
+ * This method renames the Learning design with given learningDesignID
+ * to the new title
. But before it does that it checks if the user
+ * is authorized to do so.
+ *
+ * @param learningDesignID The learning_design_id
of the
+ * design to be renamed
+ * @param title The new title
+ * @param userID The User
who requested this operation
+ * @return String Acknowledgement/error message in WDDX format for FLASH
+ * @throws IOException
*/
public String renameLearningDesign(Long learningDesignID, String title,Integer userID)throws IOException {
LearningDesign design = learningDesignDAO.getLearningDesignById(learningDesignID);
@@ -1182,15 +1425,15 @@
if(isUserAuthorized(folderID,userID)){
design.setTitle(title);
learningDesignDAO.update(design);
- flashMessage = new FlashMessage("renameLearningDesign",title);
+ flashMessage = new FlashMessage(MSG_KEY_RENAME,title);
}else
- flashMessage = FlashMessage.getUserNotAuthorized("renameLearningDesign",userID);
+ flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_RENAME,userID);
}else
- flashMessage = FlashMessage.getNoSuchLearningDesignExists("renameLearningDesign",learningDesignID);
+ flashMessage = FlashMessage.getNoSuchLearningDesignExists(MSG_KEY_RENAME,learningDesignID);
}catch(UserException ue){
- flashMessage = FlashMessage.getNoSuchUserExists("renameWorkspaceFolder", userID);
+ flashMessage = FlashMessage.getNoSuchUserExists(MSG_KEY_RENAME, userID);
}catch(WorkspaceFolderException we){
- flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("renameWorkspaceFolder",folderID);
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists(MSG_KEY_RENAME,folderID);
}
return flashMessage.serializeMessage();
}
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java
===================================================================
diff -u -r24e81813a7f7ce5a240c6bf7f4e3b70d55ce2f56 -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7
--- lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 24e81813a7f7ce5a240c6bf7f4e3b70d55ce2f56)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7)
@@ -34,8 +34,13 @@
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
+import org.lamsfoundation.lams.authoring.service.IAuthoringService;
+import org.lamsfoundation.lams.learningdesign.exception.LearningDesignException;
+import org.lamsfoundation.lams.usermanagement.exception.UserException;
+import org.lamsfoundation.lams.usermanagement.exception.WorkspaceFolderException;
import org.lamsfoundation.lams.util.DateUtil;
import org.lamsfoundation.lams.util.WebUtil;
+import org.lamsfoundation.lams.web.util.AttributeNames;
import org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -50,12 +55,16 @@
*/
public class WorkspaceAction extends DispatchAction {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String RESOURCE_TYPE = "resourceType";
+
/** If you want the output given as a jsp, set the request parameter "jspoutput" to
* some value other than an empty string (e.g. 1, true, 0, false, blah).
* If you want it returned as a stream (ie for Flash), do not define this parameter
*/
public static String USE_JSP_OUTPUT = "jspoutput";
+
/**
* @return
*/
@@ -105,7 +114,7 @@
HttpServletResponse response)throws ServletException,IOException{
Integer parentFolderID = new Integer(WebUtil.readIntParam(request,"parentFolderID"));
String folderName = (String)WebUtil.readStrParam(request,"name");
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.createFolderForFlash(parentFolderID,folderName,userID);
return outputPacket(mapping, request, response, wddxPacket, "details");
@@ -129,7 +138,7 @@
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"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.getFolderContents(userID,folderID,mode);
return outputPacket(mapping, request, response, wddxPacket, "details");
@@ -153,7 +162,7 @@
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"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.getFolderContentsExcludeHome(userID,folderID,mode);
return outputPacket(mapping, request, response, wddxPacket, "details");
@@ -171,15 +180,18 @@
* @throws ServletException
* @throws IOException
*/
- public ActionForward deleteFolder(ActionMapping mapping,
+ public ActionForward deleteResource(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException{
- Integer folderID = new Integer(WebUtil.readIntParam(request,"folderID"));
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Long resourceID = new Long(WebUtil.readLongParam(request,RESOURCE_ID));
+ String resourceType = WebUtil.readStrParam(request,RESOURCE_TYPE);
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.deleteFolder(folderID,userID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
+ String wddxPacket = workspaceManagementService.deleteResource(resourceID,resourceType,userID);
+ PrintWriter writer = response.getWriter();
+ writer.println(wddxPacket);
+ return null;
}
/**
@@ -194,39 +206,17 @@
* @throws ServletException
* @throws IOException
*/
- public ActionForward deleteLearningDesign(ActionMapping mapping,
+ public ActionForward copyResource(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException{
- Long learningDesignID = new Long(WebUtil.readIntParam(request,"learningDesignID"));
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
- IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.deleteLearningDesign(learningDesignID,userID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
-
- }
-
- /**
- * For details please refer to
- * org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return ActionForward
- * @throws ServletException
- * @throws IOException
- */
- public ActionForward copyFolder(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)throws ServletException, IOException{
- Integer folderID = new Integer(WebUtil.readIntParam(request,"folderID"));
+ Long resourceID = new Long(WebUtil.readLongParam(request,RESOURCE_ID));
+ String resourceType = WebUtil.readStrParam(request,RESOURCE_TYPE);
Integer targetFolderID = new Integer(WebUtil.readIntParam(request,"targetFolderID"));
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Integer copyType = WebUtil.readIntParam(request, "copyType", true);
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.copyFolder(folderID,targetFolderID,userID);
+ String wddxPacket = workspaceManagementService.copyResource(resourceID,resourceType,copyType,targetFolderID,userID);
return outputPacket(mapping, request, response, wddxPacket, "details");
}
@@ -242,16 +232,20 @@
* @throws ServletException
* @throws IOException
*/
- public ActionForward moveFolder(ActionMapping mapping,
+ public ActionForward moveResource(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException{
- Integer currentFolderID = new Integer(WebUtil.readIntParam(request,"currentFolderID"));
+ Long resourceID = new Long(WebUtil.readLongParam(request,RESOURCE_ID));
+ String resourceType = WebUtil.readStrParam(request,RESOURCE_TYPE);
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
Integer targetFolderID = new Integer(WebUtil.readIntParam(request,"targetFolderID"));
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.moveFolder(currentFolderID,targetFolderID,userID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
+ String wddxPacket = workspaceManagementService.moveResource(resourceID,targetFolderID,resourceType,userID);
+ PrintWriter writer = response.getWriter();
+ writer.println(wddxPacket);
+ return null;
}
/**
@@ -316,34 +310,13 @@
* @param request
* @param response
* @return ActionForward
- * @throws ServletException
- * @throws Exception
- */
- public ActionForward deleteWorkspaceFolderContent(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)throws ServletException, Exception{
- Long folderContentID = new Long(WebUtil.readLongParam(request,"folderContentID"));
- IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.deleteWorkspaceFolderContent(folderContentID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
- }
- /**
- * For details please refer to
- * org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return ActionForward
* @throws IOException
*/
public ActionForward getAccessibleWorkspaceFolders(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.getAccessibleWorkspaceFolders(userID);
return outputPacket(mapping, request, response, wddxPacket, "details");
@@ -363,11 +336,12 @@
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.getAccessibleWorkspaceFoldersNew(userID);
return outputPacket(mapping, request, response, wddxPacket, "details");
}
+
/**
* For details please refer to
* org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
@@ -379,66 +353,24 @@
* @return ActionForward
* @throws IOException
*/
- public ActionForward moveLearningDesign(ActionMapping mapping,
+ public ActionForward renameResource(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
- Integer targetFolderID = new Integer(WebUtil.readIntParam(request,"targetFolderID"));
- Long learningDesignID = new Long(WebUtil.readIntParam(request,"learningDesignID"));
- IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.moveLearningDesign(learningDesignID,targetFolderID,userID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
- }
- /**
- * For details please refer to
- * org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return ActionForward
- * @throws IOException
- */
- public ActionForward renameWorkspaceFolder(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
- Integer folderID = new Integer(WebUtil.readIntParam(request,"folderID"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
+ Long resourceID = new Long(WebUtil.readLongParam(request,RESOURCE_ID));
+ String resourceType = WebUtil.readStrParam(request,RESOURCE_TYPE);
String name = WebUtil.readStrParam(request,"name");
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.renameWorkspaceFolder(folderID,name,userID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
+ String wddxPacket = workspaceManagementService.renameResource(resourceID,resourceType,name,userID);
+ PrintWriter writer = response.getWriter();
+ writer.println(wddxPacket);
+ return null;
}
/**
* For details please refer to
* org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return ActionForward
- * @throws IOException
- */
- public ActionForward renameLearningDesign(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
- Long learningDesignID = new Long(WebUtil.readIntParam(request,"learningDesignID"));
- String title = WebUtil.readStrParam(request,"title");
- IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- String wddxPacket = workspaceManagementService.renameLearningDesign(learningDesignID,title,userID);
- return outputPacket(mapping, request, response, wddxPacket, "details");
- }
-
- /**
- * For details please refer to
- * org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService
*
* @param mapping
* @param form
@@ -451,7 +383,7 @@
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.getWorkspace(userID);
return outputPacket(mapping, request, response, wddxPacket, "details");
@@ -485,7 +417,7 @@
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws Exception{
- Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
+ Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
String role = WebUtil.readStrParam(request, "role");
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.getOrganisationsByUserRole(userID, role);