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)%> + <fmt:message key="label.learning.title" /> <%@ 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"%> + - + +
+ +