Index: lams_flex/CloudWizard/src/org/lamsfoundation/lams/events/WizardEvent.as =================================================================== RCS file: /usr/local/cvsroot/lams_flex/CloudWizard/src/org/lamsfoundation/lams/events/WizardEvent.as,v diff -u -r1.1 -r1.2 --- lams_flex/CloudWizard/src/org/lamsfoundation/lams/events/WizardEvent.as 12 Jan 2010 01:14:40 -0000 1.1 +++ lams_flex/CloudWizard/src/org/lamsfoundation/lams/events/WizardEvent.as 26 Aug 2011 19:46:08 -0000 1.2 @@ -23,6 +23,8 @@ public static const ADD_LESSON:String = "addLessonEvent"; public static const SCHEDULE_LESSON:String = "scheduleLessonEvent"; + public static const SCHEDULE_LESSON_FINISH:String = "scheduleLessonFinishEvent"; + public static const CHECK_SCHEDULE_LESSON_FINISH:String = "checkScheduleLessonFinishEvent"; public static const CREATE_LESSON_CLASS:String = "createLessonClassEvent"; public static const SPLIT_LESSON_CLASS:String = "splitLessonClassEvent"; public static const START:String = "startEvent"; @@ -50,6 +52,8 @@ public var schedule:String; public var timeZone:uint; + public var scheduledNumberDaysToLessonFinish:int; + public var last:Boolean = true; public var label:String; // changing start button label Index: lams_flex/CloudWizard/src/org/lamsfoundation/lams/maps/MainEventMap.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flex/CloudWizard/src/org/lamsfoundation/lams/maps/MainEventMap.mxml,v diff -u -r1.1 -r1.2 --- lams_flex/CloudWizard/src/org/lamsfoundation/lams/maps/MainEventMap.mxml 12 Jan 2010 01:14:43 -0000 1.1 +++ lams_flex/CloudWizard/src/org/lamsfoundation/lams/maps/MainEventMap.mxml 26 Aug 2011 19:46:07 -0000 1.2 @@ -191,6 +191,8 @@ + + @@ -209,13 +211,23 @@ + + + + + + + + + + @@ -242,6 +254,7 @@ + Index: lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Advanced.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Advanced.mxml,v diff -u -r1.1 -r1.2 --- lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Advanced.mxml 12 Jan 2010 01:14:16 -0000 1.1 +++ lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Advanced.mxml 26 Aug 2011 19:46:08 -0000 1.2 @@ -1,322 +1,341 @@ - - - - - 0) - removeInstanceText(); - - var instTxt:Text = new Text(); - instTxt.id = "learnersNote_txt"; - instTxt.setStyle("paddingTop", 8); - instTxt.width = learnersNoteBox.width * 0.5; - instTxt.text = dictionary.getLabelAndInsert("wizard.splitLearners.splitSum", [noInstances, Math.round(noLearnersPerInstance)]); - //noInstances + - //" instances of this lesson will be created and approx. " + Math.round(noLearnersPerInstance) + - //" learners will be allocated to each lesson."; - - learnersNoteBox.addChild(instTxt); - - } - - private function removeInstanceText():void { - learnersNoteBox.removeAllChildren(); - } - - private function changePresenceSelection():void { - if(!enablePresence.selected) enableIm.selected = false; - } - - private function hasFocus(value:Boolean):void { - if(value) { - - // tab is current selection - createTimeZoneList(); - enableSplitLessonsOption(); - - var valEvent:ValidationResultEvent = scheduleValidator.validate(); - if(valEvent.results != null) { - this.dispatchEvent(valEvent); - this.setValidationFocus(valEvent.currentTarget.listener); - } - } else { - this.clearValidationFocus(dateTimePicker_fItm); - } - } - - private function checkScheduleDateTime(event:Event):void { - if(scheduleDateTZ != null) { - this.scheduleDateTimeStr = ScheduleDateDisplay.format(scheduleDateTimePicker.selectedDate); - var valEvent:ValidationResultEvent = scheduleValidator.validate(); - - this.clearValidationFocus(valEvent.currentTarget.listener); - - if(valEvent.results != null) { - this.dispatchEvent(valEvent); - this.setValidationFocus(valEvent.currentTarget.listener); - } else { - this.clearValidationHighlight(valEvent.currentTarget.listener); - } - } - } - - private function changeStartMonitorSelection():void { - - enableScheduling.enabled = !startInMonitor.selected; - - if(startInMonitor.selected) { - enableScheduling.selected = false; - updateSelectedDate(); - } - - var event:WizardEvent = new WizardEvent(WizardEvent.CHANGE_START_BUTTON_LABEL); - - // change label on normal start button (add now >> ) if selected to (start in monitor >>) - event.label = (!startInMonitor.selected) ? dictionary.getLabel('add.now.button.label') - : dictionary.getLabel('finish.btn'); - - this.dispatchEvent(event); - } - - - /** static Validation focus methods */ - public function setValidationFocus(formObject:Object):void { - if(formObject is FormItem) { - // set focus on scheduling form item - formObject.drawFocus(true); - formObject.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER)); - focusTimeout = setTimeout(this.clearValidationFocus, 3000, formObject); - } else { - Wizard.setValidationFocus(formObject); - } - } - - public function clearValidationFocus(focusObject:Object):void { - clearTimeout(focusTimeout); - focusObject.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OUT)); - } - - public function clearValidationHighlight(formObject:Object):void { - formObject.drawFocus(false); - } - - private function updateSelectedDate():void { - var now:Date = new Date(); - if(scheduleDateTimePicker.selectedDate < now) - scheduleDateTimePicker.selectedDate = now; - } - - private function createTimeZoneList():void { - var label:String = ""; - var value:String = ""; - - if(tzList != null && tzList.length > 0) - return; - - tzList = new Array(); - - // populate TimeZone list from User (java) class passed through in the Dictionary data. - for (var i:uint = 0; i <= 30; i++) { - label = dictionary.getLabel(String('timezoneID' + i)); - value = dictionary.getValue(String('timezoneID' + i)) as String; - - tzList.push({label: label, data: value }); - } - - //tzList = [ "GMT-12", "GMT-11", "GMT-10", "GMT-9", "GMT-8", "GMT-7", - // "GMT-6", "GMT-5", "GMT-4", "Canada/Newfoundland", "GMT-3", "GMT-2", "GMT-1", "GMT", "GMT+1", "GMT+2", - // "GMT+3", "Asia/Tehran", "GMT+4", "Asia/Kabul", "GMT+5", "Asia/Calcutta", "Asia/Katmandu", "GMT+6", "GMT+7", - // "GMT+8", "GMT+9", "Australia/Adelaide", "GMT+10", "GMT+11", "GMT+12" ] - - userTimeZone = Advanced.getUserTimeZone(Application.application.param("tz") as String, tzList); - } - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + 0) + removeInstanceText(); + + var instTxt:Text = new Text(); + instTxt.id = "learnersNote_txt"; + instTxt.setStyle("paddingTop", 8); + instTxt.width = learnersNoteBox.width * 0.5; + instTxt.text = dictionary.getLabelAndInsert("wizard.splitLearners.splitSum", [noInstances, Math.round(noLearnersPerInstance)]); + //noInstances + + //" instances of this lesson will be created and approx. " + Math.round(noLearnersPerInstance) + + //" learners will be allocated to each lesson."; + + learnersNoteBox.addChild(instTxt); + + } + + private function removeInstanceText():void { + learnersNoteBox.removeAllChildren(); + } + + private function changePresenceSelection():void { + if(!enablePresence.selected) enableIm.selected = false; + } + + private function hasFocus(value:Boolean):void { + if(value) { + + // tab is current selection + createTimeZoneList(); + enableSplitLessonsOption(); + + var valEvent:ValidationResultEvent = scheduleValidator.validate(); + if(valEvent.results != null) { + this.dispatchEvent(valEvent); + this.setValidationFocus(valEvent.currentTarget.listener); + } + } else { + this.clearValidationFocus(dateTimePicker_fItm); + } + } + + private function checkScheduleDateTime(event:Event):void { + if(scheduleDateTZ != null) { + this.scheduleDateTimeStr = ScheduleDateDisplay.format(scheduleDateTimePicker.selectedDate); + var valEvent:ValidationResultEvent = scheduleValidator.validate(); + + this.clearValidationFocus(valEvent.currentTarget.listener); + + if(valEvent.results != null) { + this.dispatchEvent(valEvent); + this.setValidationFocus(valEvent.currentTarget.listener); + } else { + this.clearValidationHighlight(valEvent.currentTarget.listener); + } + } + } + + private function changeStartMonitorSelection():void { + + enableScheduling.enabled = !startInMonitor.selected; + + if(startInMonitor.selected) { + enableScheduling.selected = false; + updateSelectedDate(); + } + + //enable/disable TimeLimit subgroup + enableTimeLimits.enabled = !startInMonitor.selected; + if(startInMonitor.selected) { + enableTimeLimits.selected = false; + } + if(enableIndividualTimeLimit.selected) { + enableIndividualTimeLimit.selected = false; + } + + var event:WizardEvent = new WizardEvent(WizardEvent.CHANGE_START_BUTTON_LABEL); + + // change label on normal start button (add now >> ) if selected to (start in monitor >>) + event.label = (!startInMonitor.selected) ? dictionary.getLabel('add.now.button.label') + : dictionary.getLabel('finish.btn'); + + this.dispatchEvent(event); + } + + + /** static Validation focus methods */ + public function setValidationFocus(formObject:Object):void { + if(formObject is FormItem) { + // set focus on scheduling form item + formObject.drawFocus(true); + formObject.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER)); + focusTimeout = setTimeout(this.clearValidationFocus, 3000, formObject); + } else { + Wizard.setValidationFocus(formObject); + } + } + + public function clearValidationFocus(focusObject:Object):void { + clearTimeout(focusTimeout); + focusObject.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OUT)); + } + + public function clearValidationHighlight(formObject:Object):void { + formObject.drawFocus(false); + } + + private function updateSelectedDate():void { + var now:Date = new Date(); + if(scheduleDateTimePicker.selectedDate < now) + scheduleDateTimePicker.selectedDate = now; + } + + private function createTimeZoneList():void { + var label:String = ""; + var value:String = ""; + + if(tzList != null && tzList.length > 0) + return; + + tzList = new Array(); + + // populate TimeZone list from User (java) class passed through in the Dictionary data. + for (var i:uint = 0; i <= 30; i++) { + label = dictionary.getLabel(String('timezoneID' + i)); + value = dictionary.getValue(String('timezoneID' + i)) as String; + + tzList.push({label: label, data: value }); + } + + //tzList = [ "GMT-12", "GMT-11", "GMT-10", "GMT-9", "GMT-8", "GMT-7", + // "GMT-6", "GMT-5", "GMT-4", "Canada/Newfoundland", "GMT-3", "GMT-2", "GMT-1", "GMT", "GMT+1", "GMT+2", + // "GMT+3", "Asia/Tehran", "GMT+4", "Asia/Kabul", "GMT+5", "Asia/Calcutta", "Asia/Katmandu", "GMT+6", "GMT+7", + // "GMT+8", "GMT+9", "Australia/Adelaide", "GMT+10", "GMT+11", "GMT+12" ] + + userTimeZone = Advanced.getUserTimeZone(Application.application.param("tz") as String, tzList); + } + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Lesson.mxml =================================================================== RCS file: /usr/local/cvsroot/lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Lesson.mxml,v diff -u -r1.1 -r1.2 --- lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Lesson.mxml 12 Jan 2010 01:14:16 -0000 1.1 +++ lams_flex/CloudWizard/src/org/lamsfoundation/lams/views/Lesson.mxml 26 Aug 2011 19:46:08 -0000 1.2 @@ -1,290 +1,306 @@ - - - - - 0) { - var invalid:Boolean = false; - - for each(valEvent in valArray) { - if(valEvent.results != null && valEvent.type == ValidationResultEvent.INVALID) { - this.dispatchEvent(valEvent); - Wizard.setValidationFocus(valEvent.currentTarget.listener); - invalid = true; - } - } - - if(invalid) - this.dispatchEvent(new NavigationEvent(NavigationEvent.LEARNERS)); - - // validate learning design - } else if(newLesson.learningDesignID != 0) { - var addType:String = (newLesson.numberLessonsSplit > 0) ? WizardEvent.SPLIT_LESSON_CLASS : WizardEvent.ADD_LESSON; - var wizardEvent:WizardEvent = new WizardEvent(addType); - wizardEvent.lesson = newLesson; - - this.dispatchEvent(wizardEvent); - - return true; - - // else case - unknown error - } else { - Alert.okLabel = dictionary.getLabel('button.ok'); - Alert.show(dictionary.getLabelAndInsert("error.system.error", ['unknown']), dictionary.getLabel('sys.error'), Alert.OK, this); - } - - } else { - Alert.okLabel = dictionary.getLabel('button.ok'); - Alert.show(dictionary.getLabel("al.validation.msg1"), dictionary.getLabel("al.alert"), Alert.OK, this); - - this.dispatchEvent(new NavigationEvent(NavigationEvent.LESSON)); - } - - return false; - } - - public function startLesson(event:WizardEvent):void { - // close window - start in monitor (tab -advanced) - if(advanced.startInMonitor.selected) { - this.dispatchEvent(new WizardEvent(WizardEvent.CLOSE_NOSTART)); - return; - } - - // fire normal start event(s) - var startType:String = (newLesson.enableScheduling) ? WizardEvent.SCHEDULE_LESSON : WizardEvent.START_LESSON; - var wizardEvent:WizardEvent = new WizardEvent(startType); - - wizardEvent.lesson = newLesson; - wizardEvent.schedule = (newLesson.enableScheduling) ? advanced.scheduleDateTimeStr : null; - wizardEvent.timeZone = advanced.scheduleDateTZ.selectedIndex - - if(lessonInstances.length > 1) { - startLessonInstances(wizardEvent); - } else { - this.dispatchEvent(wizardEvent); - } - - } - - public function startLessonInstances(event:WizardEvent):void { - var count:uint = 0; - - for each(var instanceLessonID:uint in lessonInstances) { - var wizardEvent:WizardEvent = new WizardEvent(event.type); - count++; - - lessonID = instanceLessonID; - - wizardEvent.lesson = newLesson; - wizardEvent.schedule = event.schedule; - wizardEvent.timeZone = advanced.scheduleDateTZ.selectedIndex - - wizardEvent.last = (lessonInstances.length == count); - - this.dispatchEvent(wizardEvent); - } - - } - - private function hasFocus(value:Boolean):void { - if(value) { - // tab is current selection - validateLessonNameField(); - } - } - - private function validateLessonNameField():void { - if(selectedNode != null) { - var valEvent:ValidationResultEvent = lessonNameVal.validate(); - if(valEvent.results != null) - Wizard.setValidationFocus(lessonNameVal.listener); - } - - } - - ]]> - - - - - - - - - - - {lessonID} - {resourceName_txi.text} - {advanced.description_txi.text} - {organisationID} - {selectedNode.resourceID} - {advanced.enabledExportPortfolio.selected} - {advanced.enablePresence.selected} - {advanced.enabledLiveEdit.selected} - {advanced.enableIm.selected} - {advanced.noInstances} - {advanced.noLearnersPerInstance} - - {advanced.enableScheduling.selected} - - - - - - - - - - - - - - - - - - - - - - - - + + + + + 0) { + var invalid:Boolean = false; + + for each(valEvent in valArray) { + if(valEvent.results != null && valEvent.type == ValidationResultEvent.INVALID) { + this.dispatchEvent(valEvent); + Wizard.setValidationFocus(valEvent.currentTarget.listener); + invalid = true; + } + } + + if(invalid) + this.dispatchEvent(new NavigationEvent(NavigationEvent.LEARNERS)); + + // validate learning design + } else if(newLesson.learningDesignID != 0) { + var addType:String = (newLesson.numberLessonsSplit > 0) ? WizardEvent.SPLIT_LESSON_CLASS : WizardEvent.ADD_LESSON; + var wizardEvent:WizardEvent = new WizardEvent(addType); + wizardEvent.lesson = newLesson; + + this.dispatchEvent(wizardEvent); + + return true; + + // else case - unknown error + } else { + Alert.okLabel = dictionary.getLabel('button.ok'); + Alert.show(dictionary.getLabelAndInsert("error.system.error", ['unknown']), dictionary.getLabel('sys.error'), Alert.OK, this); + } + + } else { + Alert.okLabel = dictionary.getLabel('button.ok'); + Alert.show(dictionary.getLabel("al.validation.msg1"), dictionary.getLabel("al.alert"), Alert.OK, this); + + this.dispatchEvent(new NavigationEvent(NavigationEvent.LESSON)); + } + + return false; + } + + public function startLesson(event:WizardEvent):void { + // close window - start in monitor (tab -advanced) + if(advanced.startInMonitor.selected) { + this.dispatchEvent(new WizardEvent(WizardEvent.CLOSE_NOSTART)); + return; + } + + // fire normal start event(s) + var startType:String = (newLesson.enableScheduling) ? WizardEvent.SCHEDULE_LESSON : WizardEvent.START_LESSON; + var wizardEvent:WizardEvent = new WizardEvent(startType); + + wizardEvent.lesson = newLesson; + wizardEvent.schedule = (newLesson.enableScheduling) ? advanced.scheduleDateTimeStr : null; + wizardEvent.timeZone = advanced.scheduleDateTZ.selectedIndex + + if(lessonInstances.length > 1) { + startLessonInstances(wizardEvent); + } else { + this.dispatchEvent(wizardEvent); + } + + } + + public function startLessonInstances(event:WizardEvent):void { + var count:uint = 0; + + for each(var instanceLessonID:uint in lessonInstances) { + var wizardEvent:WizardEvent = new WizardEvent(event.type); + count++; + + lessonID = instanceLessonID; + + wizardEvent.lesson = newLesson; + wizardEvent.schedule = event.schedule; + wizardEvent.timeZone = advanced.scheduleDateTZ.selectedIndex + + wizardEvent.last = (lessonInstances.length == count); + + this.dispatchEvent(wizardEvent); + } + + } + + //check if this lesson should be scheduled for finish and if so schedule it + public function checkForLessonFinishOnSchedule(event:WizardEvent):void { + if(newLesson.enableTimeLimits && !newLesson.enableIndividualTimeLimit) { + var wizardEvent:WizardEvent = new WizardEvent(WizardEvent.SCHEDULE_LESSON_FINISH); + wizardEvent.lesson = newLesson; + wizardEvent.scheduledNumberDaysToLessonFinish = newLesson.scheduledNumberDaysToLessonFinish; + + this.dispatchEvent(wizardEvent); + } + + } + + private function hasFocus(value:Boolean):void { + if(value) { + // tab is current selection + validateLessonNameField(); + } + } + + private function validateLessonNameField():void { + if(selectedNode != null) { + var valEvent:ValidationResultEvent = lessonNameVal.validate(); + if(valEvent.results != null) + Wizard.setValidationFocus(lessonNameVal.listener); + } + + } + + ]]> + + + + + + + + + + + + {lessonID} + {resourceName_txi.text} + {advanced.description_txi.text} + {organisationID} + {selectedNode.resourceID} + {advanced.enabledExportPortfolio.selected} + {advanced.enablePresence.selected} + {advanced.enabledLiveEdit.selected} + {advanced.enableIm.selected} + {advanced.noInstances} + {advanced.noLearnersPerInstance} + + {advanced.enableTimeLimits.selected} + + {advanced.noDaysToLessonFinish.value} + {advanced.enableIndividualTimeLimit.selected} + + {advanced.enableScheduling.selected} + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_flex/CloudWizard/src/org/lamsfoundation/lams/vos/Lesson.as =================================================================== RCS file: /usr/local/cvsroot/lams_flex/CloudWizard/src/org/lamsfoundation/lams/vos/Lesson.as,v diff -u -r1.1 -r1.2 --- lams_flex/CloudWizard/src/org/lamsfoundation/lams/vos/Lesson.as 12 Jan 2010 01:14:33 -0000 1.1 +++ lams_flex/CloudWizard/src/org/lamsfoundation/lams/vos/Lesson.as 26 Aug 2011 19:46:08 -0000 1.2 @@ -1,62 +1,70 @@ -package org.lamsfoundation.lams.vos -{ - import mx.collections.ArrayCollection; - import org.lamsfoundation.lams.common.util.WDDXUtil; - - public class Lesson - { - public var lessonID:uint; - public var lessonName:String; - public var lessonDescription:String; - public var organisationID:uint; - public var learningDesignID:uint; - - // Advanced options - public var learnerExportPortfolio:Boolean; - public var enablePresence:Boolean; - public var enableLiveEdit:Boolean; - public var enableIm:Boolean; - - public var enableScheduling:Boolean; - - public var numberLessonsSplit:int; - public var numberLearnersSplit:int; - - // new Lesson copy - public var copyType:uint = 2; - - // Lesson class - learners and staff users - public var learners:UserCollection; - public var staff:UserCollection; - - public function Lesson() { - learners = new UserCollection(); - staff = new UserCollection(); - } - - public function get toData():Object { - var data:Object = new Object(); - data.lessonID = this.lessonID; - data.lessonName = this.lessonName; - data.lessonDescription = WDDXUtil.toWDDXNull(this.lessonDescription); - data.organisationID = this.organisationID; - data.learningDesignID = this.learningDesignID; - data.learnerExportPortfolio = this.learnerExportPortfolio; - - data.enablePresence = this.enablePresence; - data.enableLiveEdit = this.enableLiveEdit; - data.enableIm = this.enableIm; - - data.numberLessonsSplit = WDDXUtil.toWDDXNull(this.numberLessonsSplit); - data.numberLearnersSplit = WDDXUtil.toWDDXNull(this.numberLearnersSplit); - - data.copyType = this.copyType; - - data.learners = learners.toData; - data.staff = staff.toData; - - return data; - } - } - +package org.lamsfoundation.lams.vos +{ + import mx.collections.ArrayCollection; + import org.lamsfoundation.lams.common.util.WDDXUtil; + + public class Lesson + { + public var lessonID:uint; + public var lessonName:String; + public var lessonDescription:String; + public var organisationID:uint; + public var learningDesignID:uint; + + // Advanced options + public var learnerExportPortfolio:Boolean; + public var enablePresence:Boolean; + public var enableLiveEdit:Boolean; + public var enableIm:Boolean; + + public var enableTimeLimits:Boolean; + public var scheduledNumberDaysToLessonFinish:int; + public var enableIndividualTimeLimit:Boolean; + + public var enableScheduling:Boolean; + + public var numberLessonsSplit:int; + public var numberLearnersSplit:int; + + // new Lesson copy + public var copyType:uint = 2; + + // Lesson class - learners and staff users + public var learners:UserCollection; + public var staff:UserCollection; + + public function Lesson() { + learners = new UserCollection(); + staff = new UserCollection(); + } + + public function get toData():Object { + var data:Object = new Object(); + data.lessonID = this.lessonID; + data.lessonName = this.lessonName; + data.lessonDescription = WDDXUtil.toWDDXNull(this.lessonDescription); + data.organisationID = this.organisationID; + data.learningDesignID = this.learningDesignID; + data.learnerExportPortfolio = this.learnerExportPortfolio; + + data.enablePresence = this.enablePresence; + data.enableLiveEdit = this.enableLiveEdit; + data.enableIm = this.enableIm; + + if (this.enableTimeLimits && this.enableIndividualTimeLimit) { + data.scheduledNumberDaysToLessonFinish = WDDXUtil.toWDDXNull(this.scheduledNumberDaysToLessonFinish); + } + + data.numberLessonsSplit = WDDXUtil.toWDDXNull(this.numberLessonsSplit); + data.numberLearnersSplit = WDDXUtil.toWDDXNull(this.numberLearnersSplit); + + data.copyType = this.copyType; + + data.learners = learners.toData; + data.staff = staff.toData; + + return data; + } + } + } \ No newline at end of file