Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java
===================================================================
diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r895289ecb3f8c3433306cd14b53ffb09bf788cca
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java (.../ITaskListService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java (.../ITaskListService.java) (revision 895289ecb3f8c3433306cd14b53ffb09bf788cca)
@@ -23,6 +23,7 @@
package org.lamsfoundation.lams.tool.taskList.service;
+import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -38,7 +39,6 @@
import org.lamsfoundation.lams.tool.taskList.model.TaskListSession;
import org.lamsfoundation.lams.tool.taskList.model.TaskListUser;
import org.lamsfoundation.lams.util.MessageService;
-import org.springframework.web.multipart.MultipartFile;
/**
* Interface that defines the contract that all TaskLisk service providers must follow.
@@ -104,7 +104,7 @@
* @return
* @throws UploadTaskListFileException
*/
- TaskListItemAttachment uploadTaskListItemFile(MultipartFile uploadFile, TaskListUser user)
+ TaskListItemAttachment uploadTaskListItemFile(File uploadFile, TaskListUser user)
throws UploadTaskListFileException;
/**
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java
===================================================================
diff -u -r815b617ce48bcd3dc0a36aa32630ca55d4c21715 -r895289ecb3f8c3433306cd14b53ffb09bf788cca
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 815b617ce48bcd3dc0a36aa32630ca55d4c21715)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 895289ecb3f8c3433306cd14b53ffb09bf788cca)
@@ -23,6 +23,8 @@
package org.lamsfoundation.lams.tool.taskList.service;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Timestamp;
@@ -78,7 +80,6 @@
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.MessageService;
-import org.springframework.web.multipart.MultipartFile;
/**
* Class implements org.lamsfoundation.lams.tool.taskList.service.ITaskListService
.
@@ -134,9 +135,9 @@
}
@Override
- public TaskListItemAttachment uploadTaskListItemFile(MultipartFile uploadFile, TaskListUser user)
+ public TaskListItemAttachment uploadTaskListItemFile(File uploadFile, TaskListUser user)
throws UploadTaskListFileException {
- if ((uploadFile == null) || StringUtils.isEmpty(uploadFile.getOriginalFilename())) {
+ if ((uploadFile == null) || StringUtils.isEmpty(uploadFile.getName())) {
throw new UploadTaskListFileException(
messageService.getMessage("error.msg.upload.file.not.found", new Object[] { uploadFile }));
}
@@ -148,7 +149,7 @@
TaskListItemAttachment file = new TaskListItemAttachment();
file.setFileUuid(nodeKey.getUuid());
file.setFileVersionId(nodeKey.getVersion());
- file.setFileName(uploadFile.getOriginalFilename());
+ file.setFileName(uploadFile.getName());
file.setCreated(new Timestamp(new Date().getTime()));
file.setCreateBy(user);
@@ -865,7 +866,7 @@
public List getConfidenceLevels(Long toolSessionId) {
return null;
}
-
+
@Override
public boolean isUserGroupLeader(Long userId, Long toolSessionId) {
return false;
@@ -957,12 +958,12 @@
* @throws RepositoryCheckedException
* @throws InvalidParameterException
*/
- private NodeKey processFile(MultipartFile file) throws UploadTaskListFileException {
+ private NodeKey processFile(File file) throws UploadTaskListFileException {
NodeKey node = null;
if ((file != null) && !StringUtils.isEmpty(file.getName())) {
String fileName = file.getName();
try {
- node = taskListToolContentHandler.uploadFile(file.getInputStream(), fileName, file.getContentType());
+ node = taskListToolContentHandler.uploadFile(new FileInputStream(file), fileName, null);
} catch (InvalidParameterException e) {
throw new UploadTaskListFileException(
messageService.getMessage("error.msg.invaid.param.upload") + " " + e.getMessage());
@@ -972,9 +973,6 @@
} catch (RepositoryCheckedException e) {
throw new UploadTaskListFileException(
messageService.getMessage("error.msg.repository") + " " + e.getMessage());
- } catch (IOException e) {
- throw new UploadTaskListFileException(
- messageService.getMessage("error.msg.io.exception") + " " + e.getMessage());
}
}
return node;
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java
===================================================================
diff -u -ra036f4daff29fff35a950c2ddd63a36078f87e73 -r895289ecb3f8c3433306cd14b53ffb09bf788cca
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java (.../LearningController.java) (revision a036f4daff29fff35a950c2ddd63a36078f87e73)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java (.../LearningController.java) (revision 895289ecb3f8c3433306cd14b53ffb09bf788cca)
@@ -23,9 +23,11 @@
package org.lamsfoundation.lams.tool.taskList.web.controller;
+import java.io.File;
import java.sql.Timestamp;
import java.util.Comparator;
import java.util.Date;
+import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;
@@ -57,10 +59,8 @@
import org.lamsfoundation.lams.tool.taskList.web.form.ReflectionForm;
import org.lamsfoundation.lams.tool.taskList.web.form.TaskListItemForm;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
-import org.lamsfoundation.lams.util.Configuration;
-import org.lamsfoundation.lams.util.ConfigurationKeys;
import org.lamsfoundation.lams.util.DateUtil;
-import org.lamsfoundation.lams.util.FileValidatorUtil;
+import org.lamsfoundation.lams.util.FileUtil;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.session.SessionManager;
@@ -74,7 +74,6 @@
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.multipart.MultipartFile;
/**
* @author Steve.Ni
@@ -313,6 +312,7 @@
}
+ taskListItemForm.setTmpFileUploadId(FileUtil.generateTmpFileUploadId());
sessionMap.put(TaskListConstants.ATTR_TASKLIST, taskList);
return "pages/learning/learning";
}
@@ -375,6 +375,7 @@
public String addTask(@ModelAttribute TaskListItemForm taskListItemForm, HttpServletRequest request) {
taskListItemForm.setMode(WebUtil.readStrParam(request, AttributeNames.ATTR_MODE));
taskListItemForm.setSessionMapID(WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID));
+ taskListItemForm.setTmpFileUploadId(FileUtil.generateTmpFileUploadId());
return "pages/learning/parts/addtask";
}
@@ -476,31 +477,25 @@
request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID);
- MultipartFile file = taskListItemForm.getUploadedFile();
-
- if (file == null || StringUtils.isBlank(file.getOriginalFilename())) {
- return "pages/learning/learning";
+ File files[] = null;
+ File uploadDir = FileUtil.getTmpFileUploadDir(taskListItemForm.getTmpFileUploadId());
+ if (uploadDir.canRead()) {
+ files = uploadDir.listFiles();
}
- // validate file size
- MultiValueMap errorMap = new LinkedMultiValueMap<>();
- boolean fileSizeValid = FileValidatorUtil.validateFileSize(file, false);
- if (!fileSizeValid) {
- errorMap.add("GLOBAL", messageService.getMessage("errors.maxfilesize",
- new Object[] { Configuration.getAsInt(ConfigurationKeys.UPLOAD_FILE_MAX_SIZE) }));
- }
-
- if (!errorMap.isEmpty()) {
- request.setAttribute("errorMap", errorMap);
+ if (files == null || files.length == 0) {
return "pages/learning/learning";
}
// upload to repository
UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
TaskListUser taskListUser = taskListService.getUserByIDAndSession(user.getUserID().longValue(), sessionId);
- TaskListItemAttachment att = null;
+ List attachments = new LinkedList<>();
+ MultiValueMap errorMap = new LinkedMultiValueMap<>();
try {
- att = taskListService.uploadTaskListItemFile(file, taskListUser);
+ for (File file : files) {
+ attachments.add(taskListService.uploadTaskListItemFile(file, taskListUser));
+ }
} catch (UploadTaskListFileException e) {
errorMap.add("GLOBAL", messageService.getMessage("error.upload.failed", new Object[] { e.getMessage() }));
request.setAttribute("errorMap", errorMap);
@@ -511,7 +506,7 @@
Long itemUid = WebUtil.readLongParam(request, TaskListConstants.PARAM_ITEM_UID);
TaskListItem dbItem = taskListService.getTaskListItemByUid(itemUid);
Set dbAttachments = dbItem.getAttachments();
- dbAttachments.add(att);
+ dbAttachments.addAll(attachments);
taskListService.saveOrUpdateTaskListItem(dbItem);
// to make available new changes be visible in jsp page
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListItemForm.java
===================================================================
diff -u -r3b9eccb4b8def4d56a62641a0fe4038a60b3afe6 -r895289ecb3f8c3433306cd14b53ffb09bf788cca
--- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListItemForm.java (.../TaskListItemForm.java) (revision 3b9eccb4b8def4d56a62641a0fe4038a60b3afe6)
+++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListItemForm.java (.../TaskListItemForm.java) (revision 895289ecb3f8c3433306cd14b53ffb09bf788cca)
@@ -23,8 +23,6 @@
package org.lamsfoundation.lams.tool.taskList.web.form;
-import org.springframework.web.multipart.MultipartFile;
-
/**
* Form responsible for representing TaskListItem
objects on a view layer.
*
@@ -52,7 +50,7 @@
private String parentTaskName;
- private MultipartFile uploadedFile;
+ private String tmpFileUploadId;
private String comment;
/**
@@ -283,23 +281,12 @@
this.parentTaskName = parentTaskName;
}
- /**
- * Returns attachment for this TaskLiskItem
.
- *
- * @return attachment for this TaskLiskItem
- */
- public MultipartFile getUploadedFile() {
- return uploadedFile;
+ public String getTmpFileUploadId() {
+ return tmpFileUploadId;
}
- /**
- * Sets attachment for this TaskLiskItem
.
- *
- * @param uploadedFile
- * attachment for this TaskLiskItem
- */
- public void setUploadedFile(MultipartFile uploadedFile) {
- this.uploadedFile = uploadedFile;
+ public void setTmpFileUploadId(String tmpFileUploadId) {
+ this.tmpFileUploadId = tmpFileUploadId;
}
/**
Index: lams_tool_task/web/pages/learning/learning.jsp
===================================================================
diff -u -r7c46c69de0269005bc00c1e5fd5347f6fe306790 -r895289ecb3f8c3433306cd14b53ffb09bf788cca
--- lams_tool_task/web/pages/learning/learning.jsp (.../learning.jsp) (revision 7c46c69de0269005bc00c1e5fd5347f6fe306790)
+++ lams_tool_task/web/pages/learning/learning.jsp (.../learning.jsp) (revision 895289ecb3f8c3433306cd14b53ffb09bf788cca)
@@ -16,16 +16,36 @@
<%=Configuration.get(ConfigurationKeys.UPLOAD_FILE_MAX_SIZE)%>
<%=FileValidatorUtil.formatSize(Configuration.getAsInt(ConfigurationKeys.UPLOAD_FILE_MAX_SIZE))%>
<%=Configuration.get(ConfigurationKeys.EXE_EXTENSIONS)%>
+
<%@ include file="/common/header.jsp"%>
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_tool_task/web/pages/learning/parts/itemdetails.jsp
===================================================================
diff -u -raff1ef425c76fe6a2051694c0fdf833265459710 -r895289ecb3f8c3433306cd14b53ffb09bf788cca
--- lams_tool_task/web/pages/learning/parts/itemdetails.jsp (.../itemdetails.jsp) (revision aff1ef425c76fe6a2051694c0fdf833265459710)
+++ lams_tool_task/web/pages/learning/parts/itemdetails.jsp (.../itemdetails.jsp) (revision 895289ecb3f8c3433306cd14b53ffb09bf788cca)
@@ -28,9 +28,15 @@
<%@ include file="filelist.jsp"%>
+
-
+
+
+
+