Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as =================================================================== diff -u -r245728d04c9feab340685e9d94b5623e0f9a1d74 -rfdfbd30f964c4c55025249ddf7d0277b66af3806 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision 245728d04c9feab340685e9d94b5623e0f9a1d74) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision fdfbd30f964c4c55025249ddf7d0277b66af3806) @@ -297,12 +297,12 @@ // We are unable to display all the users across the Activity's panel. Debugger.log("learner_X: " + learner_X + " ref: " + learnerContainer + " xcoord: " + xCoord, Debugger.CRITICAL, "drawLearners", "CanvasActivity"); if(learner_X > (xCoord + 112)) { - learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), learnerContainer.getNextHighestDepth(),{_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:true }); + learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), learnerContainer.getNextHighestDepth(), {_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:true, _clone:false }); return; } // attach icon - learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), learnerContainer.getNextHighestDepth(),{_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:false }); + learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), learnerContainer.getNextHighestDepth(), {_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:false, _clone:false }); // space icons learner_X += 10; @@ -531,9 +531,6 @@ if(branchView != null) { branchView._x = _x + getVisibleWidth()/2; branchView._y = _y + getVisibleHeight()/2; - - //branchView.setCurrentPosition(_x, _y); - } } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/LearnerIcon.as =================================================================== diff -u -r4f3911de7b458bcf548489361221b859f4d5cfa5 -rfdfbd30f964c4c55025249ddf7d0277b66af3806 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/LearnerIcon.as (.../LearnerIcon.as) (revision 4f3911de7b458bcf548489361221b859f4d5cfa5) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/LearnerIcon.as (.../LearnerIcon.as) (revision fdfbd30f964c4c55025249ddf7d0277b66af3806) @@ -38,8 +38,7 @@ /** * CanvasActivity - */ -class org.lamsfoundation.lams.monitoring.mv.LearnerIcon extends MovieClip { -//class org.lamsfoundation.lams.authoring.cv.CanvasActivity extends MovieClip{ +class org.lamsfoundation.lams.monitoring.mv.LearnerIcon extends MovieClip { public static var ICON_WIDTH:Number = 8; public static var ICON_HEIGHT:Number = 20; @@ -54,7 +53,8 @@ private var learner:Progress; private var _isSelected:Boolean; - private var app:Application; + private var app:ApplicationParent; + //locals private var toolTip:MovieClip; private var learnerOffset_X:Number @@ -69,12 +69,15 @@ private var smallCross:MovieClip; private var _hasPlus:Boolean; + private var _clone_mc:MovieClip; + private var _clone:Boolean; + function LearnerIcon(){ //Debugger.log("_activity:"+_activity.title,4,'Constructor','CanvasActivity'); _tm = ThemeManager.getInstance(); //Get reference to application and design data model - app = Application.getInstance(); + app = ApplicationParent.getInstance(); //let it wait one frame to set up the components. //this has to be set b4 the do later :) //_base_mc = this; @@ -93,19 +96,23 @@ _monitorController = initObj._monitorController; _activity = initObj.activity; learner = initObj.learner; - learnerOffset_X = initObj._x - learnerOffset_Y = initObj._y + learnerOffset_X = initObj._x; + learnerOffset_Y = initObj._y; _hasPlus = initObj._hasPlus; + _clone = initObj._clone; } - learnerOffset_X = _x - learnerOffset_Y = _y + + learnerOffset_X = _x; + learnerOffset_Y = _y; + Debugger.log('Learner x pos and y pos : '+learnerOffset_X+ " and "+learnerOffset_Y ,4,'draw','LearnerIcon'); showAssets(false); //Click, Rollover and rollout Events for Learner Icon; click_mc.onRollOver = Proxy.create (this, localOnRollOver); click_mc.onRollOut = Proxy.create (this, localOnRollOut); + if (_activity != undefined){ click_mc.onPress = Proxy.create (this, localOnPress); click_mc.onRelease = Proxy.create (this, localOnRelease); @@ -149,7 +156,6 @@ var now:Number = new Date().getTime(); if((now - _dcStartTime) <= Config.DOUBLE_CLICK_DELAY){ - //trace("Module passed is: "+_module) if (app.controlKeyPressed != "transition"){ _doubleClicking = true; Debugger.log('DoubleClicking: '+this.activity.activityID,Debugger.CRITICAL,'onPress','CanvasActivity For Monitoring'); @@ -158,12 +164,13 @@ } - - }else{ - + } else { + _doubleClicking = false; Debugger.log('SingleClicking:+'+this,Debugger.GEN,'onPress','CanvasActivity for monitoring'); - _monitorController.activityClick(this, "LearnerIcon"); + _clone_mc = ApplicationParent.root.attachMovie("learnerIcon", _name + "_clone", DepthManager.kTop, {_activity:_activity, learner:learner, _monitorController:_monitorController, _x:_x + org.lamsfoundation.lams.monitoring.Application.MONITOR_X, _y:_y + org.lamsfoundation.lams.monitoring.Application.MONITOR_Y, _hasPlus:_hasPlus, _clone: true }); + + _monitorController.activityClick(_clone_mc, "LearnerIcon"); } @@ -172,26 +179,26 @@ } private function localOnRollOver():Void{ - trace("I am: "+learner.getUserName()+" with learner ID: "+learner.getLearnerId()) toolTip._visible = true; } private function localOnRollOut():Void{ - trace("I am: "+learner.getUserName()) toolTip._visible = false; } private function localOnRelease():Void{ if(!_doubleClicking){ Debugger.log('Releasing:'+this,Debugger.GEN,'onRelease','CanvasActivity'); - _monitorController.activityRelease(this, "LearnerIcon"); + _monitorController.activityRelease(_clone_mc, "LearnerIcon"); + _clone_mc.removeMovieClip(); } } private function localOnReleaseOutside():Void{ Debugger.log('ReleasingOutside:'+this,Debugger.GEN,'onReleaseOutside','CanvasActivity'); - _monitorController.activityReleaseOutside(this); + _monitorController.activityRelease(_clone_mc, "LearnerIcon"); + _clone_mc.removeMovieClip(); } @@ -202,6 +209,7 @@ public function get yCoord():Number{ return learnerOffset_Y; } + public function get Learner():Progress{ return getLearner(); } @@ -237,6 +245,7 @@ public function setActivity(a:Activity){ _activity = a; } + /** * Get the CSSStyleDeclaration objects for each component and applies them * directly to the instanced Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as =================================================================== diff -u -r245728d04c9feab340685e9d94b5623e0f9a1d74 -rfdfbd30f964c4c55025249ddf7d0277b66af3806 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision 245728d04c9feab340685e9d94b5623e0f9a1d74) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision fdfbd30f964c4c55025249ddf7d0277b66af3806) @@ -67,6 +67,7 @@ public function activityClick(act:Object, forObj:String):Void{ if (forObj == "LearnerIcon"){ _monitorModel.isDragging = true; + act.startDrag(false); Debugger.log('activityClick CanvasActivity:'+act.Learner.getUserName(),Debugger.GEN,'activityClick','MonitorController'); @@ -220,26 +221,33 @@ cActivity = matchChildActivity(cActivity.children, dropTarget); hasHit = (cActivity == dropTarget) ? checkHit(cActivity, act, indexArray) : hasHit; - } - + } + } if (act.hitTest(_monitorModel.endGate)){ _monitorModel.endGate.doorClosed._visible = false; _monitorModel.endGate.doorOpen._visible = true; + var URLToSend:String = _root.monitoringURL+"forceComplete&lessonID="+_root.lessonID+"&learnerID="+act.Learner.getLearnerId()+"&activityID=null"; var ref = this; var fnOk:Function = Proxy.create(ref,reloadProgress, ref, URLToSend); var fnCancel:Function = Proxy.create(ref,activitySnapBack, act); + LFMessage.showMessageConfirm(Dictionary.getValue('al_confirm_forcecomplete_tofinish',[act.Learner.getFullName(), indexArray[i].activity.title]), fnOk,fnCancel); hasHit = true; } + Debugger.log("droptarget: " + eval(act._droptarget), Debugger.CRITICAL, "activityRelease", "MonitoringController"); + if (!hasHit){ - activitySnapBack(act) + activitySnapBack(act); + + if(eval(act._droptarget)._parent instanceof LearnerIcon) return; + var msg:String = Dictionary.getValue('al_error_forcecomplete_notarget',[act.Learner.getFullName()]) ; LFMessage.showMessageAlert(msg); - } + } } @@ -277,7 +285,7 @@ var URLToSend:String; setBusy() - if (forTabView == "MonitorTabView"){ + if (forTabView == "MonitorTabView"){ URLToSend = _root.serverURL+_root.monitoringURL+'getActivityMonitorURL&activityID='+ca.activity.activityID+'&lessonID='+_root.lessonID; URLToSend += '&contentFolderID='+MonitorModel(getModel()).getSequence().contentFolderID }else { Index: lams_monitoring/web/lams_monitoring.swf =================================================================== diff -u -r245728d04c9feab340685e9d94b5623e0f9a1d74 -rfdfbd30f964c4c55025249ddf7d0277b66af3806 Binary files differ Index: lams_monitoring/web/lams_monitoring_library.swf =================================================================== diff -u -r245728d04c9feab340685e9d94b5623e0f9a1d74 -rfdfbd30f964c4c55025249ddf7d0277b66af3806 Binary files differ