Index: lams_flash/src/central/flex/BranchManager/src/BranchManager.mxml =================================================================== diff -u -redba2c28d900fba6e7bb761fb0a828aad979629e -r12ff0e150f8506d554c1405e0c4d14abda72ca4c --- lams_flash/src/central/flex/BranchManager/src/BranchManager.mxml (.../BranchManager.mxml) (revision edba2c28d900fba6e7bb761fb0a828aad979629e) +++ lams_flash/src/central/flex/BranchManager/src/BranchManager.mxml (.../BranchManager.mxml) (revision 12ff0e150f8506d554c1405e0c4d14abda72ca4c) @@ -110,8 +110,8 @@ // total number of branches add (even after removal) private var totalBranchesAdded:int = 0; - // last remove event stored - private var lastRemoveEvent:Event; + // last drag event stored + private var lastDragEvent:DragEvent; // variables grabbed from flashvars private var lessonID:int; @@ -147,6 +147,10 @@ application.enabled = false; } else { + // if may not delete, alert the monitor that learners can be added but not removed from branches + if(!mayDelete){ + Alert.show(languageXML.language.entry.(@key=="label.branching.popup.drag.selection.message").name); + } initServices(); initButtonsAndDragging(); initLabels(); @@ -159,16 +163,15 @@ private function initLabels():void{ finish_btn.label = languageXML.language.entry.(@key=="button.finished").name; mainDataGridCol1_col.headerText = languageXML.language.entry.(@key=="label.branching.non.allocated.users.heading").name; - status_lbl.text = languageXML.language.entry.(@key=="label.grouping.status").name; } // initialize buttons and dragging depending on jsp conditions private function initButtonsAndDragging():void { // allow movement of students if deleting is allowed - mainDataGrid_dg.dragEnabled = mayDelete; - mainDataGrid_dg.dropEnabled = mayDelete; - mainDataGrid_dg.dragMoveEnabled = mayDelete; - mainDataGrid_dg.allowDragSelection = mayDelete; + mainDataGrid_dg.dragEnabled = true; + mainDataGrid_dg.dropEnabled = true; + mainDataGrid_dg.dragMoveEnabled = true; + mainDataGrid_dg.allowDragSelection = true; } // set request parameters @@ -226,7 +229,7 @@ } // set new column attributes - newDataGridColumn.headerText = languageXML.language.entry.(@key=="label.branching.learners").name; + newDataGridColumn.headerText = languageXML.language.entry.(@key=="label.grouping.learners").name; newDataGridColumn.dataField = "displayName"; // set new datagrid attributes @@ -237,10 +240,10 @@ newDataGrid.addEventListener(DragEvent.DRAG_DROP, dragDropHandler); newDataGrid.dataProvider = newLearnersCollection; - newDataGrid.dropEnabled = mayDelete; newDataGrid.dragEnabled = mayDelete; newDataGrid.dragMoveEnabled= mayDelete; newDataGrid.allowDragSelection = mayDelete; + newDataGrid.dropEnabled = true; // add elements to the panel newPanel.addChild(newDataGrid); @@ -282,8 +285,8 @@ private function closeWindowHandler(e:MouseEvent):void{ ExternalInterface.call("closeWindow"); } - - // drag drop handler + + // handler to complete dragging users private function dragDropHandler(e:DragEvent):void { // if the drag and drop source and destination are not the same if(e.dragInitiator != e.currentTarget){ @@ -410,8 +413,6 @@ - - Index: lams_flash/src/central/flex/GroupManager/src/GroupManager.mxml =================================================================== diff -u -redba2c28d900fba6e7bb761fb0a828aad979629e -r12ff0e150f8506d554c1405e0c4d14abda72ca4c --- lams_flash/src/central/flex/GroupManager/src/GroupManager.mxml (.../GroupManager.mxml) (revision edba2c28d900fba6e7bb761fb0a828aad979629e) +++ lams_flash/src/central/flex/GroupManager/src/GroupManager.mxml (.../GroupManager.mxml) (revision 12ff0e150f8506d554c1405e0c4d14abda72ca4c) @@ -159,6 +159,9 @@ // last remove event stored private var lastRemoveEvent:Event; + // last drag event stored + private var lastDragEvent:DragEvent; + // variables grabbed from flashvars private var lessonID:int; private var activityID:int; @@ -197,6 +200,11 @@ application.enabled = false; } else { + // if may not delete, alert the monitor that learners can be added but not removed from groups + if(!mayDelete){ + Alert.show(languageXML.language.entry.(@key=="label.grouping.popup.drag.selection.message").name); + } + initServices(); initButtonsAndDragging(); initLabels(); @@ -210,18 +218,17 @@ groupFunctions_lbl.text = languageXML.language.entry.(@key=="label.grouping.functions").name; finish_btn.label = languageXML.language.entry.(@key=="button.finished").name; mainDataGridCol1_col.headerText = languageXML.language.entry.(@key=="label.grouping.non.grouped.users.heading").name; - status_lbl.text = languageXML.language.entry.(@key=="label.grouping.status").name; globalAddPanel_btn.label = "+"; globalRemovePanel_btn.label = "-"; } // initialize buttons and dragging depending on jsp conditions private function initButtonsAndDragging():void { // allow movement of students if deleting is allowed - mainDataGrid_dg.dragEnabled = mayDelete; - mainDataGrid_dg.dropEnabled = mayDelete; - mainDataGrid_dg.dragMoveEnabled = mayDelete; - mainDataGrid_dg.allowDragSelection = mayDelete; + mainDataGrid_dg.dragEnabled = true; + mainDataGrid_dg.dropEnabled = true; + mainDataGrid_dg.dragMoveEnabled = true; + mainDataGrid_dg.allowDragSelection = true; // if groups are being used for branching, if deletion is a nono or if branching/grouping is in view mode, disable add and remove buttons if(usedForBranching || !mayDelete || viewMode) { @@ -273,6 +280,14 @@ var newPanelRemoveButton:Button = new Button(); var horizontalSpacer:Spacer = new Spacer(); + /* + // check current number of groups against max numbers of groups + if(totalGroupsAdded >= maxNumberOfGroups) { + Alert.show(languageXML.language.entry.(@key=="error.title").name); + return false; + } + */ + // increment total number of group panels added totalGroupsAdded++; @@ -292,10 +307,13 @@ newControlBar.percentWidth = 100; newControlBar.height = 40; - // add only if conditions are alright - if(!usedForBranching && mayDelete && !viewMode) { - newControlBar.addChild(horizontalSpacer); - newControlBar.addChild(newPanelRemoveButton); + // add the control bar's components + newControlBar.addChild(horizontalSpacer); + newControlBar.addChild(newPanelRemoveButton); + + // disactivate if deletion is not allowed + if(usedForBranching || !mayDelete || viewMode) { + newPanelRemoveButton.enabled = false; } // set new panel attributes @@ -329,10 +347,11 @@ newDataGrid.addEventListener(DragEvent.DRAG_DROP, dragDropHandler); newDataGrid.dataProvider = newLearnersCollection; - newDataGrid.dropEnabled = mayDelete; - newDataGrid.dragEnabled = mayDelete; - newDataGrid.dragMoveEnabled= mayDelete; - newDataGrid.allowDragSelection = mayDelete; + // set dragging properties depending + newDataGrid.dragEnabled = mayDelete; + newDataGrid.dragMoveEnabled= mayDelete; + newDataGrid.allowDragSelection = mayDelete; + newDataGrid.dropEnabled = true; // add elements to the panel newPanel.addChild(newDataGrid); @@ -447,12 +466,12 @@ private function removePanelHandler(event:Event):void { if(panels.length != 0) { lastRemoveEvent = event; - Alert.show(languageXML.language.entry.(@key=="label.grouping.popup.delete.group.message").name, languageXML.language.entry.(@key=="label.grouping.popup.delete.group").name, 3, this, alertClickHandler); + Alert.show(languageXML.language.entry.(@key=="label.grouping.popup.delete.group.message").name, languageXML.language.entry.(@key=="label.grouping.popup.delete.group").name, 3, this, deleteAlertClickHandler); } } // click handler to confirm removing a panel - private function alertClickHandler(event:CloseEvent):void { + private function deleteAlertClickHandler(event:CloseEvent):void { if (event.detail==Alert.YES){ removePanelHandlerComplete(lastRemoveEvent); } @@ -475,7 +494,7 @@ ExternalInterface.call("closeWindow"); } - // drag drop handler + // handler to complete dragging users private function dragDropHandler(e:DragEvent):void { // if the drag and drop source and destination are not the same if(e.dragInitiator != e.currentTarget){ @@ -512,15 +531,14 @@ // -- httpservice handlers -- private function getGroupsSuccessHandler(e:ResultEvent):void { var xmlResult:XMLListCollection = new XMLListCollection(XMLList(e.result).groups.group); + var amountGroupsAdded:int = 0; + // for each group returned, add a group panel and get its learners for(var i:int = 0; i < xmlResult.length; i++){ addGroupPanel(xmlResult.getItemAt(i).id.toString(), xmlResult.getItemAt(i).name.toString()); - } - - for(var i:int = 0; i < xmlResult.length; i++){ - getGroupMembersService.request.groupID = xmlResult.getItemAt(i).id.toString(); + getGroupMembersService.request.groupID = xmlResult.getItemAt(i).id.toString(); getGroupMembersService.send(); - } + } } private function getGroupsFaultHandler(e:Event):void { @@ -620,8 +638,6 @@ - - Index: lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r4f82aa2d9b93b012225fca2e96000b10368ca710 -r12ff0e150f8506d554c1405e0c4d14abda72ca4c --- lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 4f82aa2d9b93b012225fca2e96000b10368ca710) +++ lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 12ff0e150f8506d554c1405e0c4d14abda72ca4c) @@ -66,9 +66,9 @@ label.branching.allocated.groups.heading =Groups of the selected Branch label.completed =Completed label.grouping.general.instructions.heading =General Instructions: -label.grouping.non.grouped.users.heading =Students without a Group -label.branching.non.allocated.users.heading =Students without a Branch -label.grouping.general.instructions.line2 =To create a group, type a group name and click Add Group. Repeat as required. Select a group, then select students from Column 2 and click Add selected to group. Select students in Column 3 and click Remove selected members from group to remove them from the group membership. The changes are saved when you click any of the buttons. +label.grouping.non.grouped.users.heading =Learners without a Group +label.branching.non.allocated.users.heading =Learners without a Branch +label.grouping.general.instructions.line2 = To create a group, simply click the "+" button in the group functions. To remove a group, click the "-" button. Repeat as required. To assign learners to groups, simply drag their names into the appropriate group panel. The changes are saved immediately. label.condition.gate.title =Condition Gate label.gate.you.open.message =You may open the gate for the whole class label.gate.allow =Allow to pass @@ -83,6 +83,8 @@ label.grouping.popup.change.group.name.field =Enter new name: label.grouping.popup.delete.group =Delete Group label.grouping.popup.delete.group.message =Are you sure you want to delete this group? +label.grouping.popup.drag.selection.message = Because some learners have already entered this grouping activity, it will only be possible to add new learners to groups. Learners can not be removed from groups, therefore, once a learner is added to a group, the action can not be undone. +label.branching.popup.drag.selection.message = Because some learners have already entered this branching activity, it will only be possible to add new learners to branches. Learners can not be removed from branches, therefore, once a learner is added to a branch, the action can not be undone. button.ok =OK button.cancel =Cancel button.yes =Yes Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java =================================================================== diff -u -redba2c28d900fba6e7bb761fb0a828aad979629e -r12ff0e150f8506d554c1405e0c4d14abda72ca4c --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java (.../BranchingAction.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java (.../BranchingAction.java) (revision 12ff0e150f8506d554c1405e0c4d14abda72ca4c) @@ -192,6 +192,7 @@ languageCollection.add(new String("label.grouping.status")); languageCollection.add(new String("label.grouping.learners")); languageCollection.add(new String("error.title")); + languageCollection.add(new String("label.branching.popup.drag.selection.message")); String languageOutput = ""; Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java =================================================================== diff -u -redba2c28d900fba6e7bb761fb0a828aad979629e -r12ff0e150f8506d554c1405e0c4d14abda72ca4c --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision edba2c28d900fba6e7bb761fb0a828aad979629e) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision 12ff0e150f8506d554c1405e0c4d14abda72ca4c) @@ -408,6 +408,7 @@ languageCollection.add(new String("button.no")); languageCollection.add(new String("error.title")); languageCollection.add(new String("label.grouping.max.num.in.group.heading")); + languageCollection.add(new String("label.grouping.popup.drag.selection.message")); String languageOutput = ""; Index: lams_monitoring/web/branching/BranchManager.swf =================================================================== diff -u -redba2c28d900fba6e7bb761fb0a828aad979629e -r12ff0e150f8506d554c1405e0c4d14abda72ca4c Binary files differ Index: lams_monitoring/web/grouping/GroupManager.swf =================================================================== diff -u -redba2c28d900fba6e7bb761fb0a828aad979629e -r12ff0e150f8506d554c1405e0c4d14abda72ca4c Binary files differ