Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as,v diff -u -r1.14 -r1.15 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as 11 Jan 2008 07:32:14 -0000 1.14 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as 25 Jan 2008 03:53:15 -0000 1.15 @@ -149,13 +149,12 @@ * Check the force complete order for validity * * @usage - * @param indexArray Top-level canvas member activities on the canvas * @param index index position * @param isChild * @return */ - private function checkHit(cActivity:Object, learnerObj:Object, indexArray:Array):Boolean { + private function checkHit(cActivity:Object, learnerObj:Object):Boolean { var actUIIDToCompare = learnerObj.activity.activityUIID; var parentUIIDToCompare = learnerObj.activity.parentUIID; @@ -167,7 +166,7 @@ if(actUIIDToCompare == cActivity.activity.activityUIID) activitySnapBack(learnerObj); else { - forceCompleteTransfer(learnerObj, cActivity, indexArray); + forceCompleteTransfer(learnerObj, cActivity); } } else { @@ -185,20 +184,25 @@ * @usage * @param learnerObj * @param cActivity - * @param indexArray * @return */ - - private function forceCompleteTransfer(learnerObj:Object, cActivity:Object, indexArray:Array):Void { - var activityUIIDToCheck:Number = (cActivity.activity.parentUIID != null) ? cActivity.activity.parentUIID : cActivity.activity.activityUIID; - var prevActivityID:Number = indexArray[checkLearnerCurrentActivity(indexArray,activityUIIDToCheck) - 1].activity.activityID; - var URLToSend:String = _root.monitoringURL+"forceComplete&lessonID="+_root.lessonID+"&learnerID="+learnerObj.Learner.getLearnerId()+"&activityID="+prevActivityID; - - var fnOk:Function = Proxy.create(this, this.reloadProgress, this, URLToSend); - var fnCancel:Function = Proxy.create(this, this.activitySnapBack, learnerObj); - - LFMessage.showMessageConfirm(Dictionary.getValue('al_confirm_forcecomplete_toactivity',[learnerObj.Learner.getFullName(), cActivity.activity.title]), fnOk,fnCancel); - + private function forceCompleteTransfer(learnerObj:Object, cActivity:Object):Void { + var learnerActivityID:Number = learnerObj.Learner.getCurrentActivityId(); + var activityToCheck = cActivity.activity; // initially the Activity where the learner icon has been dropped + var targetIsAccessible:Boolean = _monitorModel.getIsValidDropTarget(learnerActivityID, activityToCheck); + + if (targetIsAccessible) { + var transObj:Object = _monitorModel.getMonitor().ddm.getTransitionsForActivityUIID(cActivity.activity.activityUIID); + var previousAct = _monitorModel.getMonitor().ddm.getActivityByUIID(transObj.into.fromUIID); + var URLToSend:String = _root.monitoringURL+"forceComplete&lessonID="+_root.lessonID+"&learnerID="+learnerObj.Learner.getLearnerId()+"&activityID="+previousAct.activityID; + var fnOk:Function = Proxy.create(this, this.reloadProgress, this, URLToSend); + var fnCancel:Function = Proxy.create(this, this.activitySnapBack, learnerObj); + + _monitorModel.inBranchView = true; + + LFMessage.showMessageConfirm(Dictionary.getValue('al_confirm_forcecomplete_toactivity',[learnerObj.Learner.getFullName(), cActivity.activity.title]), fnOk,fnCancel); + } else + LFMessage.showMessageAlert(learnerObj.Learner.getFullName() +" cannot be dropped at the chosen location.", null, null); } /** @@ -209,28 +213,10 @@ * @param activityID * @return */ - private function checkifActivityNotComplete(learnerProgress:Progress, activityID:Number):Boolean { return (Progress.compareProgressData(learnerProgress, activityID) != "completed_mc") ? true : false; } - /** - * Return activity index - * - * @usage - * @param arr - * @param actUIID - * @return index - */ - - private function checkLearnerCurrentActivity(arr:Array, actUIID:Number):Number{ - for (var i=0; i