Index: lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java =================================================================== diff -u -r309a597eada52a4079f2985e0d97beedf9adda42 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb --- lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java (.../LessonClass.java) (revision 309a597eada52a4079f2985e0d97beedf9adda42) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LessonClass.java (.../LessonClass.java) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) @@ -165,7 +165,22 @@ int newNumber = learnersGroup.getUsers().size(); return newNumber - originalNumber; } + + /** + * Sets the staff to the value given by the input collection. + * @return number of staff set + */ + public int setLearners(Collection newLearners) { + if ( newLearners == null ) + return 0; + Group learnersGroup = createLearnerGroupIfMissing(); + learnersGroup.getUsers().clear(); + learnersGroup.getUsers().addAll(newLearners); + int newNumber = learnersGroup.getUsers().size(); + return newNumber; + } + public Group getLearnersGroup() { Group learnersGroup = null; Iterator iter = getGroups().iterator(); @@ -214,10 +229,25 @@ Group staffGroup = createStaffGroupIfMissing(); int originalNumber = staffGroup.getUsers().size(); staffGroup.getUsers().addAll(newStaff); - int newNumber = staffGroup.getUsers().size(); - return newNumber - originalNumber; + int newNumber = staffGroup.getUsers().size(); + return newNumber - originalNumber; } + + /** + * Sets the staff to the value given by the input collection. + * @return number of staff set + */ + public int setStaffMembers(Collection newStaff) { + if ( newStaff == null ) + return 0; + Group staffGroup = createStaffGroupIfMissing(); + staffGroup.getUsers().clear(); + staffGroup.getUsers().addAll(newStaff); + int newNumber = staffGroup.getUsers().size(); + return newNumber; + } + /** * When the users's are added from an external LMS e.g. Moodle, the Staff Group may not exist. * If that happens, then this code will ensure that there is a learners group, etc and so adding Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java =================================================================== diff -u -re5c9d6208cedb95477b449363a244ded3efb753c -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision e5c9d6208cedb95477b449363a244ded3efb753c) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) @@ -235,6 +235,17 @@ public void addLearners(Lesson lesson, Collection users) throws LessonServiceException; /** + * Set the learners in a lesson class. Learners not in the users collection will be removed. + * To be called within LAMS. + * + * @param lesson + * lesson + * @param users + * the users to set as staff + */ + public void setLearners(Lesson lesson, Collection users) throws LessonServiceException; + + /** * Add a new staff member to the lesson class. Checks for duplicates. * * @paran userId new learner id @@ -265,8 +276,19 @@ * the users to add as learners */ public void addStaffMembers(Lesson lesson, Collection users) throws LessonServiceException; - + /** + * Set the staff members in a lesson class. Staff members not in the users collection will be removed. + * To be called within LAMS. + * + * @param lesson + * lesson + * @param users + * the users to set as staff + */ + public void setStaffMembers(Lesson lesson, Collection users) throws LessonServiceException; + + /** * Remove references to an activity from all learner progress entries. Used by Live Edit, to remove any references * to the system gates * Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java =================================================================== diff -u -r02df1b4f76fac80d72ff5583feddace3897844d9 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 02df1b4f76fac80d72ff5583feddace3897844d9) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) @@ -503,6 +503,24 @@ LessonService.log.debug("Added " + numAdded + " learners to lessonClass " + lessonClass.getGroupingId()); } } + + /** + * Set the learners in a lesson class. To be called within LAMS. + * + * @param lesson + * lesson + * @param users + * the users to set as learners + */ + public void setLearners(Lesson lesson, Collection users) throws LessonServiceException { + LessonClass lessonClass = lesson.getLessonClass(); + int numberOfLearners = lessonClass.setLearners(users); + lessonClassDAO.updateLessonClass(lessonClass); + if (LessonService.log.isDebugEnabled()) { + LessonService.log.debug("Set " + numberOfLearners + " learners in lessonClass " + + lessonClass.getGroupingId()); + } + } /** * Add a new staff member to the lesson class. Checks for duplicates. @@ -592,7 +610,26 @@ + lessonClass.getGroupingId()); } } + + /** + * Set the staff members in a lesson class. To be called within LAMS. + * + * @param lesson + * lesson + * @param users + * the users to set as staff + */ + public void setStaffMembers(Lesson lesson, Collection users) throws LessonServiceException { + LessonClass lessonClass = lesson.getLessonClass(); + int numberOfStaff = lessonClass.setStaffMembers(users); + lessonClassDAO.updateLessonClass(lessonClass); + if (LessonService.log.isDebugEnabled()) { + LessonService.log.debug("Set " + numberOfStaff + " staff members in lessonClass " + + lessonClass.getGroupingId()); + } + } + /** * Remove references to an activity from all learner progress entries. Used by Live Edit, to remove any references * to the system gates Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/LessonManagerDialog.as =================================================================== diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/LessonManagerDialog.as (.../LessonManagerDialog.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/LessonManagerDialog.as (.../LessonManagerDialog.as) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) @@ -28,6 +28,7 @@ import it.sephiroth.TreeDnd import org.lamsfoundation.lams.common.ws.* +import org.lamsfoundation.lams.common.ui.LFMessage import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.common.dict.* import org.lamsfoundation.lams.common.style.* @@ -123,7 +124,7 @@ //set the reference to the StyleManager themeManager = ThemeManager.getInstance(); - + setStyles(); setLabels(); @@ -198,8 +199,6 @@ */ private function ok(){ Debugger.log('OK Clicked',Debugger.GEN,'ok','org.lamsfoundation.lams.LessonManagerDialog'); - - _global.breakpoint(); var valid:Boolean = true; var snode = treeview.selectedNode; @@ -224,6 +223,7 @@ } if(selectedLearners.length <= 0){ + LFMessage.showMessageAlert(Dictionary.getValue("msg_no_learners_in_lesson")); valid = false; } @@ -517,9 +517,6 @@ for(var i=0; i<_learnerList.length; i++){ if(org.isLearner(_learnerList[i].data.userID)){ _learnerList[i].user_cb.selected = true; - if(s.isStarted){ - _learnerList[i].user_cb.enabled = false; - } } } @@ -568,7 +565,7 @@ for(var i=0; i<_staffList.length; i++){ if(org.isMonitor(_staffList[i].data.userID)){ _staffList[i].user_cb.selected = true; - if(s.isStarted){ + if(_staffList[i].data.userID == _root.userID){ _staffList[i].user_cb.enabled = false; } } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LessonTabView.as =================================================================== diff -u -r2dd65b84334012d958de5a9c6588ded951c52dc6 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LessonTabView.as (.../LessonTabView.as) (revision 2dd65b84334012d958de5a9c6588ded951c52dc6) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LessonTabView.as (.../LessonTabView.as) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) @@ -31,6 +31,7 @@ import org.lamsfoundation.lams.monitoring.ContributeActivity; import org.lamsfoundation.lams.wizard.* import org.lamsfoundation.lams.authoring.Activity; +import org.lamsfoundation.lams.common.ApplicationParent; import org.lamsfoundation.lams.common.dict.* import org.lamsfoundation.lams.common.mvc.* import org.lamsfoundation.lams.common.ToolTip; @@ -63,6 +64,8 @@ private var _className = "LessonTabView"; + private var _app:ApplicationParent; + //constants: private var _tm:ThemeManager; private var _tip:ToolTip; @@ -147,6 +150,7 @@ trace("loaded lesson tab view") _lessonTabView = this; + _app = ApplicationParent.getInstance(); _tm = ThemeManager.getInstance(); _tip = new ToolTip(); @@ -712,8 +716,8 @@ * Opens the lesson manager dialog */ public function showLessonManagerDialog(mm:MonitorModel) { - var dialog:MovieClip = PopUpManager.createPopUp(mm.getMonitor().root, LFWindow, true,{title:Dictionary.getValue('ls_win_editclass_title'),closeButton:true,scrollContentPath:'selectClass'}); - dialog.addEventListener('contentLoaded',Delegate.create(_monitorController,_monitorController.openDialogLoaded)); + _app.dialog = PopUpManager.createPopUp(mm.getMonitor().root, LFWindow, true,{title:Dictionary.getValue('ls_win_editclass_title'),closeButton:true,scrollContentPath:'selectClass'}); + _app.dialog.addEventListener('contentLoaded',Delegate.create(_monitorController,_monitorController.openDialogLoaded)); } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -red0cc400ab00e2c188be1f4227532770fec5a6e7 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision ed0cc400ab00e2c188be1f4227532770fec5a6e7) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) @@ -632,8 +632,7 @@ } checkOwnerOrStaffMember(userId, newLesson, "create lesson class"); - // if lesson isn't started, can add and remove users, so its just easier - // to recreate the lesson class + // if lesson isn't started recreate the lesson class if (!newLesson.isLessonStarted()) { if (newLesson == null) { @@ -655,9 +654,9 @@ lessonClassDAO.deleteLessonClass(oldLessonClass); } - } else { // if started, can only add users - lessonService.addLearners(newLesson, organizationUsers); - lessonService.addStaffMembers(newLesson, staffs); + } else { + lessonService.setLearners(newLesson, organizationUsers); + lessonService.setStaffMembers(newLesson, staffs); } return newLesson; Index: lams_monitoring/web/lams_monitoring.swf =================================================================== diff -u -rc646d49c75891d4de941930ea911e55046d0ba00 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb Binary files differ Index: lams_monitoring/web/lams_monitoring_library.swf =================================================================== diff -u -rc646d49c75891d4de941930ea911e55046d0ba00 -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb Binary files differ