Index: lams_flash/src/central/flash/org/lamsfoundation/lams/learner/ls/LessonController.as =================================================================== diff -u -r79ecb1908592f3debc72d036a491420ef5a853b3 -r9198e1dd59fcbc6d7a3332d29dce42800af2e97b --- lams_flash/src/central/flash/org/lamsfoundation/lams/learner/ls/LessonController.as (.../LessonController.as) (revision 79ecb1908592f3debc72d036a491420ef5a853b3) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/learner/ls/LessonController.as (.../LessonController.as) (revision 9198e1dd59fcbc6d7a3332d29dce42800af2e97b) @@ -85,7 +85,7 @@ Debugger.log('activityDoubleClick CanvasActivity:'+ca.activity.activityID + ' status: ' + ca.activityStatus + 'type id: ' + ca.activity.activityTypeID,Debugger.GEN,'activityDoubleClick','LessonController'); - if(ca.activity.activityTypeID == Activity.TOOL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE || ca.activity.isGroupActivity()){ + if(ca.activity.activityTypeID == Activity.TOOL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE || ca.activity.isGroupActivity() || ca.activity.isBranchingActivity() || ca.activity.isSequenceActivity()) { if(ca.activityStatus != undefined){ var URLToSend:String = 'learning/learner.do?method=forwardToLearnerActivityURL&activityID='+ca.activity.activityID+'&userID='+_root.userID+'&lessonID='+_root.lessonID; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/learner/ls/LessonModel.as =================================================================== diff -u -r691459c3a8be6d76fa38516c01f9bb1e0add7e86 -r9198e1dd59fcbc6d7a3332d29dce42800af2e97b --- lams_flash/src/central/flash/org/lamsfoundation/lams/learner/ls/LessonModel.as (.../LessonModel.as) (revision 691459c3a8be6d76fa38516c01f9bb1e0add7e86) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/learner/ls/LessonModel.as (.../LessonModel.as) (revision 9198e1dd59fcbc6d7a3332d29dce42800af2e97b) @@ -69,6 +69,7 @@ private var _currentActivityOpen:Object; private var _active:Boolean; + private var _activeSeq:Array; /** * Constructor. @@ -82,6 +83,8 @@ ddmActivity_keys = new Array(); ddmTransition_keys = new Array(); + _activeSeq = new Array(); + _activitiesDisplayed = new Hashtable("_activitiesDisplayed"); } @@ -307,10 +310,13 @@ return _active; } - private function orderDesign(activity:Activity, order:Array):Boolean{ + private function orderDesign(activity:Activity, order:Array, backtrack:Boolean):Boolean{ Debugger.log("order design activity: " + activity.title, Debugger.CRITICAL, "orderDesign", "LessonModel"); + if(backtrack == null || backtrack == undefined) + backtrack = false; - order.push(activity); + if(backtrack) order.pop(); + else order.push(activity); if(activity.isBranchingActivity()) { Debugger.log("branching activity found: " + activity.activityUIID, Debugger.CRITICAL, "orderDesign", "LessonModel"); @@ -319,31 +325,71 @@ Debugger.log("seq children length: " + children.length, Debugger.CRITICAL, "orderDesign", "LessonModel"); for(var i=0; i=0; j--) { + if(!orderDesignChildren(children, j, order, true)) return false; + } + + _activeSeq[children[i].parentUIID] = Activity(children[i]); + + if(!orderDesign(firstActivitySeq, order, backtrack)) return false; + broadcastViewUpdate("REMOVE_ACTIVITY_ALL"); + } + + if(_activeSeq[children[i].parentUIID] == Activity(children[i])) { + if(!orderDesign(firstActivitySeq, order, backtrack)) return false; + if(children[i].stopAfterActivity && !backtrack) return false; + } + + } + + } + + return true; + } + private function setDesignOrder():Array { ddmActivity_keys = learningDesignModel.activities.keys(); ddmTransition_keys = learningDesignModel.transitions.keys(); Index: lams_learning/web/lams_learner.swf =================================================================== diff -u -r9aab591f71aa913ad9b848d8cd406728c171470b -r9198e1dd59fcbc6d7a3332d29dce42800af2e97b Binary files differ