Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java,v diff -u -r1.71 -r1.72 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 26 Sep 2008 00:09:16 -0000 1.71 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 12 Nov 2008 05:21:36 -0000 1.72 @@ -474,7 +474,7 @@ /** * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#finishEditOnFly(java.lang.Long, java.lang.Integer) */ - public String finishEditOnFly(Long learningDesignID, Integer userID) throws IOException { + public String finishEditOnFly(Long learningDesignID, Integer userID, boolean cancelled) throws IOException { FlashMessage flashMessage = null; Lesson lesson = null; @@ -515,7 +515,10 @@ design = removeTempSystemGate(gate, design); /* remove inputted system gate */ } - lessonService.performMarkLessonUncompleted(lesson.getLessonId()); /* the lesson may now have additional activities on the end, so clear any completed flags */ + // LDEV-1899 only mark learners uncompleted if a change was saved + if (!cancelled) { + lessonService.performMarkLessonUncompleted(lesson.getLessonId()); /* the lesson may now have additional activities on the end, so clear any completed flags */ + } initialiseToolActivityForRuntime(design, lesson); learningDesignDAO.insertOrUpdate(design); Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java,v diff -u -r1.27 -r1.28 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 15 Aug 2008 04:28:02 -0000 1.27 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 12 Nov 2008 05:21:36 -0000 1.28 @@ -303,10 +303,11 @@ * * @param learningDesignID The learning_design_id of the design for which editing has finished. * @param userID user_id of the User who has finished editing the design. + * @param cancelled flag specifying whether user cancelled or saved the edit * @return wddx packet. * @throws IOException */ - public String finishEditOnFly(Long learningDesignID, Integer userID) throws IOException; + public String finishEditOnFly(Long learningDesignID, Integer userID, boolean cancelled) throws IOException; /** * Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java,v diff -u -r1.27 -r1.28 --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java 19 Sep 2008 05:54:13 -0000 1.27 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java 12 Nov 2008 05:21:36 -0000 1.28 @@ -143,8 +143,9 @@ IAuthoringService authoringService = getAuthoringService(); try { Long learningDesignID = WebUtil.readLongParam(request,"learningDesignID",false); + boolean cancelled = WebUtil.readBooleanParam(request, "cancelled", false); - wddxPacket = authoringService.finishEditOnFly(learningDesignID, getUserId()); + wddxPacket = authoringService.finishEditOnFly(learningDesignID, getUserId(), cancelled); } catch (Exception e) { wddxPacket = handleException(e, "getLearningDesignDetails", authoringService, true).serializeMessage();