Index: lams_tool_scratchie/conf/xdoclet/struts-actions.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/conf/xdoclet/struts-actions.xml,v diff -u -r1.14 -r1.15 --- lams_tool_scratchie/conf/xdoclet/struts-actions.xml 8 Oct 2013 11:46:09 -0000 1.14 +++ lams_tool_scratchie/conf/xdoclet/struts-actions.xml 6 Dec 2013 14:49:49 -0000 1.15 @@ -199,10 +199,14 @@ parameter="refreshQuestionList" > - + parameter="isAnswerCorrect" > + + Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml,v diff -u -r1.9 -r1.10 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml 3 Dec 2013 21:02:51 -0000 1.9 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml 6 Dec 2013 14:49:50 -0000 1.10 @@ -121,11 +121,13 @@ PROPAGATION_SUPPORTS,readOnly PROPAGATION_SUPPORTS,readOnly + PROPAGATION_REQUIRED,readOnly PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql,v diff -u -r1.1 -r1.2 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql 17 Sep 2013 04:52:28 -0000 1.1 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20130912.sql 6 Dec 2013 14:49:50 -0000 1.2 @@ -3,7 +3,7 @@ ----------------------Put all sql statements below here------------------------- --- LDEV-xxx(LDEV-3110) Ability to modify marks in monitor +-- LKC-28 Ability to modify marks in monitor ALTER TABLE tl_lascrt11_user ADD COLUMN mark INTEGER DEFAULT 0; ----------------------Put all sql statements above here------------------------- Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java,v diff -u -r1.22 -r1.23 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java 3 Dec 2013 21:02:51 -0000 1.22 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java 6 Dec 2013 14:49:50 -0000 1.23 @@ -214,7 +214,7 @@ * Leader has scratched the specified answer. Will store this scratch for all users in his group. It will also * update all the marks. */ - void logAnswerAccess(ScratchieUser leader, Long scratchieItemUid); + void recordItemScratched(ScratchieUser leader, Long scratchieItemUid); void recalculateMarkForSession(ScratchieUser leader, boolean isPropagateToGradebook); Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java,v diff -u -r1.32 -r1.33 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 3 Dec 2013 21:02:51 -0000 1.32 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 6 Dec 2013 14:49:50 -0000 1.33 @@ -454,9 +454,12 @@ } @Override - public void logAnswerAccess(ScratchieUser leader, Long answerUid) { + public void recordItemScratched(ScratchieUser leader, Long answerUid) { ScratchieAnswer answer = this.getScratchieAnswerByUid(answerUid); + if (answer == null) { + return; + } Long sessionId = leader.getSession().getSessionId(); List users = this.getUsersBySession(sessionId); Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java,v diff -u -r1.24 -r1.25 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java 3 Dec 2013 21:02:51 -0000 1.24 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java 6 Dec 2013 14:49:50 -0000 1.25 @@ -91,9 +91,12 @@ if (param.equals("refreshQuestionList")) { return refreshQuestionList(mapping, form, request, response); } - if (param.equals("scratchItem")) { - return scratchItem(mapping, form, request, response); + if (param.equals("isAnswerCorrect")) { + return isAnswerCorrect(mapping, form, request, response); } + if (param.equals("recordItemScratched")) { + return recordItemScratched(mapping, form, request, response); + } if (param.equals("finish")) { return finish(mapping, form, request, response); } @@ -295,19 +298,32 @@ return mapping.findForward(ScratchieConstants.SUCCESS); } + + /** + * Return whether scratchie answer is correct or not + */ + private ActionForward isAnswerCorrect(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws JSONException, IOException { + initializeScratchieService(); + + Long answerUid = NumberUtils.createLong(request.getParameter(ScratchieConstants.PARAM_ANSWER_UID)); + ScratchieAnswer answer = service.getScratchieAnswerByUid(answerUid); + if (answer == null) { + return mapping.findForward(ScratchieConstants.ERROR); + } + + JSONObject JSONObject = new JSONObject(); + JSONObject.put(ScratchieConstants.ATTR_ANSWER_CORRECT, answer.isCorrect()); + response.setContentType("application/x-json;charset=utf-8"); + response.getWriter().print(JSONObject); + return null; + } + /** - * Scratch specified answer. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws JSONException - * @throws IOException + * Record in DB that leader has scratched specified answer. */ - private ActionForward scratchItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, + private ActionForward recordItemScratched(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws JSONException, IOException { initializeScratchieService(); @@ -323,19 +339,9 @@ } Long answerUid = NumberUtils.createLong(request.getParameter(ScratchieConstants.PARAM_ANSWER_UID)); - ScratchieAnswer answer = service.getScratchieAnswerByUid(answerUid); - if (answer == null) { - return mapping.findForward(ScratchieConstants.ERROR); - } - - service.logAnswerAccess(leader, answer.getUid()); - - JSONObject JSONObject = new JSONObject(); - JSONObject.put(ScratchieConstants.ATTR_ANSWER_CORRECT, answer.isCorrect()); - response.setContentType("application/x-json;charset=utf-8"); - response.getWriter().print(JSONObject); + service.recordItemScratched(leader, answerUid); + return null; - } /** Index: lams_tool_scratchie/web/pages/learning/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/web/pages/learning/learning.jsp,v diff -u -r1.13 -r1.14 --- lams_tool_scratchie/web/pages/learning/learning.jsp 8 Oct 2013 11:46:09 -0000 1.13 +++ lams_tool_scratchie/web/pages/learning/learning.jsp 6 Dec 2013 14:49:50 -0000 1.14 @@ -31,9 +31,8 @@ var id = '-' + itemUid + '-' + answerUid; $.ajax({ - async: false, - url: '', - data: 'sessionMapID=${sessionMapID}&answerUid=' + answerUid, + url: '', + data: 'answerUid=' + answerUid, dataType: 'json', type: 'post', success: function (json) { @@ -55,6 +54,13 @@ } } }); + + $.ajax({ + url: '', + data: 'sessionMapID=${sessionMapID}&answerUid=' + answerUid, + dataType: 'json', + type: 'post' + }); } function finish(){