Index: lams_central/conf/language/lams/ApplicationResources.properties
===================================================================
RCS file: /usr/local/cvsroot/lams_central/conf/language/lams/ApplicationResources.properties,v
diff -u -r1.138.2.37 -r1.138.2.38
--- lams_central/conf/language/lams/ApplicationResources.properties 1 Dec 2016 08:46:40 -0000 1.138.2.37
+++ lams_central/conf/language/lams/ApplicationResources.properties 4 Dec 2016 12:33:31 -0000 1.138.2.38
@@ -460,6 +460,7 @@
authoring.fla.region.fit.button.tooltip =Fit
authoring.fla.new.folder.button =New
authoring.fla.copy.button =Copy
+authoring.fla.cut.button =Cut
authoring.fla.paste.button =Paste
authoring.fla.delete.button =Delete
authoring.fla.rename.button =Rename
@@ -488,6 +489,8 @@
authoring.fla.sequence.not.selected.error =Please choose a sequence
authoring.fla.sequence.load.error =Error while loading the sequence
authoring.fla.transition.from.exists.error =Transition from this activity already exists
+authoring.fla.modify.error =You can not modify this resource
+authoring.fla.folder.move.to.child.error =Can not move a folder into its child
authoring.fla.export.image.dialog.title =Image export
authoring.fla.export.sequence.dialog.title =Sequence export
authoring.fla.activity.copy.title.prefix =Copy [0] of
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java,v
diff -u -r1.24.2.5 -r1.24.2.6
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java 11 May 2016 07:07:59 -0000 1.24.2.5
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java 4 Dec 2016 12:33:31 -0000 1.24.2.6
@@ -206,6 +206,11 @@
throws IOException, LearningDesignException, UserException, WorkspaceFolderException;
/**
+ * Changes the parent of given Learning Design or WorkspaceFolder to the target WorkspaceFolder
+ */
+ void moveResource(Long resourceID, String resourceType, Integer targetFolderID) throws WorkspaceFolderException;
+
+ /**
* This method returns a list of organisation workspace folders.
*
* The organisation folders returned are determined based on whether the user has "write" access. A user can
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java,v
diff -u -r1.61.2.10 -r1.61.2.11
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 29 Jun 2016 07:43:28 -0000 1.61.2.10
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 4 Dec 2016 12:33:31 -0000 1.61.2.11
@@ -577,6 +577,28 @@
}
}
+ @Override
+ public void moveResource(Long resourceID, String resourceType, Integer targetFolderID)
+ throws WorkspaceFolderException {
+ WorkspaceFolder targetFolder = getWorkspaceFolder(targetFolderID);
+ if (FolderContentDTO.DESIGN.equals(resourceType)) {
+ LearningDesign learningDesign = learningDesignDAO.getLearningDesignById(resourceID);
+ learningDesign.setWorkspaceFolder(targetFolder);
+ learningDesignDAO.insertOrUpdate(learningDesign);
+ } else if (FolderContentDTO.FOLDER.equals(resourceType)) {
+ WorkspaceFolder folder = getWorkspaceFolder(resourceID.intValue());
+ WorkspaceFolder parent = targetFolder.getParentWorkspaceFolder();
+ while (parent != null) {
+ if (parent.equals(folder)) {
+ throw new WorkspaceFolderException("Can not move a folder into its descendant");
+ }
+ parent = parent.getParentWorkspaceFolder();
+ }
+ folder.setParentWorkspaceFolder(targetFolder);
+ baseDAO.update(folder);
+ }
+ }
+
/**
* 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.
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java,v
diff -u -r1.26.2.4 -r1.26.2.5
--- lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java 11 May 2016 07:07:59 -0000 1.26.2.4
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java 4 Dec 2016 12:33:31 -0000 1.26.2.5
@@ -169,8 +169,8 @@
Integer targetFolderID = WebUtil.readIntParam(request, "targetFolderID", false);
if (targetFolderID == null) {
- log.error("Can not create folder, parent folder ID is NULL");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parent folder ID is NULL");
+ log.error("Can not copy resource, missing target folder ID");
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing target folder ID");
return null;
}
@@ -180,6 +180,28 @@
return null;
}
+ public ActionForward moveResource(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws IOException {
+ Long resourceID = WebUtil.readLongParam(request, WorkspaceAction.RESOURCE_ID, false);
+ String resourceType = WebUtil.readStrParam(request, WorkspaceAction.RESOURCE_TYPE, false);
+ Integer targetFolderID = WebUtil.readIntParam(request, "targetFolderID", false);
+
+ if (targetFolderID == null) {
+ log.error("Can not move resource, missing target folder ID");
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing target folder ID");
+ return null;
+ }
+
+ try {
+ getWorkspaceManagementService().moveResource(resourceID, resourceType, targetFolderID);
+ } catch (WorkspaceFolderException e) {
+ log.error("Error while moving a resource", e);
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Error while moving a resource");
+ return null;
+ }
+ return null;
+ }
+
public ActionForward renameResource(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException, UserException, WorkspaceFolderException {
Index: lams_central/web/authoring/authoring.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_central/web/authoring/authoring.jsp,v
diff -u -r1.6.2.43 -r1.6.2.44
--- lams_central/web/authoring/authoring.jsp 3 Dec 2016 11:33:14 -0000 1.6.2.43
+++ lams_central/web/authoring/authoring.jsp 4 Dec 2016 12:33:31 -0000 1.6.2.44
@@ -124,6 +124,10 @@
SEQUENCE_NOT_SELECTED_ERROR : decoderDiv.html('').text(),
SEQUENCE_LOAD_ERROR : decoderDiv.html('').text(),
+
+ RESOURCE_MODIFY_ERROR : decoderDiv.html('').text(),
+
+ FOLDER_MOVE_TO_CHILD_ERROR : decoderDiv.html('').text(),
// HandlerLib
@@ -497,6 +501,11 @@
+
+