Index: lams_central/src/flash/org/lamsfoundation/lams/learner/ls/Lesson.as =================================================================== diff -u -r735adeb5d2ea7849b86d4991480630c4613fadec -r49e27afd23a5b873d800bb0bd341cc0a400f47d8 --- lams_central/src/flash/org/lamsfoundation/lams/learner/ls/Lesson.as (.../Lesson.as) (revision 735adeb5d2ea7849b86d4991480630c4613fadec) +++ lams_central/src/flash/org/lamsfoundation/lams/learner/ls/Lesson.as (.../Lesson.as) (revision 49e27afd23a5b873d800bb0bd341cc0a400f47d8) @@ -147,11 +147,21 @@ } public function exitLesson():Boolean { - getURL('javascript:top.window.close();'); + var callback:Function = Proxy.create(this, exitConfirm); + // call action + var lessonId:Number = lessonModel.ID; + + // do request + Application.getInstance().getComms().getRequest('learning/learner.do?method=exitLesson&lessonID='+String(lessonId), callback, false); + return true; } + public function exitConfirm(pkt:Object){ + if(pkt) { getURL('javascript:top.window.close();'); } + } + public function exportLesson(){ // do export call var exp_url:String = _root.serverURL + 'learning/exportWaitingPage.jsp?mode=learner&lessonID='+String(lessonModel.ID); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -r66c453cb9ccc5964de6f0919b493345e29c37229 -r49e27afd23a5b873d800bb0bd341cc0a400f47d8 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 66c453cb9ccc5964de6f0919b493345e29c37229) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 49e27afd23a5b873d800bb0bd341cc0a400f47d8) @@ -434,14 +434,14 @@ * Exit a lesson. * @see org.lamsfoundation.lams.learning.service.ICoreLearnerService#exitLesson(org.lamsfoundation.lams.lesson.LearnerProgress) */ - public void exitLesson(Long progressId) + public void exitLesson(Long lessonId) { - LearnerProgress progress = learnerProgressDAO.getLearnerProgress(progressId); + LearnerProgress progress = learnerProgressDAO.getLearnerProgress(lessonId); if ( progress != null ) { progress.setRestarting(true); learnerProgressDAO.updateLearnerProgress(progress); } else { - String error = "Learner Progress "+progressId+" does not exist. Cannot exit lesson successfully."; + String error = "Learner Progress "+lessonId+" does not exist. Cannot exit lesson successfully."; log.error(error); throw new LearnerServiceException(error); } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java =================================================================== diff -u -r97049873e9f5a71cdb4e9286f82508040b597347 -r49e27afd23a5b873d800bb0bd341cc0a400f47d8 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 97049873e9f5a71cdb4e9286f82508040b597347) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 49e27afd23a5b873d800bb0bd341cc0a400f47d8) @@ -223,15 +223,15 @@ FlashMessage message = null; try { - LearnerProgress learnerProgress = LearningWebUtil.getLearnerProgress(request,learnerService); - + Long lessonID = WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID); + if(log.isDebugEnabled()) - log.debug("Exiting lesson, lesson id is: "+learnerProgress.getLesson().getLessonId()); + log.debug("Exiting lesson, lesson id is: "+lessonID); - learnerService.exitLesson(learnerProgress.getLearnerProgressId()); + learnerService.exitLesson(lessonID); //send acknowledgment to flash as it is triggered by flash - message = new FlashMessage("exitLesson",true); + message = new FlashMessage("exitLesson", true); } catch (Exception e ) { message = handleException(e, "exitLesson", learnerService); Index: lams_learning/web/lams_learner.swf =================================================================== diff -u -rcbc0b166794e3dd8ed46b4cbb2ce35dca20d5046 -r49e27afd23a5b873d800bb0bd341cc0a400f47d8 Binary files differ