Index: lams_central/src/flash/org/lamsfoundation/lams/wizard/WizardView.as =================================================================== diff -u -rf44b6a75a25937117bdb05ed3923f868ecbeb587 -r61df758c93005d286d8162e5fb9f8249b264b8e8 --- lams_central/src/flash/org/lamsfoundation/lams/wizard/WizardView.as (.../WizardView.as) (revision f44b6a75a25937117bdb05ed3923f868ecbeb587) +++ lams_central/src/flash/org/lamsfoundation/lams/wizard/WizardView.as (.../WizardView.as) (revision 61df758c93005d286d8162e5fb9f8249b264b8e8) @@ -61,8 +61,18 @@ //private var bkg_pnl:MovieClip; private var org_treeview:Tree; //Treeview for navigation through workspace folder structure + + // step 1 UI elements + private var currentPath_lbl:Label; private var location_treeview:Tree; + // step 2 UI elements + private var title_lbl:Label; + private var resourceTitle_txi:TextInput; + private var desc_lbl:Label; + private var resourceDesc_txa:TextArea; + + // step 3 UI elements private var _staffList:Array; private var _learnerList:Array; private var _learner_mc:MovieClip; @@ -72,13 +82,21 @@ private var learner_scp:MovieClip; // learners container private var learner_lbl:Label; - //private var input_txt:TextInput; - private var currentPath_lbl:Label; - private var title_lbl:Label; - private var resourceTitle_txi:TextInput; - private var desc_lbl:Label; - private var resourceDesc_txa:TextArea; + // step 4 UI elements + private var staff_grp_lbl:Label; + private var learner_grp_lbl:Label; + private var staff_grp_txi:TextInput; + private var learner_grp_txi:TextInput; + // step 5 UI elements + private var schedule_cb:CheckBox; + private var start_btn:Button; + private var schedule_time:MovieClip; + private var summery_lbl:Label; + private var summery_scp:MovieClip; + private var _summery_mc:MovieClip; + private var _summeryList:Array; + //Dimensions for resizing private var xOkOffset:Number; private var yOkOffset:Number; @@ -131,6 +149,8 @@ currentPath_lbl.text = ""+Dictionary.getValue('ws_dlg_location_button')+":" + // event listeners + trace('org tree:' + org_treeview); MovieClipUtils.doLater(Proxy.create(this,draw)); @@ -153,6 +173,7 @@ case 'USERS_LOADED' : loadLearners(wm.organisation.getLearners()); loadStaff(wm.organisation.getStaff()); + _wizardController.clearBusy(); break; case 'POSITION' : setPosition(wm); @@ -226,6 +247,9 @@ prev_btn.addEventListener('click',Delegate.create(this, prev)); finish_btn.addEventListener('click',Delegate.create(this, finish)); cancel_btn.addEventListener('click',Delegate.create(this, cancel)); + start_btn.addEventListener('click', Delegate.create(this, start)); + schedule_cb.addEventListener("click", Delegate.create(this, scheduleChange)); + //Set up the treeview setUpTreeview(); //itemSelected(location_treeview.selectedNode, WorkspaceModel(workspaceView.getModel())); @@ -278,12 +302,16 @@ * @usage * @return */ - private function setUpBranchesInit(treeview:Tree, data:XML){ + private function setUpBranchesInit(treeview:Tree, data:XML, hideRoot:Boolean){ Debugger.log('Running...',Debugger.GEN,'setUpBranchesInit','org.lamsfoundation.lams.wizard.WizardView'); //get the 1st child trace(data) - treeview.dataProvider = data; - var fNode = location_treeview.dataProvider.firstChild; + if(hideRoot){ + treeview.dataProvider = data.firstChild; + } else { + treeview.dataProvider = data; + } + var fNode = treeview.dataProvider.firstChild; trace(fNode); setBranches(fNode); treeview.refresh(); @@ -298,7 +326,7 @@ */ private function setUpTreeview(){ - setUpBranchesInit(location_treeview, WorkspaceModel(workspaceView.getModel()).treeDP); + setUpBranchesInit(location_treeview, WorkspaceModel(workspaceView.getModel()).treeDP, false); _workspaceController = _workspaceView.getController(); location_treeview.addEventListener("nodeOpen", Delegate.create(_workspaceController, _workspaceController.onTreeNodeOpen)); location_treeview.addEventListener("nodeClose", Delegate.create(_workspaceController, _workspaceController.onTreeNodeClose)); @@ -315,7 +343,7 @@ //Debugger.log('_workspaceView:'+_workspaceView,Debugger.GEN,'setUpTreeview','org.lamsfoundation.lams.common.ws.WorkspaceDialog'); - setUpBranchesInit(org_treeview, WizardModel(getModel()).treeDP); + setUpBranchesInit(org_treeview, WizardModel(getModel()).treeDP, true); org_treeview.addEventListener("nodeOpen", Delegate.create(_wizardController, _wizardController.onTreeNodeOpen)); org_treeview.addEventListener("nodeClose", Delegate.create(_wizardController, _wizardController.onTreeNodeClose)); @@ -393,7 +421,7 @@ * Called by the NEXT button * */ - private function next(){ + private function next(evt:Object){ trace('NEXT CLICKED'); _global.breakpoint(); var wm:WizardModel = WizardModel(getModel()); @@ -403,25 +431,38 @@ } } - private function prev(){ + private function prev(evt:Object){ trace('PREV CLICKED'); var wm:WizardModel = WizardModel(getModel()); - if(validateStep(wm)){ - wm.stepID--; - trace('new step ID: ' + wm.stepID); - } + wm.stepID--; + trace('new step ID: ' + wm.stepID); } - private function finish(){ + private function finish(evt:Object){ trace('FINISH CLICKED'); } - private function cancel(){ + private function start(evt:Object){ + trace('START CLICKED'); + } + + private function cancel(evt:Object){ // close window trace('CANCEL CLICKED'); //getURL('javascript:window.close()'); } + private function scheduleChange(evt:Object){ + trace(evt.target); + trace('schedule clicked : ' + schedule_cb.selected); + var isSelected:Boolean = schedule_cb.selected; + if(isSelected){ + schedule_time.f_enableTimeSelect(true); + } else { + schedule_time.f_enableTimeSelect(false); + } + } + // SCREEN UPDATES private function updateScreen(cl_step:Number, sh_step:Number){ @@ -442,6 +483,11 @@ case 4: clearStep4(); break; + case 5: + clearStep5(); + break; + default: + trace('unknown step'); } switch(sh_step){ @@ -460,6 +506,11 @@ case 4: showStep4(); break; + case 5: + showStep5(); + break; + default: + trace('unknown step'); } @@ -481,6 +532,9 @@ case 4: return validateStep4(wm); break; + case 4: + return validateStep5(wm); + break; default: return false; break; @@ -518,6 +572,19 @@ staff_scp.visible = false; learner_lbl.visible = false; learner_scp.visible = false; + + // hide step 4 (Startup) + staff_grp_lbl.visible = false; + learner_grp_lbl.visible = false; + staff_grp_txi.visible = false; + learner_grp_txi.visible = false; + + // hide step 5 (Startup) + start_btn.visible = false; + summery_scp.visible = false; + summery_lbl.visible = false; + schedule_cb.visible = false; + schedule_time._visible = false; } private function clearStep1():Void{ @@ -580,6 +647,10 @@ valid = false; } + if(valid){ + resultDTO.resourceTitle = resourceTitle_txi.text; + resultDTO.resourceDescription = resourceDesc_txa.text; + } return valid; } @@ -605,18 +676,164 @@ learner_scp.visible = false; } private function validateStep3(wm:WizardModel):Boolean{ - return true; + _global.breakpoint(); + + var valid:Boolean = true; + var snode = org_treeview.selectedNode; + var pnode = snode.parentNode; + var learnerCount:Number = 0; + var staffCount:Number = 0; + + if(snode == null){ + trace('no course/class selected'); + return false; + } else { + // add selected users to dto + trace('learners') + + + for(var i=0; i