Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java =================================================================== diff -u -rf33abf1a2f52fc5a168127033f927174d83a2124 -r579445ba580e31e063651a7d7aade5037c6262f8 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java (.../AuthoringTaskListConditionController.java) (revision f33abf1a2f52fc5a168127033f927174d83a2124) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringTaskListConditionController.java (.../AuthoringTaskListConditionController.java) (revision 579445ba580e31e063651a7d7aade5037c6262f8) @@ -36,7 +36,6 @@ import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; -import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.taskList.TaskListConstants; import org.lamsfoundation.lams.tool.taskList.model.TaskListCondition; import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; @@ -46,7 +45,6 @@ import org.lamsfoundation.lams.tool.taskList.web.form.TaskListForm; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; -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; @@ -55,6 +53,7 @@ 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; /** * Auxiliary action in author mode. It contains operations with TaskListCondition. The rest of operations are located in @@ -97,20 +96,19 @@ * Display empty page for new taskList item. */ @RequestMapping("/newConditionInit") - public String newConditionInit(@ModelAttribute TaskListForm taskListForm, HttpServletRequest request) { + public String newConditionInit(@ModelAttribute TaskListConditionForm taskListConditionForm, + HttpServletRequest request) { - TaskListConditionForm taskListConditionForm = new TaskListConditionForm(); String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); taskListConditionForm.setSessionMapID(sessionMapID); populateFormWithPossibleItems(taskListConditionForm, request); - request.setAttribute("taskListConditionForm", taskListConditionForm); return "pages/authoring/parts/addcondition"; } /** * Display edit page for existed taskList item. */ - @RequestMapping("/editCondition") + @RequestMapping(path = "/editCondition", method = RequestMethod.POST) public String editCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, HttpServletRequest request) { @@ -140,14 +138,15 @@ * HttpSession temporarily. Only they will be persist when the entire authoring page is being * persisted. */ - @RequestMapping("/saveOrUpdateCondition") + @RequestMapping(path = "/saveOrUpdateCondition") public String saveOrUpdateCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, HttpServletRequest request) { - MultiValueMap errorMap = new LinkedMultiValueMap<>(); - validateTaskListCondition(taskListConditionForm, request); + MultiValueMap errorMap = validateTaskListCondition(taskListConditionForm, request); + if (!errorMap.isEmpty()) { populateFormWithPossibleItems(taskListConditionForm, request); + request.setAttribute("errorMap", errorMap); return "pages/authoring/parts/addcondition"; } @@ -158,6 +157,7 @@ errorMap.add("GLOBAL", messageService.getMessage("error.upload.faile")); if (!errorMap.isEmpty()) { populateFormWithPossibleItems(taskListConditionForm, request); + request.setAttribute("errorMap", errorMap); return "pages/authoring/parts/addcondition"; } @@ -172,7 +172,7 @@ * 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. */ - @RequestMapping("/removeCondition") + @RequestMapping(path = "/removeCondition", method = RequestMethod.POST) public String removeCondition(@ModelAttribute TaskListConditionForm taskListConditionForm, HttpServletRequest request) { @@ -392,10 +392,11 @@ /** * Validate taskListCondition */ - private void validateTaskListCondition(TaskListConditionForm taskListConditionForm, HttpServletRequest request) { + private MultiValueMap validateTaskListCondition(TaskListConditionForm taskListConditionForm, + HttpServletRequest request) { - MultiValueMap errorMap = new LinkedMultiValueMap<>(); String formConditionName = taskListConditionForm.getName(); + MultiValueMap errorMap = new LinkedMultiValueMap<>(); if (StringUtils.isBlank(formConditionName)) { errorMap.add("GLOBAL", messageService.getMessage("error.condition.name.blank")); } else if (StringUtils.contains(formConditionName, '#')) { @@ -411,7 +412,7 @@ for (TaskListCondition condition : conditionList) { if (formConditionName.equals(condition.getName()) && !formConditionSequenceId.equals((new Integer(condition.getSequenceId() - 1)).toString())) { - errorMap.add("GLOBAL", "error.condition.duplicated.name"); + errorMap.add("GLOBAL", messageService.getMessage("error.condition.duplicated.name")); ; break; } @@ -421,26 +422,8 @@ // should be selected at least one TaskListItem String[] selectedItems = taskListConditionForm.getSelectedItems(); if (selectedItems == null || selectedItems.length == 0) { - errorMap.add("GLOBAL", "error.condition.no.tasklistitems.selected"); + errorMap.add("GLOBAL", messageService.getMessage("error.condition.no.tasklistitems.selected")); } - - } - - private MultiValueMap validate(TaskListForm taskListForm, HttpServletRequest request) { - MultiValueMap errorMap = new LinkedMultiValueMap<>(); - // if (StringUtils.isBlank(taskListForm.getTaskList().getTitle())) { - // ActionMessage error = new ActionMessage("error.resource.item.title.blank"); - // errors.add(ActionMessages.GLOBAL_MESSAGE, error); - // } - - // define it later mode(TEACHER) skip below validation. - String modeStr = request.getParameter(AttributeNames.ATTR_MODE); - if (StringUtils.equals(modeStr, ToolAccessMode.TEACHER.toString())) { - return errorMap; - } - - // Some other validation outside basic Tab. - return errorMap; } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java =================================================================== diff -u -rf33abf1a2f52fc5a168127033f927174d83a2124 -r579445ba580e31e063651a7d7aade5037c6262f8 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java (.../LearningController.java) (revision f33abf1a2f52fc5a168127033f927174d83a2124) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/LearningController.java (.../LearningController.java) (revision 579445ba580e31e063651a7d7aade5037c6262f8) @@ -59,8 +59,6 @@ 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; @@ -118,7 +116,7 @@ // save toolContentID into HTTPSession ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, true); - Long sessionId = Long.valueOf(request.getParameter(TaskListConstants.PARAM_TOOL_SESSION_ID)); + Long sessionId = new Long(request.getParameter(TaskListConstants.PARAM_TOOL_SESSION_ID)); request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); request.setAttribute(AttributeNames.ATTR_MODE, mode); @@ -497,8 +495,12 @@ sessionMap.put(TaskListConstants.ATTR_TASK_LIST_ITEM, dbItem); // form.reset(mapping, request); + String redirectURL = "redirect:/learning/start.do"; + redirectURL = WebUtil.appendParameterToURL(redirectURL, AttributeNames.ATTR_MODE, mode); + redirectURL = WebUtil.appendParameterToURL(redirectURL, AttributeNames.PARAM_TOOL_SESSION_ID, + sessionId.toString()); - return "redirect:/learning/start.do"; + return redirectURL; } /** @@ -519,13 +521,11 @@ if (file == null || StringUtils.isBlank(file.getName())) { return "pages/learning/learning"; } - MultiValueMap errorMap = new LinkedMultiValueMap<>(); - // validate file size - boolean fileSizeCorrect = FileValidatorSpringUtil.validateFileSize(file, false, errorMap); - if (!fileSizeCorrect) { - errorMap.add("GLOBAL", messageService.getMessage("errors.maxfilesize", - new Object[] { Configuration.getAsInt(ConfigurationKeys.UPLOAD_FILE_MAX_SIZE) })); + // validate file size + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + FileValidatorSpringUtil.validateFileSize(file, false, errorMap); + if (!errorMap.isEmpty()) { request.setAttribute("errorMap", errorMap); return "pages/learning/learning"; } @@ -548,7 +548,12 @@ // form.reset(mapping, request); - return "redirect:/learning/start.do"; + String redirectURL = "redirect:/learning/start.do"; + redirectURL = WebUtil.appendParameterToURL(redirectURL, AttributeNames.ATTR_MODE, mode); + redirectURL = WebUtil.appendParameterToURL(redirectURL, AttributeNames.PARAM_TOOL_SESSION_ID, + sessionId.toString()); + + return redirectURL; } /** Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/MonitoringController.java =================================================================== diff -u -r164c032372fe265498f5492088122cc0e7df6058 -r579445ba580e31e063651a7d7aade5037c6262f8 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 164c032372fe265498f5492088122cc0e7df6058) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 579445ba580e31e063651a7d7aade5037c6262f8) @@ -382,6 +382,7 @@ * Mark taskList user as verified. */ @RequestMapping("/setVerifiedByMonitor") + @ResponseBody public String setVerifiedByMonitor(HttpServletRequest request, HttpServletResponse response) throws IOException { Long userUid = WebUtil.readLongParam(request, TaskListConstants.ATTR_USER_UID); Index: lams_tool_task/web/pages/authoring/advance.jsp =================================================================== diff -u -rcad516bd852b193b61c821c5177cecacf3e5d016 -r579445ba580e31e063651a7d7aade5037c6262f8 --- lams_tool_task/web/pages/authoring/advance.jsp (.../advance.jsp) (revision cad516bd852b193b61c821c5177cecacf3e5d016) +++ lams_tool_task/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 579445ba580e31e063651a7d7aade5037c6262f8) @@ -71,7 +71,7 @@
- +
Index: lams_tool_task/web/pages/authoring/parts/addcondition.jsp =================================================================== diff -u -r164c032372fe265498f5492088122cc0e7df6058 -r579445ba580e31e063651a7d7aade5037c6262f8 --- lams_tool_task/web/pages/authoring/parts/addcondition.jsp (.../addcondition.jsp) (revision 164c032372fe265498f5492088122cc0e7df6058) +++ lams_tool_task/web/pages/authoring/parts/addcondition.jsp (.../addcondition.jsp) (revision 579445ba580e31e063651a7d7aade5037c6262f8) @@ -18,11 +18,11 @@
- + - <%@ include file="/common/messages.jsp"%> + <%@ include file="/common/messages.jsp"%> @@ -34,10 +34,17 @@ -
- + +
+
- +
+ + + - +
Index: lams_tool_task/web/pages/authoring/parts/addtask.jsp =================================================================== diff -u -rca4af9a9cc1dfb336267955e3d78cf4da3989c32 -r579445ba580e31e063651a7d7aade5037c6262f8 --- lams_tool_task/web/pages/authoring/parts/addtask.jsp (.../addtask.jsp) (revision ca4af9a9cc1dfb336267955e3d78cf4da3989c32) +++ lams_tool_task/web/pages/authoring/parts/addtask.jsp (.../addtask.jsp) (revision 579445ba580e31e063651a7d7aade5037c6262f8) @@ -46,7 +46,7 @@
- +