Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java =================================================================== diff -u -r79f693920c52aeebd61b0ca1d8a904c1bf449961 -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 79f693920c52aeebd61b0ca1d8a904c1bf449961) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -51,21 +51,22 @@ import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; import org.lamsfoundation.lams.tool.taskList.model.TaskListUser; import org.lamsfoundation.lams.tool.taskList.service.ITaskListService; -import org.lamsfoundation.lams.tool.taskList.service.TaskListException; import org.lamsfoundation.lams.tool.taskList.util.TaskListConditionComparator; import org.lamsfoundation.lams.tool.taskList.util.TaskListItemComparator; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListForm; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListItemForm; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListPedagogicalPlannerForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; -import org.springframework.validation.Errors; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -90,6 +91,10 @@ @Qualifier("lataskTaskListService") private ITaskListService taskListService; + @Autowired + @Qualifier("lataskMessageService") + private MessageService messageService; + // ********************************************************** // Solid taskList methods // ********************************************************** @@ -100,8 +105,6 @@ * * This method will avoid read database again and lost un-saved resouce item * lost when user "refresh page", - * - * @throws ServletException */ @RequestMapping("/start") @@ -266,13 +269,8 @@ /** * Display same entire authoring page content from HttpSession variable. - * - * @param taskListForm - * @param request - * @return - * @throws ServletException */ - @RequestMapping("/init") + @RequestMapping(path = "/init", method = RequestMethod.POST) public String initPage(@ModelAttribute TaskListForm startForm, HttpServletRequest request) throws ServletException { String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID); @@ -295,13 +293,8 @@ /** * This method will persist all inforamtion in this authoring page, include all * taskList item, information etc. - * - * @param taskListForm - * @param request - * @return - * @throws ServletException */ - @RequestMapping("/update") + @RequestMapping(path = "/update", method = RequestMethod.POST) public String updateContent(@ModelAttribute TaskListForm taskListForm, HttpServletRequest request) throws Exception { @@ -449,10 +442,6 @@ /** * Display empty page for new taskList item. - * - * @param taskListForm - * @param request - * @return */ @RequestMapping("/newItemInit") public String newItemlInit(@ModelAttribute TaskListItemForm taskListItemForm, HttpServletRequest request) { @@ -505,12 +494,13 @@ * @throws ServletException */ @RequestMapping(path = "/saveOrUpdateItem", method = RequestMethod.POST) - public String saveOrUpdateItem(@ModelAttribute TaskListItemForm taskListItemForm, Errors errors, - HttpServletRequest request) { + public String saveOrUpdateItem(@ModelAttribute TaskListItemForm taskListItemForm, HttpServletRequest request) { - validateTaskListItem(taskListItemForm, errors); + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + errorMap = validateTaskListItem(taskListItemForm); - if (errors.hasErrors()) { + if (!errorMap.isEmpty()) { + request.setAttribute("errorMap", errorMap); return "pages/authoring/parts/addtask"; } @@ -519,8 +509,11 @@ } catch (Exception e) { // any upload exception will display as normal error message rather then throw // exception directly - errors.reject(TaskListConstants.ERROR_MSG_UPLOAD_FAILED); - return "pages/authoring/parts/addtask"; + errorMap.add("GLOBAL", messageService.getMessage(e.getMessage())); + if (!errorMap.isEmpty()) { + request.setAttribute("errorMap", errorMap); + return "pages/authoring/parts/addtask"; + } } // set session map ID so that itemlist.jsp can get sessionMAP request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, taskListItemForm.getSessionMapID()); @@ -532,11 +525,6 @@ * Remove taskList item from HttpSession list and update page display. As * authoring rule, all persist only happen when user submit whole page. So this * remove is just impact HttpSession values. - * - * @param taskListForm - * @param request - * @param response - * @return */ @RequestMapping("/removeItem") public String removeItem(HttpServletRequest request) { @@ -574,9 +562,6 @@ /** * Move up current item. - * - * @param request - * @return */ @RequestMapping("/upItem") public String upItem(HttpServletRequest request) { @@ -585,9 +570,6 @@ /** * Move down current item. - * - * @param request - * @return */ @RequestMapping("/downItem") public String downItem(HttpServletRequest request) { @@ -631,9 +613,6 @@ /** * List save current taskList items. - * - * @param request - * @return */ private SortedSet getTaskListItemList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap @@ -647,9 +626,6 @@ /** * List save current taskList items. - * - * @param request - * @return */ private SortedSet getTaskListConditionList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap @@ -664,9 +640,6 @@ /** * List save deleted taskList items, which could be persisted or non-persisted * items. - * - * @param request - * @return */ private List getDeletedTaskListConditionList(SessionMap sessionMap) { return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_CONDITION_LIST); @@ -675,20 +648,13 @@ /** * List save deleted taskList items, which could be persisted or non-persisted * items. - * - * @param request - * @return */ private List getDeletedTaskListItemList(SessionMap sessionMap) { return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_TASKLIST_ITEM_LIST); } /** * Get java.util.List from HttpSession by given name. - * - * @param request - * @param name - * @return */ private List getListFromSession(SessionMap sessionMap, String name) { List list = (List) sessionMap.get(name); @@ -701,11 +667,6 @@ /** * This method will populate taskList item information to its form for edit use. - * - * @param itemIdx - * @param item - * @param form - * @param request */ private void populateItemToForm(int itemIdx, TaskListItem item, TaskListItemForm taskListItemForm, HttpServletRequest request) { @@ -729,10 +690,6 @@ /** * Extract web from content to taskList item. - * - * @param request - * @param itemForm - * @throws TaskListException */ private void extractFormToTaskListItem(HttpServletRequest request, TaskListItemForm itemForm) throws Exception { /* @@ -784,8 +741,6 @@ /** * Extract session request version of a taskListItem update the DB version of * the taskListItem. - * - * @throws TaskListException */ private void updateTaskListItemFromSession(TaskListItem itemPO, TaskListItem itemFromSession) throws Exception { /* @@ -813,15 +768,14 @@ /** * Vaidate taskList item regards to their type (url/file/learning object/website * zip file) - * - * @param itemForm - * @param errors - * @return */ - private void validateTaskListItem(TaskListItemForm itemForm, Errors errors) { + private MultiValueMap validateTaskListItem(TaskListItemForm itemForm) { + + MultiValueMap errorMap = new LinkedMultiValueMap<>(); if (StringUtils.isBlank(itemForm.getTitle())) { - errors.reject(TaskListConstants.ERROR_MSG_TITLE_BLANK); + errorMap.add("GLOBAL", TaskListConstants.ERROR_MSG_TITLE_BLANK); } + return errorMap; } @RequestMapping("/initPedagogicalPlannerForm") @@ -835,9 +789,11 @@ @RequestMapping(path = "/saveOrUpdatePedagogicalPlannerForm", method = RequestMethod.POST) public String saveOrUpdatePedagogicalPlannerForm(@ModelAttribute TaskListPedagogicalPlannerForm plannerForm, - Errors errors, HttpServletRequest request) throws IOException { - plannerForm.validate(errors); - if (!errors.hasErrors()) { + HttpServletRequest request) throws IOException { + + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + errorMap = plannerForm.validate(); + if (!errorMap.isEmpty()) { TaskList taskList = taskListService.getTaskListByContentId(plannerForm.getToolContentID()); int itemIndex = 0; @@ -880,6 +836,8 @@ } taskList.getTaskListItems().addAll(newItems); taskListService.saveOrUpdateTaskList(taskList); + } else { + request.setAttribute("errorMap", errorMap); } return "pages/authoring/pedagogicalPlannerForm"; Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java =================================================================== diff -u -r79f693920c52aeebd61b0ca1d8a904c1bf449961 -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java (.../AuthoringTaskListConditionController.java) (revision 79f693920c52aeebd61b0ca1d8a904c1bf449961) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java (.../AuthoringTaskListConditionController.java) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -39,7 +39,6 @@ import org.lamsfoundation.lams.tool.taskList.TaskListConstants; import org.lamsfoundation.lams.tool.taskList.model.TaskListCondition; import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; -import org.lamsfoundation.lams.tool.taskList.service.TaskListException; import org.lamsfoundation.lams.tool.taskList.util.TaskListConditionComparator; import org.lamsfoundation.lams.tool.taskList.util.TaskListItemComparator; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListConditionForm; @@ -65,11 +64,6 @@ /** * Display same entire authoring page content from HttpSession variable. - * - * @param taskListForm - * @param request - * @return - * @throws ServletException */ @RequestMapping("/showConditions") public String showConditions(@ModelAttribute TaskListForm taskListForm, HttpServletRequest request) @@ -91,11 +85,6 @@ /** * Display empty page for new taskList item. - * - * @param taskListConditionForm - * @param request - * @param response - * @return */ @RequestMapping("/newConditionInit") public String newConditionInit(@ModelAttribute TaskListForm taskListForm, HttpServletRequest request) { @@ -110,11 +99,6 @@ /** * Display edit page for existed taskList item. - * - * @param taskListConditionForm - * @param request - * @param response - * @return */ @RequestMapping("/editCondition") public String editCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, @@ -145,12 +129,6 @@ * HttpSession TaskListItemList. Notice, this save is not persist them into database, just save * HttpSession temporarily. Only they will be persist when the entire authoring page is being * persisted. - * - * @param form - * @param request - * @param response - * @return - * @throws ServletException */ @RequestMapping("/saveOrUpdateCondition") public String saveOrUpdateCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, Errors errors, @@ -182,11 +160,6 @@ /** * Remove taskList item from HttpSession list and update page display. As authoring rule, all persist only happen * when user submit whole page. So this remove is just impact HttpSession values. - * - * @param form - * @param request - * @param response - * @return */ @RequestMapping("/removeCondition") public String removeCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, @@ -220,9 +193,6 @@ /** * Move up current item. - * - * @param request - * @return */ @RequestMapping("/upCondition") public String upCondition(HttpServletRequest request) { @@ -231,9 +201,6 @@ /** * Move down current item. - * - * @param request - * @return */ @RequestMapping("/downCondition") public String downCondition(HttpServletRequest request) { @@ -277,9 +244,6 @@ /** * List save current taskList items. - * - * @param request - * @return */ private SortedSet getTaskListConditionList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap @@ -293,9 +257,6 @@ /** * List save current taskList items. - * - * @param request - * @return */ private SortedSet getTaskListItemList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap @@ -309,20 +270,13 @@ /** * List save deleted taskList items, which could be persisted or non-persisted items. - * - * @param request - * @return */ private List getDeletedTaskListConditionList(SessionMap sessionMap) { return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_CONDITION_LIST); } /** * Get java.util.List from HttpSession by given name. - * - * @param request - * @param name - * @return */ private List getListFromSession(SessionMap sessionMap, String name) { List list = (List) sessionMap.get(name); @@ -335,11 +289,6 @@ /** * This method will populate taskList item information to its form for edit use. - * - * @param sequenceId - * @param condition - * @param form - * @param request */ private void populateConditionToForm(int sequenceId, TaskListCondition condition, TaskListConditionForm taskListConditionForm, HttpServletRequest request) { @@ -359,11 +308,6 @@ /** * This method will populate taskList item information to its form for edit use. - * - * @param sequenceId - * @param condition - * @param form - * @param request */ private void populateFormWithPossibleItems(TaskListConditionForm taskListConditionForm, HttpServletRequest request) { @@ -387,10 +331,6 @@ /** * Extract form content to taskListContent. - * - * @param request - * @param form - * @throws TaskListException */ private void extractFormToTaskListCondition(HttpServletRequest request, TaskListConditionForm form) throws Exception { @@ -440,9 +380,6 @@ /** * Validate taskListCondition - * - * @param conditionForm - * @return */ private void validateTaskListCondition(TaskListConditionForm taskListConditionForm, Errors errors, HttpServletRequest request) { Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java =================================================================== diff -u -ra2d72bee6029b7e05e8cd696c02db214f3049365 -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java (.../LearningController.java) (revision a2d72bee6029b7e05e8cd696c02db214f3049365) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java (.../LearningController.java) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -37,7 +37,6 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; - import org.lamsfoundation.lams.learning.web.bean.ActivityPositionDTO; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; import org.lamsfoundation.lams.notebook.model.NotebookEntry; @@ -60,16 +59,20 @@ 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.FileValidatorSpringUtil; +import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; -import org.springframework.validation.Errors; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -95,6 +98,10 @@ @Qualifier("lataskTaskListService") private ITaskListService taskListService; + @Autowired + @Qualifier("lataskMessageService") + private MessageService messageService; + /** * Read taskList data from database and put them into HttpSession. It will redirect to init.do directly after this * method run successfully. @@ -328,12 +335,6 @@ /** * Mark taskList item as complete status. - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping("/completeItem") public String complete(HttpServletRequest request, HttpServletResponse response) { @@ -354,15 +355,9 @@ /** * Finish learning session. - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping("/finish") - public String finish(@ModelAttribute ReflectionForm reflectionForm, Errors errors, HttpServletRequest request, + public String finish(@ModelAttribute ReflectionForm reflectionForm, HttpServletRequest request, HttpServletResponse response) { // get back SessionMap @@ -384,7 +379,7 @@ request.setAttribute(TaskListConstants.ATTR_RUN_AUTO, false); } - if (!validateBeforeFinish(request, sessionMapID, errors)) { + if (!validateBeforeFinish(request, sessionMapID)) { return "redirect:/"; // getInputForward } @@ -407,12 +402,6 @@ /** * Initial page for add taskList item (single file or URL). - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping("/addtask") public String addTask(@ModelAttribute TaskListItemForm taskListItemForm, HttpServletRequest request) { @@ -424,25 +413,21 @@ /** * Save new user task into database. - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping(path = "/saveNewTask", method = RequestMethod.POST) - public String saveNewTask(@ModelAttribute TaskListItemForm taskListItemForm, Errors errors, - HttpServletRequest request) { + public String saveNewTask(@ModelAttribute TaskListItemForm taskListItemForm, HttpServletRequest request) { // get back SessionMap String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(sessionMapID); - validateTaskListItem(taskListItemForm, errors); + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + errorMap = validateTaskListItem(taskListItemForm); - if (errors.hasErrors()) { + if (!errorMap.isEmpty()) { + request.setAttribute("errorMap", errorMap); + request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMapID); return "pages/learning/parts/addtask"; } @@ -479,12 +464,6 @@ /** * Adds new user commment. - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping(path = "/addNewComment", method = RequestMethod.POST) public String addNewComment(@ModelAttribute TaskListItemForm taskListItemForm, HttpServletRequest request) { @@ -522,39 +501,35 @@ // form.reset(mapping, request); -// ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig(TaskListConstants.SUCCESS)); -// redirect.addParameter(AttributeNames.ATTR_MODE, mode); -// redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); return "redirect:/learning/start.do"; } /** * Uploads specified file to repository and associates it with current TaskListItem. - * - * @param mapping - * @param form - * @param type - * @param request - * @return - * @throws UploadTaskListFileException */ - @RequestMapping("/uploadFile") - public String uploadFile(@ModelAttribute TaskListItemForm taskListItemForm, @RequestParam("file") MultipartFile file, Errors errors, - HttpServletRequest request) throws UploadTaskListFileException { + @RequestMapping(path = "/uploadFile", method = RequestMethod.POST) + public String uploadFile(@ModelAttribute TaskListItemForm taskListItemForm, + @RequestParam("file") MultipartFile file, HttpServletRequest request) throws UploadTaskListFileException { String mode = request.getParameter(AttributeNames.ATTR_MODE); SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(taskListItemForm.getSessionMapID()); request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); + file = taskListItemForm.getUploadedFile(); + if (file == null || StringUtils.isBlank(file.getName())) { return "pages/learning/learning"; } // validate file size - FileValidatorSpringUtil.validateFileSize(file, false, errors); - if (errors.hasErrors()) { + boolean fileSizeCorrect = FileValidatorSpringUtil.validateFileSize(file, false); + if (!fileSizeCorrect) { + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + errorMap.add("GLOBAL", messageService.getMessage("errors.maxfilesize", + new Object[] { Configuration.getAsInt(ConfigurationKeys.UPLOAD_FILE_MAX_SIZE) })); + request.setAttribute("errorMap", errorMap); return "pages/learning/learning"; } @@ -576,30 +551,21 @@ // form.reset(mapping, request); -// ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig(TaskListConstants.SUCCESS)); -// redirect.addParameter(AttributeNames.ATTR_MODE, mode); -// redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); return "redirect:/learning/start.do"; } /** * Display empty reflection form. - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping("/newReflection") public String newReflection(@ModelAttribute ReflectionForm reflectionForm, HttpServletRequest request, - Errors errors, HttpServletResponse response) { + HttpServletResponse response) { // get session value String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID); - if (!validateBeforeFinish(request, sessionMapID, errors)) { - return "pages/learning/learning"; + if (!validateBeforeFinish(request, sessionMapID)) { + return "redirect:/"; } HttpSession ss = SessionManager.getSession(); @@ -624,16 +590,10 @@ /** * Submit reflection form input database. - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping(path = "/submitReflection", method = RequestMethod.POST) - public String submitReflection(@ModelAttribute ReflectionForm reflectionForm, Errors errors, - HttpServletRequest request, HttpServletResponse response) { + public String submitReflection(@ModelAttribute ReflectionForm reflectionForm, HttpServletRequest request, + HttpServletResponse response) { Integer userId = reflectionForm.getUserID(); @@ -657,7 +617,7 @@ taskListService.updateEntry(entry); } - return finish(reflectionForm, errors, request, response); + return finish(reflectionForm, request, response); } // ************************************************************************************* @@ -688,17 +648,16 @@ return taskListUser; } - /** - * @param itemForm - * @return - */ - private void validateTaskListItem(TaskListItemForm itemForm, Errors errors) { + private MultiValueMap validateTaskListItem(TaskListItemForm itemForm) { + + MultiValueMap errorMap = new LinkedMultiValueMap<>(); if (StringUtils.isBlank(itemForm.getTitle())) { - errors.reject(TaskListConstants.ERROR_MSG_TITLE_BLANK); + errorMap.add("GLOBAL", TaskListConstants.ERROR_MSG_TITLE_BLANK); } + return errorMap; } - private boolean validateBeforeFinish(HttpServletRequest request, String sessionMapID, Errors errors) { + private boolean validateBeforeFinish(HttpServletRequest request, String sessionMapID) { SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(sessionMapID); Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); @@ -711,8 +670,9 @@ int minimumNumberTasks = taskListService.getTaskListBySessionId(sessionId).getMinimumNumberTasks(); // if current user view less than reqired view count number, then just return error message. if ((minimumNumberTasks - numberCompletedTasks) > 0) { - errors.reject("lable.learning.minimum.view.number", - new Object[] { minimumNumberTasks, numberCompletedTasks }, null); + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + errorMap.add("GLOBAL", "lable.learning.minimum.view.number"); + request.setAttribute("errorMap", errorMap); return false; } @@ -721,9 +681,6 @@ /** * Set complete flag for given taskList item. - * - * @param request - * @param sessionId */ private void doComplete(HttpServletRequest request) { // get back sessionMap Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/MonitoringController.java =================================================================== diff -u -r74467b8916b85a9d0376e4c2d8f7deaf4511450c -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 74467b8916b85a9d0376e4c2d8f7deaf4511450c) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -380,13 +380,6 @@ /** * Mark taskList user as verified. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws IOException */ @RequestMapping("/setVerifiedByMonitor") public String setVerifiedByMonitor(HttpServletRequest request, HttpServletResponse response) throws IOException { @@ -406,12 +399,6 @@ /** * Set Submission Deadline - * - * @param mapping - * @param form - * @param request - * @param response - * @return */ @RequestMapping(path = "/setSubmissionDeadline", produces = MediaType.TEXT_PLAIN_VALUE) @ResponseBody Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListPedagogicalPlannerForm.java =================================================================== diff -u -ra2d72bee6029b7e05e8cd696c02db214f3049365 -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListPedagogicalPlannerForm.java (.../TaskListPedagogicalPlannerForm.java) (revision a2d72bee6029b7e05e8cd696c02db214f3049365) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/form/TaskListPedagogicalPlannerForm.java (.../TaskListPedagogicalPlannerForm.java) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -29,19 +29,21 @@ import org.apache.commons.lang.StringUtils; import org.lamsfoundation.lams.tool.taskList.model.TaskList; import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; -import org.lamsfoundation.lams.web.planner.PedagogicalPlannerActivityForm; import org.lamsfoundation.lams.web.planner.PedagogicalPlannerActivitySpringForm; -import org.springframework.validation.Errors; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; /** * */ public class TaskListPedagogicalPlannerForm extends PedagogicalPlannerActivitySpringForm { private List taskListItem; - public void validate(Errors errors) { + @Override + public LinkedMultiValueMap validate() { boolean valid = true; boolean allEmpty = true; + MultiValueMap errorMap = new LinkedMultiValueMap<>(); if (taskListItem != null && !taskListItem.isEmpty()) { for (String item : taskListItem) { if (!StringUtils.isEmpty(item)) { @@ -51,12 +53,13 @@ } } if (allEmpty) { - errors.reject("authoring.msg.no.tasks.save"); + errorMap.add("GLOBAL", "authoring.msg.no.tasks.save"); valid = false; taskListItem = null; } setValid(valid); + return (LinkedMultiValueMap) errorMap; } public void fillForm(TaskList taskList) { Index: lams_tool_task/web/common/messages.jsp =================================================================== diff -u -ra2d72bee6029b7e05e8cd696c02db214f3049365 -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/web/common/messages.jsp (.../messages.jsp) (revision a2d72bee6029b7e05e8cd696c02db214f3049365) +++ lams_tool_task/web/common/messages.jsp (.../messages.jsp) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + <%-- Success Messages - Index: lams_tool_task/web/pages/authoring/parts/addcondition.jsp =================================================================== diff -u -rcad516bd852b193b61c821c5177cecacf3e5d016 -r164c032372fe265498f5492088122cc0e7df6058 --- lams_tool_task/web/pages/authoring/parts/addcondition.jsp (.../addcondition.jsp) (revision cad516bd852b193b61c821c5177cecacf3e5d016) +++ lams_tool_task/web/pages/authoring/parts/addcondition.jsp (.../addcondition.jsp) (revision 164c032372fe265498f5492088122cc0e7df6058) @@ -21,7 +21,8 @@ <%@ include file="/common/messages.jsp"%> - +