Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java =================================================================== diff -u -r7a37ae5049a14049cacb3d0d3423362ce92993e6 -rc955e015d6401904e2dd7c662436047392caedfd --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision 7a37ae5049a14049cacb3d0d3423362ce92993e6) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision c955e015d6401904e2dd7c662436047392caedfd) @@ -40,6 +40,7 @@ import java.util.SortedSet; import java.util.TimeZone; import java.util.TreeSet; +import java.util.Vector; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -51,6 +52,7 @@ import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.learningdesign.dto.ActivityPositionDTO; +import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; @@ -82,9 +84,12 @@ import org.lamsfoundation.lams.web.util.SessionMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.context.WebApplicationContext; import com.fasterxml.jackson.databind.node.JsonNodeFactory; @@ -375,6 +380,7 @@ * Checks Leader Progress */ @RequestMapping("/checkLeaderProgress") + @ResponseBody public String checkLeaderProgress(HttpServletRequest request, HttpServletResponse response) throws IOException { Long toolSessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); @@ -385,11 +391,10 @@ boolean isTimeLimitExceeded = service.checkTimeLimitExceeded(session.getAssessment(), leader); boolean isLeaderResponseFinalized = service.isLastAttemptFinishedByUser(leader); - ObjectNode ObjectNode = JsonNodeFactory.instance.objectNode(); - ObjectNode.put("isPageRefreshRequested", isLeaderResponseFinalized || isTimeLimitExceeded); - response.setContentType("application/x-json;charset=utf-8"); - response.getWriter().print(ObjectNode); - return null; + ObjectNode responseJSON = JsonNodeFactory.instance.objectNode(); + responseJSON.put("isPageRefreshRequested", isLeaderResponseFinalized || isTimeLimitExceeded); + response.setContentType("application/json;charset=utf-8"); + return responseJSON.toString(); } /** @@ -475,6 +480,7 @@ * @throws IOException */ @RequestMapping("/getSecondsLeft") + @ResponseBody public String getSecondsLeft(HttpServletRequest request, HttpServletResponse response) throws ServletException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, IOException { @@ -486,9 +492,8 @@ long secondsLeft = service.getSecondsLeft(assessment, user); ObjectNode responseJSON = JsonNodeFactory.instance.objectNode(); responseJSON.put(AssessmentConstants.ATTR_SECONDS_LEFT, secondsLeft); - response.setContentType("application/x-json;charset=utf-8"); - response.getWriter().print(responseJSON); - return null; + response.setContentType("application/json;charset=utf-8"); + return responseJSON.toString(); } /** @@ -730,7 +735,8 @@ * auto saves responses */ @RequestMapping("/autoSaveAnswers") - public String autoSaveAnswers(HttpServletRequest request) + @ResponseStatus(HttpStatus.OK) + public void autoSaveAnswers(HttpServletRequest request) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession() @@ -741,15 +747,14 @@ storeUserAnswersIntoSessionMap(request, pageNumber); //store results from sessionMap into DB storeUserAnswersIntoDatabase(sessionMap, true); - - return null; } /** * Stores date when user has started activity with time limit */ @RequestMapping("/launchTimeLimit") - public String launchTimeLimit(HttpServletRequest request) { + @ResponseStatus(HttpStatus.OK) + public void launchTimeLimit(HttpServletRequest request) { String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(sessionMapID); @@ -759,8 +764,6 @@ sessionMap.put(AssessmentConstants.ATTR_IS_TIME_LIMIT_NOT_LAUNCHED, false); service.launchTimeLimit(assessmentUid, userId); - - return null; } /** Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -r7a37ae5049a14049cacb3d0d3423362ce92993e6 -rc955e015d6401904e2dd7c662436047392caedfd --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7a37ae5049a14049cacb3d0d3423362ce92993e6) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision c955e015d6401904e2dd7c662436047392caedfd) @@ -72,6 +72,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.util.HtmlUtils; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -176,7 +177,7 @@ request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); Long questionUid = WebUtil.readLongParam(request, AssessmentConstants.PARAM_QUESTION_UID); - if (questionUid.equals(-1)) { + if (questionUid.equals(-1l)) { return null; } Long contentId = (Long) sessionMap.get(AssessmentConstants.ATTR_TOOL_CONTENT_ID); @@ -203,22 +204,21 @@ } @RequestMapping("/saveUserGrade") - public String saveUserGrade(HttpServletRequest request, HttpServletResponse response) { + public void saveUserGrade(HttpServletRequest request, HttpServletResponse response) { if ((request.getParameter(AssessmentConstants.PARAM_NOT_A_NUMBER) == null) && !StringUtils.isEmpty(request.getParameter(AssessmentConstants.PARAM_QUESTION_RESULT_UID))) { Long questionResultUid = WebUtil.readLongParam(request, AssessmentConstants.PARAM_QUESTION_RESULT_UID); float newGrade = Float.valueOf(request.getParameter(AssessmentConstants.PARAM_GRADE)); service.changeQuestionResultMark(questionResultUid, newGrade); } - - return null; } /** * Set Submission Deadline */ @RequestMapping("/setSubmissionDeadline") + @ResponseBody public String setSubmissionDeadline(HttpServletRequest request, HttpServletResponse response) throws IOException { Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); @@ -256,6 +256,7 @@ * @throws IOException */ @RequestMapping("/setActivityEvaluation") + @ResponseBody public String setActivityEvaluation(HttpServletRequest request, HttpServletResponse response) throws IOException { String sessionMapID = request.getParameter(AssessmentConstants.ATTR_SESSION_MAP_ID); @@ -273,8 +274,7 @@ ObjectNode responseJSON = JsonNodeFactory.instance.objectNode(); responseJSON.put("success", "true"); response.setContentType("application/json;charset=utf-8"); - response.getWriter().print(new String(responseJSON.toString())); - return null; + return responseJSON.toString(); } /** @@ -602,7 +602,7 @@ * Allows displaying correct answers to learners */ @RequestMapping("/discloseCorrectAnswers") - public String discloseCorrectAnswers(HttpServletRequest request, HttpServletResponse response) { + public void discloseCorrectAnswers(HttpServletRequest request, HttpServletResponse response) { Long questionUid = WebUtil.readLongParam(request, "questionUid"); Long toolContentId = WebUtil.readLongParam(request, AssessmentConstants.PARAM_TOOL_CONTENT_ID); @@ -616,15 +616,13 @@ log.debug("Disclosed correct answers for Assessment tool content ID " + toolContentId + " and question ID " + questionUid); } - - return null; } /** * Allows displaying other groups' answers to learners */ @RequestMapping("/discloseGroupsAnswers") - public String discloseGroupsAnswers(HttpServletRequest request, HttpServletResponse response) { + public void discloseGroupsAnswers(HttpServletRequest request, HttpServletResponse response) { Long questionUid = WebUtil.readLongParam(request, "questionUid"); Long toolContentId = WebUtil.readLongParam(request, AssessmentConstants.PARAM_TOOL_CONTENT_ID); @@ -638,8 +636,6 @@ log.debug("Disclosed other groups' answers for Assessment tool content ID " + toolContentId + " and question ID " + questionUid); } - - return null; } }