Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/ChooseActivityAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/ChooseActivityAction.java,v diff -u -r1.11 -r1.12 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/ChooseActivityAction.java 17 Sep 2006 06:17:57 -0000 1.11 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/ChooseActivityAction.java 24 Oct 2006 04:40:05 -0000 1.12 @@ -33,6 +33,7 @@ import org.lamsfoundation.lams.learning.service.ICoreLearnerService; import org.lamsfoundation.lams.learning.web.util.ActivityMapping; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; +import org.lamsfoundation.lams.learning.web.form.ActivityForm; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; @@ -87,8 +88,16 @@ // need to do the choose first as the chooseActivity changes the progress details setupProgressString(actionForm, request); - - ActionForward forward = actionMappings.getActivityForward(activity, progress, true); + + ActivityForm activityForm = (ActivityForm) actionForm; + ActionForward forward = null; + + if(activityForm.getInFrame()) + // escape child frame and open url in parent frame + forward = actionMappings.getRedirectForward(progress, true); + else + forward = actionMappings.getActivityForward(activity, progress, true); + return forward; } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java,v diff -u -r1.13 -r1.14 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java 17 Sep 2006 06:17:57 -0000 1.13 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java 24 Oct 2006 04:40:05 -0000 1.14 @@ -118,6 +118,11 @@ setupProgressString(form, request); String forward = "displayOptions"; + + // set frame flag if last run activity was Parallel Activity + if(learnerProgress.getCurrentActivity().isParallelActivity()) + form.setInFrame(true); + return mapping.findForward(forward); } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/ActivityForm.java =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/ActivityForm.java,v diff -u -r1.9 -r1.10 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/ActivityForm.java 17 Sep 2006 06:17:58 -0000 1.9 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/ActivityForm.java 24 Oct 2006 04:40:05 -0000 1.10 @@ -56,6 +56,8 @@ /** Lesson to which this activity belongs. Id comes from the learner progress */ private Long lessonID; + private boolean inFrame; + /** * Method reset * @param mapping @@ -100,4 +102,12 @@ public void setLessonID(Long lessonID) { this.lessonID = lessonID; } + + public boolean getInFrame() { + return inFrame; + } + + public void setInFrame(boolean inFrame) { + this.inFrame = inFrame; + } } \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java =================================================================== RCS file: /usr/local/cvsroot/lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java,v diff -u -r1.28 -r1.29 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java 17 Sep 2006 06:17:57 -0000 1.28 +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java 24 Oct 2006 04:40:06 -0000 1.29 @@ -150,12 +150,7 @@ { // if previous activity was a parallel activity then we need to // clear frames. - String strutsAction = "/requestDisplay.do"; - String activityURL = this.getActivityURL(progress.getNextActivity()); - strutsAction += "?url=" + activityURL; - actionForward = strutsActionToForward(strutsAction, - null, - redirect); + this.getRedirectForward(progress, redirect); } else { @@ -174,6 +169,20 @@ } return actionForward; } + + public ActionForward getRedirectForward(LearnerProgress progress, boolean redirect) { + ActionForward actionForward = null; + + String strutsAction = "/requestDisplay.do"; + String activityURL = this.getActivityURL(progress.getNextActivity()); + strutsAction += "?url=" + activityURL; + + actionForward = strutsActionToForward(strutsAction, + null, + redirect); + return actionForward; + + } /** * Generates an ActivityURL for an Activity using it's progress. The URL is for Index: lams_learning/web/optionsActivity.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_learning/web/optionsActivity.jsp,v diff -u -r1.19 -r1.20 --- lams_learning/web/optionsActivity.jsp 29 Sep 2006 01:15:33 -0000 1.19 +++ lams_learning/web/optionsActivity.jsp 24 Oct 2006 04:40:06 -0000 1.20 @@ -57,7 +57,8 @@ - + " /> +