Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/CompleteItemServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/CompleteItemServlet.java,v diff -u -r1.2 -r1.3 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/CompleteItemServlet.java 2 Jul 2009 09:59:57 -0000 1.2 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/servlet/CompleteItemServlet.java 2 Jun 2014 10:27:11 -0000 1.3 @@ -79,48 +79,29 @@ * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - String mode = request.getParameter(AttributeNames.ATTR_MODE); - String sessionMapID = request.getParameter(ResourceConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - - Long resourceItemUid = new Long(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); - - HttpSession ss = SessionManager.getSession(); - - // get back login user DTO - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - - Long sessionId = (Long) sessionMap.get(ResourceConstants.ATTR_TOOL_SESSION_ID); - service.setItemComplete(resourceItemUid, new Long(user.getUserID().intValue()), sessionId); - - // set resource item complete tag - SortedSet resourceItemList = getResourceItemList(sessionMap); - for (ResourceItem item : resourceItemList) { - if (item.getUid().equals(resourceItemUid)) { - item.setComplete(true); - break; - } - } - - ResourceUser rUser = service.getUserByIDAndSession(new Long(user.getUserID()), sessionId); - - response.setContentType("text/javascript"); - PrintWriter out = response.getWriter(); - - if(!rUser.isSessionFinished()) { - out.println("window.parent.opener.checkNew(false);"); - out.println("window.parent.opener=null;"); - out.println("window.parent.close();"); - } else { - out.println("window.parent.opener.checkNew(true);"); - out.println("window.parent.opener=null;"); - out.println("window.parent.close();"); - } - - out.println(); - out.flush(); - out.close(); + throws ServletException, IOException { + String mode = request.getParameter(AttributeNames.ATTR_MODE); + String sessionMapID = request.getParameter(ResourceConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + + Long resourceItemUid = new Long(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); + + HttpSession ss = SessionManager.getSession(); + + // get back login user DTO + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + + Long sessionId = (Long) sessionMap.get(ResourceConstants.ATTR_TOOL_SESSION_ID); + service.setItemComplete(resourceItemUid, new Long(user.getUserID().intValue()), sessionId); + + // set resource item complete tag + SortedSet resourceItemList = getResourceItemList(sessionMap); + for (ResourceItem item : resourceItemList) { + if (item.getUid().equals(resourceItemUid)) { + item.setComplete(true); + break; + } + } } /** Index: lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp,v diff -u -r1.27 -r1.28 --- lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp 8 Apr 2014 00:07:25 -0000 1.27 +++ lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp 2 Jun 2014 10:27:11 -0000 1.28 @@ -55,7 +55,7 @@ var url="?sessionMapID=${sessionMapID}&mode=${mode}&itemUid=${param.itemUid}&reqID="+reqIDVar.getTime(); jQuery.ajax({ type: 'GET', - dateType: 'script', + dataType: 'script', url: url, timeout: 5000, @@ -66,12 +66,19 @@ jQuery("input#FinishInstruction").addClass("disabled"); }, - error: function() { - alert('server timeout'); + error: function(jqXHR, textStatus, errorThrown) { + alert('Error while marking item as complete.\nStatus: ' + textStatus + '\nError: ' + errorThrown); }, - success: function(data) { - eval(data); + success: function() { + var winParent = window.parent; + if (!winParent.opener.checkNew) { + // there can be an extra iframe in the hierarchy + winParent = winParent.parent; + } + winParent.opener.checkNew(); + winParent.opener=null; + winParent.close(); }, complete: function() { Index: lams_tool_larsrc/web/pages/itemreview/mobile/instructionsnav.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/itemreview/mobile/instructionsnav.jsp,v diff -u -r1.4 -r1.5 --- lams_tool_larsrc/web/pages/itemreview/mobile/instructionsnav.jsp 8 Apr 2014 00:07:25 -0000 1.4 +++ lams_tool_larsrc/web/pages/itemreview/mobile/instructionsnav.jsp 2 Jun 2014 10:27:11 -0000 1.5 @@ -58,7 +58,7 @@ var url="?sessionMapID=${sessionMapID}&mode=${mode}&itemUid=${param.itemUid}&reqID="+reqIDVar.getTime(); jQuery.ajax({ type: 'GET', - dateType: 'script', + dataType: 'script', url: url, timeout: 5000, @@ -69,12 +69,19 @@ jQuery("input#FinishInstruction").addClass("disabled"); }, - error: function() { - alert('server timeout'); + error: function(jqXHR, textStatus, errorThrown) { + alert('Error while marking item as complete.\nStatus: ' + textStatus + '\nError: ' + errorThrown); }, - success: function(data) { - eval(data); + success: function() { + var winParent = window.parent; + if (!winParent.opener.checkNew) { + // there can be an extra iframe in the hierarchy + winParent = winParent.parent; + } + winParent.opener.checkNew(); + winParent.opener=null; + winParent.close(); }, complete: function() { Index: lams_tool_larsrc/web/pages/learning/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/learning/learning.jsp,v diff -u -r1.52 -r1.53 --- lams_tool_larsrc/web/pages/learning/learning.jsp 3 Apr 2014 20:19:17 -0000 1.52 +++ lams_tool_larsrc/web/pages/learning/learning.jsp 2 Jun 2014 10:27:11 -0000 1.53 @@ -36,7 +36,7 @@ showMessage(gurl); return false; } - function checkNew(checkFinishedLock){ + function checkNew(){ var reqIDVar = new Date(); document.location.href = "?sessionMapID=${sessionMapID}&mode=${mode}&toolSessionID=${toolSessionID}&reqID="+reqIDVar.getTime(); Index: lams_tool_larsrc/web/pages/learning/mobile/learning.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/learning/mobile/learning.jsp,v diff -u -r1.3 -r1.4 --- lams_tool_larsrc/web/pages/learning/mobile/learning.jsp 3 Apr 2014 20:19:17 -0000 1.3 +++ lams_tool_larsrc/web/pages/learning/mobile/learning.jsp 2 Jun 2014 10:27:11 -0000 1.4 @@ -43,7 +43,7 @@ } }); - function checkNew(checkFinishedLock){ + function checkNew(){ var reqIDVar = new Date(); document.location.href = "?sessionMapID=${sessionMapID}&mode=${mode}&toolSessionID=${toolSessionID}&reqID="+reqIDVar.getTime();