Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/LearningAction.java =================================================================== diff -u -rc260f6f3f855894e54d3725095e56d39a139d893 -rdbc01e6417b9ebbe49741ddd0463c571cc6e3932 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/LearningAction.java (.../LearningAction.java) (revision c260f6f3f855894e54d3725095e56d39a139d893) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/LearningAction.java (.../LearningAction.java) (revision dbc01e6417b9ebbe49741ddd0463c571cc6e3932) @@ -98,6 +98,9 @@ if (param.equals("edit")) { return edit(mapping, form, request, response); } + if (param.equals("submitComments")) { + return submitComments(mapping, form, request, response); + } if (param.equals("submitHedging")) { return submitRankingHedging(mapping, form, request, response); } @@ -592,13 +595,67 @@ return startRating(mapping, form, request, response, service, sessionMap, toolSessionId, user, mode, criteria, next); } + /** + * Submit any comments not already submitted and go back to the main learning screen. + */ /** * Submit the ranking / hedging data and go back to the main learning screen. * * @throws IOException * @throws ServletException * */ + public ActionForward submitComments(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws IOException, ServletException { + + IPeerreviewService service = getPeerreviewService(); + + String sessionMapID = request.getParameter(PeerreviewConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute( + sessionMapID); + request.setAttribute(PeerreviewConstants.ATTR_SESSION_MAP_ID, sessionMapID); + + ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); + PeerreviewUser user = (PeerreviewUser) sessionMap.get(PeerreviewConstants.ATTR_USER); + Long toolSessionId = (Long) sessionMap.get(PeerreviewConstants.PARAM_TOOL_SESSION_ID); + + Peerreview peerreview = service.getPeerreviewBySessionId(toolSessionId); + + Long criteriaId = WebUtil.readLongParam(request, "criteriaId"); + RatingCriteria criteria = service.getCriteriaByCriteriaId(criteriaId); + + if ( ! ( peerreview.getLockWhenFinished() && user.isSessionFinished() ) ) { + + Integer userId = user.getUserId().intValue(); + for (String key : request.getParameterMap().keySet()) { + if (key.startsWith("comment-textarea-")) { + String itemIdString = key.substring(17); + Long itemId = new Long(itemIdString); + String comment = request.getParameter(key); + if ( comment != null && comment.length() > 0 ) { + // save the comment to the database. + service.commentItem(criteria, userId, itemId, comment); + } + } + } + } + + request.setAttribute(PeerreviewConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + request.setAttribute(AttributeNames.ATTR_MODE, mode); + request.setAttribute(PeerreviewConstants.PARAM_TOOL_SESSION_ID, toolSessionId); + + Boolean next = WebUtil.readBooleanParam(request, "next"); + + // goto standard screen + return startRating(mapping, form, request, response, service, sessionMap, toolSessionId, user, mode, criteria, next); + } + /** + * Submit the ranking / hedging data and go back to the main learning screen. + * + * @throws IOException + * @throws ServletException + * + */ public ActionForward submitRankingHedging(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { Index: lams_tool_preview/web/WEB-INF/struts-config.xml =================================================================== diff -u -r0a6765ac7eb73c6b99c343a021877c48236241b8 -rdbc01e6417b9ebbe49741ddd0463c571cc6e3932 --- lams_tool_preview/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 0a6765ac7eb73c6b99c343a021877c48236241b8) +++ lams_tool_preview/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision dbc01e6417b9ebbe49741ddd0463c571cc6e3932) @@ -108,6 +108,13 @@ parameter="edit" > + + + + + Index: lams_tool_preview/web/pages/learning/comment.jsp =================================================================== diff -u -rd2f1cafab9126e3848663764c082b76ccf2de0c5 -rdbc01e6417b9ebbe49741ddd0463c571cc6e3932 --- lams_tool_preview/web/pages/learning/comment.jsp (.../comment.jsp) (revision d2f1cafab9126e3848663764c082b76ccf2de0c5) +++ lams_tool_preview/web/pages/learning/comment.jsp (.../comment.jsp) (revision dbc01e6417b9ebbe49741ddd0463c571cc6e3932) @@ -94,7 +94,7 @@ rows += '
'; rows += ''; rows += '
'; - rows += ''; + rows += ''; rows += '
'; rows += '
'; rows += '
'; @@ -123,22 +123,37 @@ }); }); - function submitEntry(next) { - // data saved by the tick boxes so don't use next button to submit - nextprev(next); + + function submitEntry(next){ + // ratings already saved, just save any unsaved comments. + hideButtons(); + $("#next").val(next); + $('textarea').each(function() { + if (this.value==this.defaultValue) + this.value=""; + }); + $("#editForm").submit(); } + - - - - - - - - - +
" method="get" id="editForm"> + + + + + + + + + + + + + + +
+
- Index: lams_tool_preview/web/pages/learning/star.jsp =================================================================== diff -u -rc260f6f3f855894e54d3725095e56d39a139d893 -rdbc01e6417b9ebbe49741ddd0463c571cc6e3932 --- lams_tool_preview/web/pages/learning/star.jsp (.../star.jsp) (revision c260f6f3f855894e54d3725095e56d39a139d893) +++ lams_tool_preview/web/pages/learning/star.jsp (.../star.jsp) (revision dbc01e6417b9ebbe49741ddd0463c571cc6e3932) @@ -136,11 +136,14 @@ //show comments textarea and a submit button } else if (!isDisabled) { - rows += '
'; + rows += '