Index: lams_build/lib/jabber/JabberHTTPBind-1.1.1.jar
===================================================================
diff -u -r4b24094f139dd10a9779ce6e678cb8ca38317148 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_build/lib/lams/lams-monitoring.jar
===================================================================
diff -u -r8386a3fecd9c7baf6ed69d499016dedd8a83eac6 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r8386a3fecd9c7baf6ed69d499016dedd8a83eac6 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_central/conf/flashxml/lams/defaultTheme.xml
===================================================================
diff -u -r26cc52350052392fed362c09ccb27a8ef43ce845 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_central/conf/flashxml/lams/defaultTheme.xml (.../defaultTheme.xml) (revision 26cc52350052392fed362c09ccb27a8ef43ce845)
+++ lams_central/conf/flashxml/lams/defaultTheme.xml (.../defaultTheme.xml) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -1 +1 @@
-0x33364810Verdana0x669BF20x669BF20x669BF2insetdefaultbutton0x3336489Verdana0xBFFFBF0xBFFFBF0xBFFFBF0x669BF2label0x33364812VerdanaPIlabel0x33364810VerdanaCALabel0x33364811VerdananoneEndGatelabel0x3336487VerdanaLFWindow0x33364814Verdana0xBFFFBF0xBFFFBF0xBFFFBFinsettreeview0x33364814Verdana0xBFFFBF0xBFFFBF0xBFFFBFElasticdatagrid0x33364814Verdana0xBFFFBF0xBFFFBF0xBFFFBFElasticcombo0x33364811Verdana0xBFFFBF0xBFFFBF0xBFFFBFpicombo0x3336489Verdana0xBFFFBF0xBFFFBF0xBFFFBFLFMenuBar0x33364811Verdana0xBFFFBF0xBFFFBF0xBFFFBFBGPaneloutset0xC2D5FEFlowPanelnone0xC2D5FEWZPaneloutset0xDBE6FDMHPanelnone0xDBE6FDTAPaneloutset0xC2D5FE0x000000scrollpane0x669BF2textarea0x333648Verdana10CanvasPanel0xFCFCFCACTPanelNone0xC2D5FEACTPanel0None0xE1E7E7ACTPanel1None0xC2D5FEACTPanel2None0xFFFDBEACTPanel3None0xDDFCB1ACTPanel4None0xFFEEC8ACTPanel5None0xE9E2F5OptActContainerPanelinset0x25a56fOptActPanelnone0xd8ffefparallelHeadPaneloutset0x4684F7OptHeadPaneloutset0x4684F7ACTPanelNegativeNone0x000000smallLabel0x333648 10 VerdanaTAPanelSelected0x1B6BA7redLabel0xFF0000 12 VerdanaboldTAPanelRollover0xFFFFFFoutsetBGPanelShadow0xAFC8FFCAHighlightBorder0x266DEELTVLearnerText0x555555Verdana11bold0xE7EEFEsolidAboutDialogScpGeneralItem0x66666611VerdanaAboutDialogScpHeaderItem0x66666611VerdanaboldAboutDialogPanel0xFFFFFFnoneAlertDialog1000100010001000IndexBar0x1647BEIndexButtonTahoma12IndexTextFieldTahoma120x333333progressBar0xEAF9FF0x0033660xC4D6FF0x003366branchingDiagram0x0000000x0000000xCC0000BlueTextArea0xC2D5FE
\ No newline at end of file
+0x33364810Verdana0x669BF20x669BF20x669BF2insetdefaultbutton0x3336489Verdana0xBFFFBF0xBFFFBF0xBFFFBF0x669BF2label0x33364812VerdanaPIlabel0x33364810VerdanaCALabel0x33364811VerdananoneEndGatelabel0x3336487VerdanaLFWindow0x33364814Verdana0xBFFFBF0xBFFFBF0xBFFFBFinsettreeview0x33364814Verdana0xBFFFBF0xBFFFBF0xBFFFBFElasticdatagrid0x33364814Verdana0xBFFFBF0xBFFFBF0xBFFFBFElasticcombo0x33364811Verdana0xBFFFBF0xBFFFBF0xBFFFBFpicombo0x3336489Verdana0xBFFFBF0xBFFFBF0xBFFFBFLFMenuBar0x33364811Verdana0xBFFFBF0xBFFFBF0xBFFFBFBGPaneloutset0xC2D5FEFlowPanelnone0xC2D5FEWZPaneloutset0xDBE6FDMHPanelnone0xDBE6FDTAPaneloutset0xC2D5FE0x000000scrollpane0x669BF2textarea0x333648Verdana10CanvasPanel0xFCFCFCACTPanelNone0xC2D5FEACTPanel0None0xE1E7E7ACTPanel1None0xC2D5FEACTPanel2None0xFFFDBEACTPanel3None0xDDFCB1ACTPanel4None0xFFEEC8ACTPanel5None0xE9E2F5OptActContainerPanelinset0x25a56fOptActPanelnone0xd8ffefparallelHeadPaneloutset0x4684F7OptHeadPaneloutset0x4684F7ACTPanelNegativeNone0x000000smallLabel0x333648 10 VerdanaTAPanelSelected0x1B6BA7redLabel0xFF0000 12 VerdanaboldTAPanelRollover0xFFFFFFoutsetBGPanelShadow0xAFC8FFCAHighlightBorder0x266DEELTVLearnerText0x555555Verdana11bold0xE7EEFEsolidAboutDialogScpGeneralItem0x66666611VerdanaAboutDialogScpHeaderItem0x66666611VerdanaboldAboutDialogPanel0xFFFFFFnoneAlertDialog1000100010001000IndexBar0x1647BEIndexButtonTahoma12IndexTextFieldTahoma120x333333progressBar0xEAF9FF0x0033660xC4D6FF0x003366branchingDiagram0x0000000x0000000xCC0000BlueTextArea0xC2D5FELightBlueTextArea0x669BF2None
\ No newline at end of file
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java
===================================================================
diff -u -r961e65c76e64f2fe8ed146302e3818daac94890d -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java (.../LessonManagerSoapBindingImpl.java) (revision 961e65c76e64f2fe8ed146302e3818daac94890d)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java (.../LessonManagerSoapBindingImpl.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -72,7 +72,7 @@
countryIsoCode, langIsoCode, null);
// 1. init lesson
Lesson lesson = monitoringService.initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap
- .getOrganisation().getOrganisationId(), userMap.getUser().getUserId(), customCSV, Boolean.FALSE, Boolean.FALSE);
+ .getOrganisation().getOrganisationId(), userMap.getUser().getUserId(), customCSV, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE);
// 2. create lessonClass for lesson
createLessonClass(lesson, orgMap.getOrganisation(), userMap.getUser());
// 3. start lesson
@@ -94,7 +94,7 @@
countryIsoCode, langIsoCode, null);
// 1. init lesson
Lesson lesson = monitoringService.initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap
- .getOrganisation().getOrganisationId(), userMap.getUser().getUserId(), customCSV, Boolean.FALSE, Boolean.FALSE);
+ .getOrganisation().getOrganisationId(), userMap.getUser().getUserId(), customCSV, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE);
// 2. create lessonClass for lesson
createLessonClass(lesson, orgMap.getOrganisation(), userMap.getUser());
// 3. schedule lesson
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java
===================================================================
diff -u -r961e65c76e64f2fe8ed146302e3818daac94890d -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java (.../LessonJoinServlet.java) (revision 961e65c76e64f2fe8ed146302e3818daac94890d)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java (.../LessonJoinServlet.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -251,6 +251,7 @@
Boolean learnerExportAvailable;
Boolean learnerPresenceAvailable;
Boolean learnerImAvailable;
+ Boolean liveEditEnabled;
Integer ownerUserId;
Organisation org = (Organisation)userService.findById(Organisation.class, orgId);
String learnerGroupName;
@@ -267,6 +268,7 @@
learnerExportAvailable = l.getLearnerExportAvailable();
learnerPresenceAvailable = l.getLearnerPresenceAvailable();
learnerImAvailable = l.getLearnerImAvailable();
+ liveEditEnabled = l.getLiveEditEnabled();
ownerUserId = l.getUser().getUserId();
learnerGroupName = l.getLessonClass().getLearnersGroup().getGroupName();
staffGroupName = l.getLessonClass().getStaffGroup().getGroupName();
@@ -279,14 +281,15 @@
learnerExportAvailable = true;
learnerPresenceAvailable = false;
learnerImAvailable = false;
+ liveEditEnabled = false;
ownerUserId = ld.getUser().getUserId();
learnerGroupName = org.getName() + " Learners";
staffGroupName = org.getName() + " Staff";
Vector userDTOs = userService.getUsersFromOrganisationByRole(orgId, Role.MONITOR, false);
staffList = getUsersFromDTOs(userDTOs);
}
Lesson lesson = monitoringService.initializeLesson(lessonName, lessonDescription, learnerExportAvailable,
- ldId, orgId, ownerUserId, null, learnerPresenceAvailable, learnerImAvailable);
+ ldId, orgId, ownerUserId, null, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
monitoringService.createLessonClassForLesson(lesson.getLessonId().longValue(), org,
learnerGroupName, learnerList, staffGroupName, staffList, ownerUserId);
monitoringService.startLesson(lesson.getLessonId().longValue(), ownerUserId);
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java
===================================================================
diff -u -r961e65c76e64f2fe8ed146302e3818daac94890d -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision 961e65c76e64f2fe8ed146302e3818daac94890d)
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -288,7 +288,7 @@
Lesson lesson = monitoringService.initializeLesson(title, desc, Boolean.TRUE, ldId,
orgMap.getOrganisation().getOrganisationId(),
userMap.getUser().getUserId(),
- customCSV, Boolean.FALSE, Boolean.FALSE);
+ customCSV, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE);
// 2. create lessonClass for lesson
createLessonClass(lesson, orgMap.getOrganisation(), userMap
.getUser());
@@ -319,7 +319,7 @@
Lesson lesson = monitoringService
.initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap
.getOrganisation().getOrganisationId(), userMap
- .getUser().getUserId(), customCSV, false, false);
+ .getUser().getUserId(), customCSV, false, false, false);
// 2. create lessonClass for lesson
createLessonClass(lesson, orgMap.getOrganisation(), userMap
.getUser());
@@ -530,7 +530,7 @@
serverMap, userMap, courseId, countryIsoCode, langIsoCode, null);
// 1. init lesson
Lesson lesson = monitoringService
- .initializeLessonForPreview(title, desc, ldId, userMap.getUser().getUserId(), customCSV, false, false);
+ .initializeLessonForPreview(title, desc, ldId, userMap.getUser().getUserId(), customCSV, false, false, false);
// 2. create lessonClass for lesson
monitoringService.createPreviewClassForLesson(userMap.getUser().getUserId(), lesson.getLessonId());
Index: lams_common/db/sql/create_lams_11_tables.sql
===================================================================
diff -u -r8386a3fecd9c7baf6ed69d499016dedd8a83eac6 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 8386a3fecd9c7baf6ed69d499016dedd8a83eac6)
+++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -652,6 +652,7 @@
, learner_exportport_avail TINYINT(1) DEFAULT 1
, learner_presence_avail TINYINT(1) DEFAULT 0
, learner_im_avail TINYINT(1) DEFAULT 0
+ , live_edit_enabled TINYINT(1) DEFAULT 0
, locked_for_edit TINYINT DEFAULT 0
, version INTEGER DEFAULT 1
, PRIMARY KEY (lesson_id)
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql
===================================================================
diff -u -r757be0772485996602597fd02ec0edd6b79a9cb4 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql (.../patch0013_updateFrom21.sql) (revision 757be0772485996602597fd02ec0edd6b79a9cb4)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql (.../patch0013_updateFrom21.sql) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -67,6 +67,9 @@
UPDATE lams_configuration SET config_key='TruststorePath' WHERE config_key='LDAPTruststorePath';
UPDATE lams_configuration SET config_key='TruststorePassword' WHERE config_key='LDAPTruststorePassword';
+-- LDEV-1260 - local live edit field added
+ALTER TABLE lams_lesson ADD COLUMN live_edit_enabled TINYINT(1) DEFAULT 0;
+
----------------------Put all sql statements above here-------------------------
-- If there were no errors, commit and restore autocommit to on
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java
===================================================================
diff -u -r4b24094f139dd10a9779ce6e678cb8ca38317148 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -132,6 +132,9 @@
/** Persistent field. Defaults to FALSE if not set to anything by a constructor parameter. */
private Boolean learnerImAvailable;
+ /** Persistent field. Defaults to FALSE if not set to anything by a constructor parameter. */
+ private Boolean liveEditEnabled;
+
//---------------------------------------------------------------------
// constructors
//---------------------------------------------------------------------
@@ -146,10 +149,10 @@
*/
public Lesson(String name,String description,Date createDateTime, User user, Integer lessonStateId,
Integer previousLessonStateId, Boolean learnerExportAvailable,
- LearningDesign learningDesign,Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable)
+ LearningDesign learningDesign, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled)
{
this(null,name,description,createDateTime,null,null,user,lessonStateId,previousLessonStateId,
- learnerExportAvailable,false, learningDesign,null,null,learnerProgresses, learnerPresenceAvailable, learnerImAvailable);
+ learnerExportAvailable,false, learningDesign,null,null,learnerProgresses, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
}
/**
@@ -159,17 +162,17 @@
*/
public Lesson(String name,String description,Date createDateTime, User user, Integer lessonStateId, Integer previousLessonStateId,
Boolean learnerExportAvailable, LearningDesign learningDesign, LessonClass lessonClass,
- Organisation organisation, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable)
+ Organisation organisation, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled)
{
this(null,name,description,createDateTime,null,null,user,lessonStateId,previousLessonStateId,
- learnerExportAvailable, false, learningDesign,lessonClass,organisation,learnerProgresses, learnerPresenceAvailable, learnerImAvailable);
+ learnerExportAvailable, false, learningDesign,lessonClass,organisation,learnerProgresses, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
}
/** full constructor */
public Lesson(Long lessonId,String name,String description, Date createDateTime, Date startDateTime, Date endDateTime, User user,
Integer lessonStateId, Integer previousLessonStateId, Boolean learnerExportAvailable, Boolean lockedForEdit,
LearningDesign learningDesign, LessonClass lessonClass,
- Organisation organisation, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable)
+ Organisation organisation, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled)
{
this.lessonId = lessonId;
this.lessonName = name;
@@ -187,7 +190,8 @@
this.learningDesign = learningDesign;
this.lessonClass = lessonClass;
this.organisation = organisation;
- this.learnerProgresses = learnerProgresses;
+ this.learnerProgresses = learnerProgresses;
+ this.liveEditEnabled = liveEditEnabled;
}
/**
* Factory method that create a new lesson. It initialized all necessary
@@ -209,7 +213,8 @@
LearningDesign ld,
LessonClass newLessonClass,
Boolean learnerPresenceAvailable,
- Boolean learnerImAvailable)
+ Boolean learnerImAvailable,
+ Boolean liveEditEnabled)
{
//setup new lesson
return new Lesson(lessonName,
@@ -224,6 +229,7 @@
organisation,
new HashSet(), //learner progress
false,
+ false,
false);
}
@@ -243,7 +249,8 @@
Boolean learnerExportAvailable,
LearningDesign ld,
Boolean learnerPresenceAvailable,
- Boolean learnerImAvailable)
+ Boolean learnerImAvailable,
+ Boolean liveEditEnabled)
{
return new Lesson(lessonName,
lessonDescription,
@@ -255,7 +262,8 @@
ld,
new HashSet(),
learnerPresenceAvailable,
- learnerImAvailable);
+ learnerImAvailable,
+ liveEditEnabled);
}
//---------------------------------------------------------------------
// Getters and Setters
@@ -458,6 +466,18 @@
this.learnerImAvailable = learnerImAvailable;
}
+ /**
+ * @hibernate.property type="java.lang.Boolean" column="live_edit_enabled"
+ * length="1"
+ */
+ public Boolean getLiveEditEnabled() {
+ return liveEditEnabled;
+ }
+
+ public void setLiveEditEnabled(Boolean liveEditEnabled) {
+ this.liveEditEnabled = liveEditEnabled;
+ }
+
/**
* @hibernate.property type="java.lang.Boolean" column="locked_for_edit"
* length="1"
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDetailsDTO.java
===================================================================
diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDetailsDTO.java (.../LessonDetailsDTO.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDetailsDTO.java (.../LessonDetailsDTO.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -57,6 +57,9 @@
private Integer numberStartedLearners;
private Boolean learnerExportAvailable;
private Boolean locked_for_edit;
+ private Boolean learnerPresenceAvailable;
+ private Boolean learnerImAvailable;
+ private Boolean liveEditEnabled;
/** Create the DTO based on the lesson. Sets up all the fields except numberStartedLearners */
public LessonDetailsDTO(Lesson lesson){
@@ -115,6 +118,11 @@
this.learnerExportAvailable = lesson.getLearnerExportAvailable();
+ this.learnerPresenceAvailable = lesson.getLearnerPresenceAvailable();
+ this.learnerImAvailable = lesson.getLearnerImAvailable();
+
+ this.liveEditEnabled = lesson.getLiveEditEnabled();
+
this.locked_for_edit = lesson.getLockedForEdit();
}
public Date getScheduleEndDate() {
@@ -236,7 +244,16 @@
public Boolean getLearnerExportAvailable() {
return learnerExportAvailable;
}
+ public Boolean getLearnerPresenceAvailable() {
+ return learnerPresenceAvailable;
+ }
+ public Boolean getLearnerImAvailable() {
+ return learnerImAvailable;
+ }
public Boolean getLockedForEdit() {
return locked_for_edit;
}
+ public Boolean getLiveEditEnabled() {
+ return liveEditEnabled;
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java
===================================================================
diff -u -r4b24094f139dd10a9779ce6e678cb8ca38317148 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148)
+++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -250,7 +250,8 @@
testOrg,
new HashSet(),
false,
- false);//learner progress
+ false,
+ false);
}
Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java
===================================================================
diff -u -r4b24094f139dd10a9779ce6e678cb8ca38317148 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148)
+++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -122,6 +122,7 @@
true,
testLearningDesign,
false,
+ false,
false);
try
Index: lams_common/test/java/org/lamsfoundation/lams/lesson/service/TestLessonService.java
===================================================================
diff -u -r4b24094f139dd10a9779ce6e678cb8ca38317148 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_common/test/java/org/lamsfoundation/lams/lesson/service/TestLessonService.java (.../TestLessonService.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148)
+++ lams_common/test/java/org/lamsfoundation/lams/lesson/service/TestLessonService.java (.../TestLessonService.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -79,7 +79,7 @@
User test1 = userManagementService.getUserByLogin(TEST1_USER_LOGIN);
// this lesson isn't valid as it doesn't have a learning design
- Lesson newLesson = Lesson.createNewLessonWithoutClass("test lesson", "test lesson", mmm, true, null, false, false);
+ Lesson newLesson = Lesson.createNewLessonWithoutClass("test lesson", "test lesson", mmm, true, null, false, false, false);
lessonDAO.saveLesson(newLesson);
Organisation organisation = (Organisation) baseDAO.find(Organisation.class, TEST_ORG_ID);
Index: lams_flash/src/central/flash/lam_addseq_wiz.fla
===================================================================
diff -u -r53a530570087c6901259fb2958a4b7974df55372 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_flash/src/central/flash/lams_wizard_main.fla
===================================================================
diff -u -rde65d00b5bf887f55beabea327159f0df35f0933 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_flash/src/central/flash/main_addseq.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/main_addseq.as (.../main_addseq.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/main_addseq.as (.../main_addseq.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -1,5 +1,6 @@
import org.lamsfoundation.lams.wizard.Application;
import org.lamsfoundation.lams.common.util.StringUtils;
+import org.lamsfoundation.lams.common.util.Debugger;
//Temp values to be removed / repplaced at deployment
/**/
@@ -30,7 +31,6 @@
Debugger.log('ClassID is not defined, using defualt:'+_root.classID,Debugger.CRITICAL,'main','ROOT');
}
-
if(StringUtils.isEmpty(build)){
_root.build = 2.0;
Debugger.log('Build is not defined, using defualt:'+_root.build,Debugger.CRITICAL,'main','ROOT');
@@ -40,6 +40,11 @@
_root.langDate = "01-01-1970";
}
+if(StringUtils.isEmpty(editOnFly)){
+ _root.editOnFly = false;
+ Debugger.log('editOnFly is not defined, using defualt:'+_root.allowEditOnFly,Debugger.CRITICAL,'main','ROOT');
+}
+
//Set stage alignment to top left and prent scaling
Stage.align = "TL";
Stage.scaleMode = "noScale";
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as
===================================================================
diff -u -r64f42c88ebf08393b1c53bbd00c3cd4fec211c10 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 64f42c88ebf08393b1c53bbd00c3cd4fec211c10)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -647,11 +647,14 @@
* @param designID
* @param orgID
* @param lExportPortfolio
+ * @param enablePresence
+ * @param enableIm
+ * @param enableLiveEdit
*
* @return data obj
*/
- public static function getDataForInitializing(title:String, description:String, designID:Number, orgID:Number, lExportPortfolio:Boolean, enablePresence:Boolean, enableIm:Boolean):Object{
+ public static function getDataForInitializing(title:String, description:String, designID:Number, orgID:Number, lExportPortfolio:Boolean, enablePresence:Boolean, enableIm:Boolean, enableLiveEdit:Boolean, numberLearnersSplit:Number, numberLessonsSplit:Number, learners:Hashtable, learnerGroupName:String, staff:Hashtable):Object{
var data:Object = new Object();
if(title) { data.lessonName = title; }
@@ -661,15 +664,36 @@
if(orgID) { data.organisationID = orgID; }
else { data.organisationID = Config.NUMERIC_NULL_VALUE; }
- if(lExportPortfolio != null) { data.learnerExportPortfolio = lExportPortfolio }
- else { data.learnerExportPortfolio = false }
+ if (lExportPortfolio != null) { data.learnerExportPortfolio = lExportPortfolio; }
+ else { data.learnerExportPortfolio = false; }
- if(enablePresence != null) { data.enablePresence = enablePresence }
- else { data.enablePresence = false }
+ if (enablePresence != null) { data.enablePresence = enablePresence; }
+ else { data.enablePresence = false; }
- if(enableIm != null) { data.enableIm = enableIm }
- else { data.enableIm = false }
+ if (enableIm != null) { data.enableIm = enableIm; }
+ else { data.enableIm = false; }
+
+ if (enableLiveEdit != null) { data.enableLiveEdit = enableLiveEdit; }
+ else { data.enableLiveEdit = false; }
+ if (enableLiveEdit != null) { data.enableLiveEdit = enableLiveEdit; }
+ else { data.enableLiveEdit = false; }
+
+ if (numberLearnersSplit != null) { data.numberLearnersSplit = numberLearnersSplit; }
+ else { data.numberLearnersSplit = Config.NUMERIC_NULL_VALUE; }
+
+ if (numberLessonsSplit != null) { data.numberLessonsSplit = numberLessonsSplit; }
+ else { data.numberLessonsSplit = Config.NUMERIC_NULL_VALUE; }
+
+ if (learners != null) { data.learners = learners; }
+ else { data.learners = null; }
+
+ if (learnerGroupName != null) { data.learnerGroupName = learnerGroupName; }
+ else { data.learnerGroupName = ""; }
+
+ if (staff != null) { data.staff = staff; }
+ else { data.staff = null; }
+
data.copyType = COPY_TYPE_ID_RUN;
return data;
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorView.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorView.as (.../MonitorView.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorView.as (.../MonitorView.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -235,7 +235,11 @@
private function editFlyShowHide(v:Boolean):Void{
Debugger.log("test root val: " + _root.editOnFly, Debugger.CRITICAL, "editFlyShowHide", "MonitorView");
- editFly_btn.visible = (v && _root.editOnFly == 'true') ? true : false;
+ var editOnFlyLocal:Boolean = Application.getInstance().sequence.liveEditEnabled;
+
+ Debugger.log("test editOnFlyLocal val: " + editOnFlyLocal, Debugger.CRITICAL, "editFlyShowHide", "MonitorView");
+
+ editFly_btn.visible = (v && _root.editOnFly == 'true' && editOnFlyLocal) ? true : false;
Debugger.log("visible: " + editFly_btn.visible, Debugger.CRITICAL, "editFlyShowHide", "MonitorView");
}
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/Wizard.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/Wizard.as (.../Wizard.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/Wizard.as (.../Wizard.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -251,24 +251,45 @@
var learnerExpPortfolio:Boolean = resultDTO.learnerExpPortfolio;
var enablePresence:Boolean = resultDTO.enablePresence;
var enableIm:Boolean = resultDTO.enableIm;
+ var enableLiveEdit:Boolean = resultDTO.enableLiveEdit;
+ var learnerSelectMode:String = resultDTO.learnerSelectMode;
+ var learnersNbLessonsSplit:Number = resultDTO.learnersNbLessonsSplit;
+ var learnersNbLearnersSplit:Number = resultDTO.learnersNbLearnersSplit;
+
+ var modelDto:Object = wizardModel.getLessonClassData();
+ Debugger.log('modelDto: ' + modelDto,Debugger.MED,' initializeLesson','Wizard');
+ var learners:Hashtable = modelDto.learners;
+ Debugger.log('learners: ' + learners,Debugger.MED,' initializeLesson','Wizard');
+ var learnerGroupName:String = modelDto.groupName;
+ Debugger.log('learnerGroupName: ' + learnerGroupName,Debugger.MED,' initializeLesson','Wizard');
+ var staff:Hashtable = modelDto.staff;
+ Debugger.log('staff: ' + staff,Debugger.MED,' initializeLesson','Wizard');
+
// get data object to send to servlet
- var data = DesignDataModel.getDataForInitializing(lessonName, lessonDesc, designId, orgId, learnerExpPortfolio, enablePresence, enableIm);
+ var data = DesignDataModel.getDataForInitializing(lessonName, lessonDesc, designId, orgId, learnerExpPortfolio, enablePresence, enableIm, enableLiveEdit, learnersNbLearnersSplit, learnersNbLessonsSplit, learners, learnerGroupName, staff);
- trace(data.lessonName + data.enablePresence + data.enableIm);
- Debugger.log(data.lessonName + data.enablePresence + data.enableIm, Debugger.MED, "initializeLesson", "Wizard");
+ Debugger.log("calling servlet with data - lesson name: " + data.lessonName + " presence enabled: " +data.enablePresence + " im enabled: " +data.enableIm + " live edit enabled: " + data.enableLiveEdit + " learnersNbLessonsSplit: " + data.learnersNbLessonsSplit + " learnersNbLearnersSplit: " + data.learnersNbLearnersSplit, Debugger.MED, "initializeLesson", "Wizard");
// servlet call
- Application.getInstance().getComms().sendAndReceive(data, 'monitoring/initializeLesson', callback, false);
-
+ if (learnerSelectMode == "learnerSelectIndiv") {
+ Debugger.log("calling indiv initializeLesson servlet", Debugger.MED, "initializeLesson", "Wizard");
+ Application.getInstance().getComms().sendAndReceive(data, 'monitoring/initializeLesson', callback, false);
+ }
+ else if (learnerSelectMode == "learnerSelectSplit") {
+ Debugger.log("calling split initializeLesson servlet (start lessons)", Debugger.MED, "initializeLesson", "Wizard");
+ Application.getInstance().getComms().sendAndReceive(data, 'monitoring/initializeAndCreateLessons', callback, false);
+ }
}
public function startLesson(isScheduled:Boolean, lessonID:Number, datetime:String){
var callback:Function = Proxy.create(this, onStartLesson);
- if(isScheduled){
+ if (isScheduled) {
+ Debugger.log("calling start lesson scheduled", Debugger.MED, "startLesson", "Wizard");
Application.getInstance().getComms().getRequest('monitoring/monitoring.do?method=startOnScheduleLesson&lessonStartDate=' + datetime + '&lessonID=' + lessonID + '&userID=' + _root.userID, callback);
} else {
+ Debugger.log("calling start lesson non-scheduled", Debugger.MED, "startLesson", "Wizard");
Application.getInstance().getComms().getRequest('monitoring/monitoring.do?method=startLesson&lessonID=' + lessonID + '&userID=' + _root.userID, callback);
}
}
@@ -290,21 +311,73 @@
var dto:Object = wizardModel.getLessonClassData();
var callback:Function = Proxy.create(this,onCreateLessonClass);
+ Debugger.log("calling createLessonClass", Debugger.MED, "createLessonClass", "Wizard");
Application.getInstance().getComms().sendAndReceive(dto,"monitoring/createLessonClass?userID=" + _root.userID,callback,false);
}
public function onCreateLessonClass(r):Void{
if(r instanceof LFError) {
r.showErrorAlert();
- } else if(r) {
+ } else if (r) {
+ Debugger.log("callback onCreateLessonClass called", Debugger.MED, "onCreateLessonClass", "Wizard");
// lesson class created
wizardModel.broadcastViewUpdate("SAVED_LC", wizardModel.resultDTO.mode);
} else {
// failed creating lesson class
}
}
+
+ public function startMultipleLessons():Void {
+ var callback:Function = Proxy.create(this, onStartMultipleLessons);
+ var lessonIDs:Array = wizardModel.lessonIDs;
+ var startedLessonsCount:Number = wizardModel.startedLessonsCount;
+
+ Debugger.log("calling start lesson non-scheduled", Debugger.MED, "startMultipleLessons", "Wizard");
+ Debugger.log("monitoring/monitoring.do?method=startLesson&lessonID=" + lessonIDs[startedLessonsCount] + '&userID=' + _root.userID, Debugger.MED, "startMultipleLessons", "Wizard");
+ Application.getInstance().getComms().getRequest('monitoring/monitoring.do?method=startLesson&lessonID=' + lessonIDs[startedLessonsCount] + '&userID=' + _root.userID, callback);
+ }
+
+ public function onStartMultipleLessons(b:Boolean):Void {
+ if (b) {
+ wizardModel.startedLessonsCount++;
+ Debugger.log("callback onStartMultipleLessons called:" + wizardModel.startedLessonsCount, Debugger.MED, "onStartMultipleLessons", "Wizard");
+ if (wizardModel.startedLessonsCount == wizardModel.lessonIDs.length) {
+ Debugger.log("onStartMultipleLessons complete" + wizardModel.startedLessonsCount, Debugger.MED, "onStartMultipleLessons", "Wizard");
+ wizardModel.broadcastViewUpdate("LESSON_STARTED", WizardView.FINISH_MODE);
+ }
+ else {
+ Debugger.log("calling startMultipleLessons " + (wizardModel.startedLessonsCount + 1), Debugger.MED, "onStartMultipleLessons", "Wizard");
+ startMultipleLessons();
+ }
+ }
+ }
+ public function startMultipleScheduledLessons():Void {
+ var callback:Function = Proxy.create(this, onStartMultipleScheduledLessons);
+ var lessonIDs:Array = wizardModel.lessonIDs;
+ var startedLessonsCount:Number = wizardModel.startedLessonsCount;
+ var scheduleDateTime:String = wizardModel.resultDTO.scheduleDateTime
+
+ Debugger.log("calling start lesson scheduled", Debugger.MED, "startMultipleScheduledLessons", "Wizard");
+ Application.getInstance().getComms().getRequest('monitoring/monitoring.do?method=startOnScheduleLesson&lessonStartDate=' + scheduleDateTime + '&lessonID=' + lessonIDs[startedLessonsCount] + '&userID=' + _root.userID, callback);
+ }
+
+ public function onStartMultipleScheduledLessons(b:Boolean):Void {
+ if (b) {
+ wizardModel.startedLessonsCount++;
+ Debugger.log("callback onStartMultipleScheduledLessons called:" + wizardModel.startedLessonsCount, Debugger.MED, "onStartMultipleLessons", "Wizard");
+ if (wizardModel.startedLessonsCount == wizardModel.lessonIDs.length) {
+ Debugger.log("onStartMultipleScheduledLessons complete" + wizardModel.startedLessonsCount, Debugger.MED, "onStartMultipleLessons", "Wizard");
+ wizardModel.broadcastViewUpdate("LESSON_STARTED", WizardView.FINISH_MODE);
+ }
+ else {
+ Debugger.log("calling startMultipleScheduledLessons " + (wizardModel.startedLessonsCount + 1), Debugger.MED, "onStartMultipleLessons", "Wizard");
+ startMultipleScheduledLessons();
+ }
+ }
+ }
+
/**
*
* @usage
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardController.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardController.as (.../WizardController.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardController.as (.../WizardController.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -199,20 +199,31 @@
*
*/
- public function initializeLesson(resultDTO:Object){
+ public function initializeLesson(resultDTO:Object) {
+ var callback:Function;
_wizardModel.resultDTO = resultDTO;
- var callback:Function = Proxy.create(this,saveLessonClass);
+
+ if (resultDTO.learnerSelectMode == "learnerSelectIndiv") {
+ Debugger.log("Calling initializeLesson with indiv callback" ,Debugger.GEN,'initializeLesson','org.lamsfoundation.lams.MonitorController');
+ callback = Proxy.create(this, saveLessonClass);
+ }
+ else if (resultDTO.learnerSelectMode == "learnerSelectSplit") {
+ Debugger.log("Calling initializeLesson with split callback" ,Debugger.GEN,'initializeLesson','org.lamsfoundation.lams.MonitorController');
+ callback = Proxy.create(this, onCreateAndInitMultipleLessons);
+ }
+
_wizardModel.getWizard().initializeLesson(resultDTO, callback);
}
-
+
/**
* Save Lesson Class after Lesson is initialized
*
* @param lessonID
* @return
*/
- public function saveLessonClass(r){
+ public function saveLessonClass(r) {
+ Debugger.log("Callback saveLessonClass called" ,Debugger.GEN,'saveLessonClass','org.lamsfoundation.lams.MonitorController');
if(r instanceof LFError) {
r.showMessageConfirm();
} else {
@@ -221,6 +232,17 @@
}
}
+ public function onCreateAndInitMultipleLessons(r) {
+ Debugger.log("Callback onCreateAndInitMultipleLessons called" + r,Debugger.GEN,'onCreateAndInitMultipleLessons','org.lamsfoundation.lams.MonitorController');
+ if(r instanceof LFError) {
+ r.showMessageConfirm();
+ } else {
+ _wizardModel.lessonIDs = r;
+ Debugger.log("lessonIDs " + _wizardModel.lessonIDs + _wizardModel.lessonIDs[0], Debugger.GEN,'onCreateAndInitMultipleLessons','org.lamsfoundation.lams.MonitorController');
+ _wizardModel.broadcastViewUpdate("SAVED_LC", _wizardModel.resultDTO.mode);
+ }
+ }
+
private function getView():WizardView{
return WizardView(super.getView());
}
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardModel.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardModel.as (.../WizardModel.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardModel.as (.../WizardModel.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -62,6 +62,9 @@
private var _org:Organisation;
private var _lessonID:Number;
+ private var _lessonIDs:Array;
+ private var _startedLessonsCount:Number = 0;
+
private var selectedTab:Number;
// state data
@@ -437,6 +440,22 @@
_lessonID = a;
}
+ public function get lessonIDs():Array{
+ return _lessonIDs;
+ }
+
+ public function set lessonIDs(a:Array){
+ _lessonIDs = a;
+ }
+
+ public function get startedLessonsCount():Number{
+ return _startedLessonsCount;
+ }
+
+ public function set startedLessonsCount(a:Number){
+ _startedLessonsCount = a;
+ }
+
//Accessors for x + y coordinates
public function get x():Number{
return __x;
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardView.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardView.as (.../WizardView.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/WizardView.as (.../WizardView.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -615,10 +615,16 @@
updateScreen(wm.stepID, wm.stepID+1);
break;
case START_MODE :
- wm.getWizard().startLesson(false, wm.lessonID);
+ if(wm.resultDTO.learnerSelectMode == "learnerSelectIndiv")
+ wm.getWizard().startLesson(false, wm.lessonID);
+ else if (wm.resultDTO.learnerSelectMode == "learnerSelectSplit")
+ wm.getWizard().startMultipleLessons();
break;
case START_SCH_MODE :
- wm.getWizard().startLesson(true, wm.lessonID, wm.resultDTO.scheduleDateTime);
+ if(wm.resultDTO.learnerSelectMode == "learnerSelectIndiv")
+ wm.getWizard().startLesson(true, wm.lessonID, wm.resultDTO.scheduleDateTime);
+ else if (wm.resultDTO.learnerSelectMode == "learnerSelectSplit")
+ wm.getWizard().startMultipleScheduledLessons();
break;
default:
break;
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardLessonDetailsView.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardLessonDetailsView.as (.../WizardLessonDetailsView.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardLessonDetailsView.as (.../WizardLessonDetailsView.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -51,13 +51,14 @@
private var resourceDesc_txa:TextArea;
public static var SUMMERY_X:Number = 11;
- public static var SUMMERY_Y:Number = 140;
+ public static var SUMMERY_Y:Number = 114;
public static var SUMMERY_W:Number = 500;
public static var SUMMERY_H:Number = 20;
public static var SUMMERY_OFFSET:Number = 2;
private var schedule_cb:CheckBox;
private var learner_expp_cb:CheckBox;
+ private var learner_eliveedit_cb:CheckBox;
private var learner_enpres_cb:CheckBox;
private var learner_enim_cb:CheckBox;
private var start_btn:Button;
@@ -151,6 +152,14 @@
schedule_time._visible = true;
scheduleDate_dt.visible = true;
+ if (StringUtils.stringToBool(_root.editOnFly)) {
+ learner_eliveedit_cb.selected = true;
+ learner_eliveedit_cb.visible = true;
+ }
+ else {
+ learner_eliveedit_cb.selected = false;
+ }
+
// check for NULL value
if(resourceDesc_txa.text == WizardView.STRING_NULL){
resourceDesc_txa.text = "";
@@ -198,6 +207,7 @@
summery_scp.visible = false;
summery_lbl.visible = false;
learner_expp_cb.visible = false;
+ learner_eliveedit_cb.visible = false;
learner_enpres_cb.visible = false;
learner_enim_cb.visible = false;
schedule_cb.visible = false;
@@ -229,6 +239,7 @@
_parent.resultDTO.enablePresence = learner_enpres_cb.selected;
_parent.resultDTO.enableIm = learner_enim_cb.selected;
_parent.resultDTO.learnerExpPortfolio = learner_expp_cb.selected;
+ _parent.resultDTO.enableLiveEdit = learner_eliveedit_cb.selected;
return valid;
}
@@ -276,7 +287,12 @@
summery_lbl = this['wizardSummery_lbl_staff'];
// learners label
- summery_lbl_arr.push(this.attachMovie('Label', 'wizardSummery_lbl_learners', this.getNextHighestDepth(), {_x:SUMMERY_X+_parent.panel._x - this._x, _y:summery_lbl._y + summery_lbl._height+ SUMMERY_OFFSET, _width: SUMMERY_W, _height: SUMMERY_H, styleName: _tm.getStyleObject('label'), text:Dictionary.getValue('summery_learners_lbl') + ' ' + String(_parent.resultDTO.selectedLearners.length) + '/' + _parent.resultDTO.learnersListTotal}));
+ if (_parent.resultDTO.learnerSelectMode == "learnerSelectIndiv") {
+ summery_lbl_arr.push(this.attachMovie('Label', 'wizardSummery_lbl_learners', this.getNextHighestDepth(), {_x:SUMMERY_X+_parent.panel._x - this._x, _y:summery_lbl._y + summery_lbl._height+ SUMMERY_OFFSET, _width: SUMMERY_W, _height: SUMMERY_H, styleName: _tm.getStyleObject('label'), text:Dictionary.getValue('summery_learners_lbl') + ' ' + String(_parent.resultDTO.selectedLearners.length) + '/' + _parent.resultDTO.learnersListTotal}));
+ }
+ else {
+ summery_lbl_arr.push(this.attachMovie('Label', 'wizardSummery_lbl_learners', this.getNextHighestDepth(), {_x:SUMMERY_X+_parent.panel._x - this._x, _y:summery_lbl._y + summery_lbl._height+ SUMMERY_OFFSET, _width: SUMMERY_W, _height: SUMMERY_H, styleName: _tm.getStyleObject('label'), text:Dictionary.getValue('summery_learners_lbl') + ' ' + Dictionary.getValue('wizard_splitLearners_splitSumShort', [String(_parent.resultDTO.learnersNbLessonsSplit), String(_parent.resultDTO.learnersNbLearnersSplit)])}));
+ }
}
public function getScheduleDateTime(date:Date, timeStr:String):Object{
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardOrganisationView.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardOrganisationView.as (.../WizardOrganisationView.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardOrganisationView.as (.../WizardOrganisationView.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -53,7 +53,7 @@
private var org_treeview:Tree;
private var _staffList:Array;
- private var _learnerList:Array;
+ private var _learnerList:Array = null;
private var _learner_mc:MovieClip;
private var _staff_mc:MovieClip;
private var staff_scp:MovieClip; // staff/teachers container
@@ -62,35 +62,103 @@
private var learner_lbl:Label;
private var staff_selAll_cb:CheckBox;
private var learner_selAll_cb:CheckBox;
+ private var learner_split_cb:CheckBox;
+ private var splitLearners_mc:MovieClip;
+ private var splitNbLearnersTotal_lbl:Label;
+ private var splitLearnersPerLesson_lbl:Label;
+ private var splitLearnersPerLesson_txi:TextInput;
+ private var splitSummary_txa:TextArea;
+
+ private var intervalSetupSplitLabels:Number = 0;
+ private static var DATA_LOAD_CHECK_INTERVAL:Number = 500;
+ public static var LEARNER_SELECT_INDIV:String = "learnerSelectIndiv";
+ public static var LEARNER_SELECT_SPLIT:String = "learnerSelectSplit";
+ private var nbLessonsSplit:Number = 0;
+
private var _wizardController:WizardController;
//Defined so compiler can 'see' events added at runtime by EventDispatcher
private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
+
function WizardOrganisationView(){
mx.events.EventDispatcher.initialize(this);
-
}
public function init(m:Observable,c:Controller) {
super(m, c)
+
+ splitNbLearnersTotal_lbl = splitLearners_mc["splitNbLearnersTotal_lbl"];
+ splitLearnersPerLesson_lbl = splitLearners_mc["splitLearnersPerLesson_lbl"];
+ splitLearnersPerLesson_txi = splitLearners_mc["splitLearnersPerLesson_txi"];
+ splitSummary_txa = splitLearners_mc["splitSummary_txa"];
}
public function setupContent():Void {
staff_selAll_cb.addEventListener("click", Delegate.create(this, toogleStaffSelection));
learner_selAll_cb.addEventListener("click", Delegate.create(this, toogleLearnerSelection));
+ learner_split_cb.addEventListener("click", Delegate.create(this, toggleSplitLesson));
+ splitLearnersPerLesson_txi.addEventListener("keyUp", Delegate.create(this, updateSplitSummaryLabel));
}
public function setupLabels():Void {
staff_lbl.text = Dictionary.getValue('staff_lbl');
learner_lbl.text = Dictionary.getValue('learner_lbl');
staff_selAll_cb.label = Dictionary.getValue('wizard_selAll_cb_lbl');
learner_selAll_cb.label = Dictionary.getValue('wizard_selAll_cb_lbl');
+
+ intervalSetupSplitLabels = setInterval(Proxy.create(this, setupSplitLabels), DATA_LOAD_CHECK_INTERVAL);
}
+ private function setupSplitLabels():Void {
+ if (_learnerList) {
+ splitNbLearnersTotal_lbl.text = Dictionary.getValue('wizard_splitLearners_leanersInGroup_lbl') + " " + String(_learnerList.length);
+ splitLearnersPerLesson_lbl.text = Dictionary.getValue('wizard_splitLearners_LearnersPerLesson_lbl');
+ splitLearnersPerLesson_txi.text = "1";
+ updateSplitSummaryLabel();
+ clearInterval(intervalSetupSplitLabels);
+ }
+ }
+
+ private function updateSplitSummaryLabel() {
+ Debugger.log("updateSplitSummaryLabel _learnerList length: " + _learnerList.length, Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+
+ Debugger.log("updateSplitSummaryLabel", Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+ if (Number(splitLearnersPerLesson_txi.text) > _learnerList.length) {
+ Debugger.log("updateSplitSummaryLabel too high", Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+ splitLearnersPerLesson_txi.text = String(_learnerList.length);
+ }
+ else if (splitLearnersPerLesson_txi.text == "") {
+ Debugger.log("updateSplitSummaryLabel is blank", Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+ }
+ else if (Number(splitLearnersPerLesson_txi.text) < 1) {
+ Debugger.log("updateSplitSummaryLabel too low", Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+ splitLearnersPerLesson_txi.text = "1";
+ }
+ else if (!StringUtils.isANumber(splitLearnersPerLesson_txi.text)) {
+ Debugger.log("updateSplitSummaryLabel is not a number", Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+ splitLearnersPerLesson_txi.text = "1";
+ }
+
+ nbLessonsSplit = Math.floor(_learnerList.length / Number(splitLearnersPerLesson_txi.text));
+
+ if (_learnerList.length % Number(splitLearnersPerLesson_txi.text) != 0) {
+ nbLessonsSplit++;
+ }
+
+ if (splitLearnersPerLesson_txi.text == "" || nbLessonsSplit == NaN) {
+ splitSummary_txa.text = Dictionary.getValue('wizard_splitLearners_splitSum', ["-", "-"]);
+ }
+ else {
+ splitSummary_txa.text = Dictionary.getValue('wizard_splitLearners_splitSum', [String(nbLessonsSplit), splitLearnersPerLesson_txi.text]);
+ }
+
+ Debugger.log("updateSplitSummaryLabel nbLessonsSplit = " + nbLessonsSplit, Debugger.CRITICAL, "updateSplitSummaryLabel", "WizardOrganisationView");
+ }
+
public function setStyles(_tm:ThemeManager) {
var styleObj = _tm.getStyleObject('label');
@@ -99,11 +167,16 @@
styleObj = _tm.getStyleObject('scrollpane');
staff_scp.setStyle('styleName',styleObj);
- learner_scp.setStyle('styleName',styleObj);
+ learner_scp.setStyle('styleName', styleObj);
+ styleObj = _tm.getStyleObject('LightBlueTextArea');
+ splitSummary_txa.setStyle('styleName', styleObj);
}
public function show(v:Boolean):Void {
+ splitLearners_mc._visible = false;
+ learner_split_cb.selected = false;
+
org_treeview.visible = v;
staff_lbl.visible = v;
@@ -113,6 +186,7 @@
learner_scp.visible = v;
staff_selAll_cb.visible = v;
learner_selAll_cb.visible = v;
+ learner_split_cb.visible = v;
if(_parent.resultDTO.selectedJointLessonID != null) {
staff_selAll_cb.enabled = false;
@@ -155,14 +229,20 @@
}
}
- if(selectedLearners.length <= 0){
- valid = false;
- }
-
if(selectedStaff.length <= 0){
valid = false;
}
+ if (learner_split_cb.selected) {
+ if (nbLessonsSplit < 1 || nbLessonsSplit > _learnerList.length || splitLearnersPerLesson_txi.text == "" || nbLessonsSplit == NaN || !StringUtils.isANumber(splitLearnersPerLesson_txi.text)) {
+ valid = false;
+ }
+ }
+ else {
+ if(selectedLearners.length <= 0){
+ valid = false;
+ }
+ }
}
if(valid){
@@ -177,10 +257,21 @@
_parent.resultDTO.courseName = pnode.attributes.data.name;
}
- _parent.resultDTO.selectedStaff = selectedStaff;
- _parent.resultDTO.selectedLearners = selectedLearners;
+ if (learner_split_cb.selected) {
+ Debugger.log("adding lesson split variables to dto: " + LEARNER_SELECT_SPLIT + nbLessonsSplit + splitLearnersPerLesson_txi.text, Debugger.MED, "validate", "WizardOrganisationView");
+ _parent.resultDTO.learnerSelectMode = LEARNER_SELECT_SPLIT;
+ _parent.resultDTO.learnersNbLessonsSplit = nbLessonsSplit;
+ _parent.resultDTO.learnersNbLearnersSplit = Number(splitLearnersPerLesson_txi.text);
+ }
+ else {
+ Debugger.log("adding lesson indiv variables to dto", Debugger.MED, "validate", "WizardOrganisationView");
+ _parent.resultDTO.learnerSelectMode = LEARNER_SELECT_INDIV;
+ _parent.resultDTO.selectedLearners = selectedLearners;
+ _parent.resultDTO.learnersListTotal = learnerList.length;
+ }
+
+ _parent.resultDTO.selectedStaff = selectedStaff;
_parent.resultDTO.staffListTotal = staffList.length;
- _parent.resultDTO.learnersListTotal = learnerList.length;
var orgName:String = snode.attributes.data.name;
_parent.resultDTO.staffGroupName = Dictionary.getValue('staff_group_name', [orgName]);
@@ -202,7 +293,7 @@
* @param users Users to load
*/
- public function loadLearners(users:Array, _selected:Boolean):Void{
+ public function loadLearners(users:Array, _selected:Boolean):Void {
_learnerList = WizardView.clearScp(_learnerList);
_learner_mc = learner_scp.content;
@@ -223,7 +314,7 @@
learner_scp.redraw(true);
}
-
+
public function enableUsers(e:Boolean):Void {
for(var i=0; i < _learnerList.length; i++) {
if(e && !_learnerList[i].user_cb.enabled) _learnerList[i].user_cb.enabled = e;
@@ -328,6 +419,24 @@
loadLearners(wm.organisation.getLearners(), target.selected);
}
+ private function toggleSplitLesson(evt:Object) {
+ Debugger.log("Toggle split lesson", Debugger.GEN, "toogleSplitLesson", "WizardView");
+ var wm:WizardModel = WizardModel(getModel());
+
+ if (!learner_split_cb.selected) {
+ Debugger.log("learner_split_cb.enabled - load learners", Debugger.GEN, "toogleSplitLesson", "WizardView");
+ splitLearners_mc._visible = false;
+ learner_scp._visible = true;
+ learner_selAll_cb.visible = true;
+ }
+ else {
+ Debugger.log("!learner_split_cb.enabled - show movieclip", Debugger.GEN, "toogleSplitLesson", "WizardView");
+ learner_selAll_cb.visible = false;
+ learner_scp._visible = false;
+ splitLearners_mc._visible = true;
+ }
+ }
+
/**
* Overrides method in abstract view to ensure cortect type of controller is returned
* @usage
Index: lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardSummaryView.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardSummaryView.as (.../WizardSummaryView.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/central/flash/org/lamsfoundation/lams/wizard/steps/WizardSummaryView.as (.../WizardSummaryView.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -69,12 +69,19 @@
public function showConfirmMessage(mode:Number){
var msg:String = "";
var lessonName:String = "" + _parent.resultDTO.resourceTitle +"";
+ var nbLessons:String = "" + _parent.resultDTO.learnersNbLessonsSplit +"";
switch(mode){
case WizardView.FINISH_MODE :
msg = Dictionary.getValue('confirmMsg_3_txt', [lessonName]);
break;
case WizardView.START_MODE :
- msg = Dictionary.getValue('confirmMsg_1_txt', [lessonName]);
+ if (_parent.resultDTO.learnerSelectMode == "learnerSelectIndiv") {
+ Debugger.log("showConfirmMessage confirmMessage3 indiv", Debugger.MED, "showConfirmMessage", "WizardSummaryView");
+ msg = Dictionary.getValue('confirmMsg_1_txt', [lessonName]);
+ }
+ else {
+ msg = Dictionary.getValue('confirmMsg_4_txt', [nbLessons, lessonName]);
+ }
break;
case WizardView.START_SCH_MODE :
msg = Dictionary.getValue('confirmMsg_2_txt', [lessonName, unescape(_parent.resultDTO.scheduleDateTime)]);
Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/Sequence.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/common/flash/org/lamsfoundation/lams/common/Sequence.as (.../Sequence.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/Sequence.as (.../Sequence.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -89,6 +89,13 @@
public var addEventListener:Function;
public var removeEventListener:Function;
+ // presence data
+ private var _learnerPresenceAvailable:Boolean;
+ private var _learnerImAvailable:Boolean;
+
+ // live edit
+ private var _liveEditEnabled:Boolean;
+
/**
* Constructor.
*/
@@ -126,7 +133,9 @@
trace('populating seq object for start date:' + dto.scheduleStartDate);
Debugger.log('populating seq schedule date:'+dto.scheduleStartDate,Debugger.CRITICAL,'populateFromDTO','Sequence');
Debugger.log('populating seq start date:'+dto.startDateTime,Debugger.CRITICAL,'populateFromDTO','Sequence');
- Debugger.log('populating seq locked for eidt:'+dto.lockedForEdit,Debugger.CRITICAL,'populateFromDTO','Sequence');
+ Debugger.log('populating seq locked for eidt:' + dto.lockedForEdit, Debugger.CRITICAL, 'populateFromDTO', 'Sequence');
+ Debugger.log('populating seq presence:' + dto.learnerPresenceAvailable + "/" + dto.learnerImAvailable, Debugger.CRITICAL, 'populateFromDTO', 'Sequence');
+ Debugger.log('populating seq liveEdit:'+dto.liveEditEnabled + "/" + dto.learnerImAvailable,Debugger.CRITICAL,'populateFromDTO','Sequence');
_seqID = dto.lessonID;
_seqName = dto.lessonName;
@@ -158,6 +167,11 @@
_learnerExportAvailable = dto.learnerExportAvailable;
_locked_for_edit = dto.lockedForEdit;
+
+ _learnerPresenceAvailable = dto.learnerPresenceAvailable;
+ _learnerImAvailable = dto.learnerImAvailable;
+
+ _liveEditEnabled = dto.liveEditEnabled;
}
@@ -474,6 +488,30 @@
return _learnerExportAvailable;
}
+ public function set learnerPresenceAvailable(b:Boolean) {
+ _learnerPresenceAvailable = b;
+ }
+
+ public function get learnerPresenceAvailable():Boolean {
+ return _learnerPresenceAvailable;
+ }
+
+ public function set learnerImAvailable(b:Boolean) {
+ _learnerImAvailable = b;
+ }
+
+ public function get learnerImAvailable():Boolean {
+ return _learnerImAvailable;
+ }
+
+ public function set liveEditEnabled(b:Boolean) {
+ _liveEditEnabled = b;
+ }
+
+ public function get liveEditEnabled():Boolean {
+ return _liveEditEnabled;
+ }
+
public function set locked_for_edit(b:Boolean) {
_locked_for_edit = b;
}
Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/StringUtils.as
===================================================================
diff -u -r7b65bab3de4ed5068c5631a245c30cb4eaa8f098 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/StringUtils.as (.../StringUtils.as) (revision 7b65bab3de4ed5068c5631a245c30cb4eaa8f098)
+++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/StringUtils.as (.../StringUtils.as) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -338,5 +338,31 @@
}
return charArray;
}
+
+ public static function isANumber(s:String):Boolean {
+ for (var i:Number = 0; i < s.length; i++) {
+ Debugger.log("stringUtils isANumber char at " + i + ": " + s.charCodeAt(i), Debugger.MED, "isANumber", "StringUtils");
+ if (s.charCodeAt(i) > 57 || s.charCodeAt(i) < 48) {
+ Debugger.log("stringUtils isANumber false strlen: " + s.length, Debugger.MED, "isANumber", "StringUtils");
+ return false;
+ }
+ }
+ Debugger.log("stringUtils isANumber true with strlen: " + s.length, Debugger.MED, "isANumber", "StringUtils");
+ return true;
+ }
+ public static function stringToBool(string:String):Boolean{
+ switch(string){
+ case "1":
+ case "true":
+ case "yes":
+ return true;
+ case "0":
+ case "false":
+ case "no":
+ return false;
+ default:
+ return Boolean(string);
+ }
+ }
}
\ No newline at end of file
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java
===================================================================
diff -u -r77e7bd9d3814d4622d5bee45b40a96f7c101098d -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 77e7bd9d3814d4622d5bee45b40a96f7c101098d)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -80,7 +80,7 @@
*/
public Lesson initializeLesson(String lessonName, String lessonDescription, Boolean learnerExportAvailable,
long learningDesignId, Integer organisationId, Integer userID, String customCSV,
- Boolean learnerPresenceAvailable, Boolean learnerImAvailable);
+ Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled);
/**
* Initialize a new lesson so as to start the learning process for a normal
@@ -104,7 +104,7 @@
* design is not assigned to any workspace folder.
*/
public Lesson initializeLessonForPreview(String lessonName, String lessonDescription, long learningDesignId,
- Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable);
+ Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled);
/**
* Create a lession according to the input lession WDDX package. The sample
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java
===================================================================
diff -u -r77e7bd9d3814d4622d5bee45b40a96f7c101098d -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 77e7bd9d3814d4622d5bee45b40a96f7c101098d)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -154,7 +154,7 @@
private ILearningDesignDAO learningDesignDAO;
private IGroupingDAO groupingDAO;
-
+
private IGroupDAO groupDAO;
private ILearnerProgressDAO learnerProgressDAO;
@@ -292,7 +292,7 @@
public void setGroupDAO(IGroupDAO groupDAO) {
this.groupDAO = groupDAO;
}
-
+
/**
* @param groupingDAO
*/
@@ -380,7 +380,7 @@
*/
public Lesson initializeLesson(String lessonName, String lessonDescription, Boolean learnerExportAvailable,
long learningDesignId, Integer organisationId, Integer userID, String customCSV,
- Boolean learnerPresenceAvailable, Boolean learnerImAvailable) {
+ Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled) {
LearningDesign originalLearningDesign = authoringService.getLearningDesign(new Long(learningDesignId));
if (originalLearningDesign == null) {
@@ -415,7 +415,7 @@
User user = userID != null ? (User) baseDAO.find(User.class, userID) : null;
return initializeLesson(lessonName, lessonDescription, learnerExportAvailable, originalLearningDesign, user,
- runSeqFolder, LearningDesign.COPY_TYPE_LESSON, customCSV, learnerPresenceAvailable, learnerImAvailable);
+ runSeqFolder, LearningDesign.COPY_TYPE_LESSON, customCSV, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
}
@@ -425,7 +425,7 @@
* design is not assigned to any workspace folder.
*/
public Lesson initializeLessonForPreview(String lessonName, String lessonDescription, long learningDesignId,
- Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) {
+ Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled) {
LearningDesign originalLearningDesign = authoringService.getLearningDesign(new Long(learningDesignId));
if (originalLearningDesign == null) {
throw new MonitoringServiceException("Learning design for id=" + learningDesignId
@@ -434,12 +434,12 @@
User user = userID != null ? (User) baseDAO.find(User.class, userID) : null;
return initializeLesson(lessonName, lessonDescription, Boolean.TRUE, originalLearningDesign, user, null,
- LearningDesign.COPY_TYPE_PREVIEW, customCSV, learnerPresenceAvailable, learnerImAvailable);
+ LearningDesign.COPY_TYPE_PREVIEW, customCSV, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
}
public Lesson initializeLesson(String lessonName, String lessonDescription, Boolean learnerExportAvailable,
LearningDesign originalLearningDesign, User user, WorkspaceFolder workspaceFolder, int copyType,
- String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) {
+ String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled) {
// copy the current learning design
LearningDesign copiedLearningDesign = authoringService.copyLearningDesign(originalLearningDesign, new Integer(
@@ -451,7 +451,7 @@
title = title != null ? title : "Unknown Lesson";
Lesson lesson = createNewLesson(title, lessonDescription, user, learnerExportAvailable, copiedLearningDesign,
- learnerPresenceAvailable, learnerImAvailable);
+ learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
auditAction(MonitoringService.AUDIT_LESSON_CREATED_KEY, new Object[] { lessonName,
copiedLearningDesign.getTitle(), learnerExportAvailable });
return lesson;
@@ -480,6 +480,7 @@
boolean learnerPresenceAvailable = WDDXProcessor.convertToBoolean("enablePresence", table
.get("enablePresence"));
boolean learnerImAvailable = WDDXProcessor.convertToBoolean("enableIm", table.get("enableIm"));
+ boolean liveEditEnabled = WDDXProcessor.convertToBoolean("enableLiveEdit", table.get("enableLiveEdit"));
String customCSV = WDDXProcessor.convertToString(WDDXTAGS.CUSTOM_CSV, table.get(WDDXTAGS.CUSTOM_CSV));
// initialize lesson
@@ -488,10 +489,10 @@
if (copyType == LearningDesign.COPY_TYPE_PREVIEW) {
newLesson = initializeLessonForPreview(title, desc, ldId, creatorUserId, customCSV,
- learnerPresenceAvailable, learnerImAvailable);
+ learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
} else {
newLesson = initializeLesson(title, desc, learnerExportAvailable, ldId, organisationId, creatorUserId,
- customCSV, learnerPresenceAvailable, learnerImAvailable);
+ customCSV, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
}
if (newLesson != null) {
@@ -1362,7 +1363,10 @@
dto.setScheduleStartDateStr(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, userLocale)
.format(dto.getScheduleStartDate()));
}
-
+
+ MonitoringService.log.debug(dto.toString());
+ MonitoringService.log.debug(dto.getLiveEditEnabled());
+
FlashMessage flashMessage;
if (dto != null) {
flashMessage = new FlashMessage("getLessonDetails", dto);
@@ -1869,9 +1873,9 @@
*/
private Lesson createNewLesson(String lessonName, String lessonDescription, User user,
Boolean learnerExportAvailable, LearningDesign copiedLearningDesign, Boolean learnerPresenceAvailable,
- Boolean learnerImAvailable) {
+ Boolean learnerImAvailable, Boolean liveEditEnabled) {
Lesson newLesson = Lesson.createNewLessonWithoutClass(lessonName, lessonDescription, user,
- learnerExportAvailable, copiedLearningDesign, learnerPresenceAvailable, learnerImAvailable);
+ learnerExportAvailable, copiedLearningDesign, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
lessonDAO.saveLesson(newLesson);
return newLesson;
}
@@ -2624,16 +2628,17 @@
.get("enablePresence"));
boolean learnerImAvailable = WDDXProcessor.convertToBoolean("enableIm", table.get("enableIm"));
String customCSV = WDDXProcessor.convertToString(WDDXTAGS.CUSTOM_CSV, table.get(WDDXTAGS.CUSTOM_CSV));
+ boolean liveEditEnabled = WDDXProcessor.convertToBoolean("enableLiveEdit", table.get("enableLiveEdit"));
int numLessons = WDDXProcessor.convertToInt("numberLessonsSplit", table.get("numberLessonsSplit"));
// initialise multiple lessons
- if (numLessons > 0) {
- for (int i = 1; i <= numLessons; i++) {
- Lesson newLesson = initializeLesson(title + " " + i, desc, learnerExportAvailable, ldId,
- organisationId, creatorUserId, customCSV, learnerPresenceAvailable, learnerImAvailable);
- lessonIds.add(newLesson.getLessonId());
- }
+ if (numLessons > 0) {
+ for (int i = 1; i <= numLessons; i++) {
+ Lesson newLesson = initializeLesson(title + " " + i, desc, learnerExportAvailable, ldId,
+ organisationId, creatorUserId, customCSV, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
+ lessonIds.add(newLesson.getLessonId());
+ }
}
} catch (Exception e) {
@@ -2743,13 +2748,13 @@
}
return lessonIds;
}
-
+
/**
* Set a group's name
*/
- public void setGroupName(Long groupID, String name) {
- Group group = groupDAO.getGroupById(groupID);
- group.setGroupName(name);
- groupDAO.saveGroup(group);
- }
+ public void setGroupName(Long groupID, String name) {
+ Group group = groupDAO.getGroupById(groupID);
+ group.setGroupName(name);
+ groupDAO.saveGroup(group);
+ }
}
\ No newline at end of file
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/InitializeAndCreateLessonsServlet.java
===================================================================
diff -u -ra12c6f390a8244c5d5ecf5a41e53ef5664c41af6 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/InitializeAndCreateLessonsServlet.java (.../InitializeAndCreateLessonsServlet.java) (revision a12c6f390a8244c5d5ecf5a41e53ef5664c41af6)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/InitializeAndCreateLessonsServlet.java (.../InitializeAndCreateLessonsServlet.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -83,11 +83,7 @@
IMonitoringService monitoringService = getMonitoringService();
List lessonIds = monitoringService.initializeAndCreateLessons(userID, lessonPackage);
if (lessonIds != null && lessonIds.size() > 0) {
- String lessonIdsCSV = "";
- for (Long lessonId : lessonIds) {
- lessonIdsCSV += lessonId + ",";
- }
- flashMessage = new FlashMessage(messageKey, lessonIdsCSV);
+ flashMessage = new FlashMessage(messageKey, lessonIds);
} else {
flashMessage = new FlashMessage(messageKey, "");
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java
===================================================================
diff -u -r4b24094f139dd10a9779ce6e678cb8ca38317148 -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -177,7 +177,8 @@
Boolean learnerExportAvailable = WebUtil.readBooleanParam(request, "learnerExportPortfolio", false);
Boolean learnerPresenceAvailable = WebUtil.readBooleanParam(request, "learnerPresencePortfolio", false);
Boolean learnerImAvailable = WebUtil.readBooleanParam(request, "learnerImPortfolio", false);
- Lesson newLesson = monitoringService.initializeLesson(title,desc,learnerExportAvailable,ldId,organisationId,getUserId(), null, learnerPresenceAvailable, learnerImAvailable);
+ Boolean liveEditEnabled = WebUtil.readBooleanParam(request, "liveEditEnabled", false);
+ Lesson newLesson = monitoringService.initializeLesson(title,desc,learnerExportAvailable,ldId,organisationId,getUserId(), null, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled);
flashMessage = new FlashMessage("initializeLesson",newLesson.getLessonId());
} catch (Exception e) {
Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java
===================================================================
diff -u -r961e65c76e64f2fe8ed146302e3818daac94890d -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 961e65c76e64f2fe8ed146302e3818daac94890d)
+++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -165,6 +165,7 @@
testUser.getUserId(),
null,
false,
+ false,
false);
TEST_LESSON_ID=testLesson.getLessonId();
Lesson createdLesson = lessonDao.getLesson(TEST_LESSON_ID);
@@ -342,7 +343,7 @@
private Lesson startLesson(String testName, String testDesc) {
try {
- Lesson previewLesson = monitoringService.initializeLessonForPreview(testName,testDesc,TEST_LEARNING_DESIGN_SURVEY_ONLY_ID,TEST_USER_ID, null, false, false);
+ Lesson previewLesson = monitoringService.initializeLessonForPreview(testName,testDesc,TEST_LEARNING_DESIGN_SURVEY_ONLY_ID,TEST_USER_ID, null, false, false, false);
assertNotNull("Lesson created",previewLesson);
assertNotNull("Lesson has been saved - an id exists", previewLesson.getLessonId());
Index: lams_monitoring/web/addLesson.jsp
===================================================================
diff -u -r14a58df061d85ab6ce3b3254c02b3bc1c30f096f -r68d2988cca350af15ba4087814f74e1527a71997
--- lams_monitoring/web/addLesson.jsp (.../addLesson.jsp) (revision 14a58df061d85ab6ce3b3254c02b3bc1c30f096f)
+++ lams_monitoring/web/addLesson.jsp (.../addLesson.jsp) (revision 68d2988cca350af15ba4087814f74e1527a71997)
@@ -84,10 +84,11 @@
String clientVersion = Configuration.get(ConfigurationKeys.MONITOR_CLIENT_VERSION);
String serverLanguage = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE);
String languageDate = Configuration.get(ConfigurationKeys.DICTIONARY_DATE_CREATED);
+String allowEditOnFly = Configuration.get(ConfigurationKeys.ALLOW_EDIT_ON_FLY);
%>
<%-- courseID and classID are passed in as request parameters by addLesson.jsp in lams_central. --%>
- ?loadFile=monitoring/lams_wizard.swf&loadLibrary=monitoring/lams_wizard_library.swf&userID=&serverURL=&build=<%=clientVersion%>&lang=&country=&langDate=<%=languageDate%>&theme=&courseID=&classID=
+ ?loadFile=monitoring/lams_wizard.swf&loadLibrary=monitoring/lams_wizard_library.swf&userID=&serverURL=&build=<%=clientVersion%>&lang=&country=&langDate=<%=languageDate%>&theme=&courseID=&classID=&editOnFly=<%=allowEditOnFly%>
../lams_preloader.swf
../lams_preloader
Index: lams_monitoring/web/lams_monitoring.swf
===================================================================
diff -u -r550a64d591c6d54d4849d09efc0ae6c714bd8b80 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_monitoring/web/lams_monitoring_library.swf
===================================================================
diff -u -r550a64d591c6d54d4849d09efc0ae6c714bd8b80 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_monitoring/web/lams_wizard.swf
===================================================================
diff -u -r53a530570087c6901259fb2958a4b7974df55372 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ
Index: lams_monitoring/web/lams_wizard_library.swf
===================================================================
diff -u -r53a530570087c6901259fb2958a4b7974df55372 -r68d2988cca350af15ba4087814f74e1527a71997
Binary files differ