Index: lams_build/3rdParty.userlibraries =================================================================== diff -u -rb4b105dd9494709f50b3161eb03168c3cab9d159 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_build/3rdParty.userlibraries (.../3rdParty.userlibraries) (revision b4b105dd9494709f50b3161eb03168c3cab9d159) +++ lams_build/3rdParty.userlibraries (.../3rdParty.userlibraries) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -105,7 +105,8 @@ - + + Index: lams_build/build.xml =================================================================== diff -u -r2e73cfd27a71704e67031b32fd47549bbdecbc46 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_build/build.xml (.../build.xml) (revision 2e73cfd27a71704e67031b32fd47549bbdecbc46) +++ lams_build/build.xml (.../build.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -125,6 +125,7 @@ + @@ -141,8 +142,8 @@ - - + + Index: lams_build/conf/j2ee/lams.application.xml =================================================================== diff -u -rcf2c80ce5662e3cce687c44b3d3b78c169f23f20 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_build/conf/j2ee/lams.application.xml (.../lams.application.xml) (revision cf2c80ce5662e3cce687c44b3d3b78c169f23f20) +++ lams_build/conf/j2ee/lams.application.xml (.../lams.application.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -235,6 +235,9 @@ translate.jar + + JabberHTTPBind-1.1.1.jar + Index: lams_build/conf/j2ee/rams.application.xml =================================================================== diff -u -re11aa8d7796f52fcd5c4151748816001ea1b8736 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_build/conf/j2ee/rams.application.xml (.../rams.application.xml) (revision e11aa8d7796f52fcd5c4151748816001ea1b8736) +++ lams_build/conf/j2ee/rams.application.xml (.../rams.application.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -234,6 +234,9 @@ translate.jar + + + JabberHTTPBind-1.1.1.jar Index: lams_build/lib/jabber/JabberHTTPBind-1.1.1.jar =================================================================== diff -u Binary files differ Index: lams_build/windows.properties =================================================================== diff -u -r5e828bbc5f2a11fa8b55f616b1eb0e4c0489c68a -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_build/windows.properties (.../windows.properties) (revision 5e828bbc5f2a11fa8b55f616b1eb0e4c0489c68a) +++ lams_build/windows.properties (.../windows.properties) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -26,7 +26,7 @@ contentrepository.directory=C:/${conf.application}/repository #JBoss deploy directory (Windows) -jboss.home=E:/jboss-4.0.2/ +jboss.home=D:/jboss-4.0.2/ jboss.server=${jboss.home}server/ jboss.server.instance=${jboss.server}default jboss.ear.deploy=${jboss.server.instance}/deploy/ Index: lams_central/conf/flashxml/lams/learner/en_AU_dictionary.xml =================================================================== diff -u -rfd43c21bc049db4fd1392bfd925a237671768a27 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/flashxml/lams/learner/en_AU_dictionary.xml (.../en_AU_dictionary.xml) (revision fd43c21bc049db4fd1392bfd925a237671768a27) +++ lams_central/conf/flashxml/lams/learner/en_AU_dictionary.xml (.../en_AU_dictionary.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -1 +1 @@ -
getDictionary3hd_resume_lblResumeLabel for Resume buttonhd_exit_lblExitLabel for Exit buttonln_export_btnExportLabel for Export buttonal_validation_act_unreachedYou can't open the Activity as you haven't reached it yet.Alert message when clicking on an unreached activity in the progess bar.sys_error_msg_startA following system error has occurred:Common System error message starting linesys_errorSystem ErrorSystem Error alert window titleal_alertAlertGeneric title for Alert windowal_cancelCancelCancel on alert dialogal_confirmConfirmTo Confirm title for LFErroral_okOKOK on alert dialogsys_error_msg_finishYou may need to re-start this browser window to continue. Do you want to save the following information about this error to help fix this problem?Common System error message finish paragraphhd_resume_tooltipJump to your current activitytool tip message for resume buttonhd_exit_tooltipExit the Learner Environment and close the browser windowtool tip message for exit buttonln_export_tooltipExport your contributions to this lessontool tip message for export buttoncompleted_act_tooltipDouble click to review this completed activitytool tip message for completed activity iconcurrent_act_tooltipDouble click to participate in the current activitytool tip message for current activity iconal_doubleclick_todoactivitySorry, you have not reached this activity yetalert message when user double click on the todo activity in the sequence in learner progresssp_save_tooltipSave your notebook entrytool tip message for save buttonsp_title_lblTitleLabel for title field of scratchpad (notebook)sp_view_lblView AllLabel for View All buttonsp_save_lblSaveLabel for Save buttonsp_view_tooltipView all notebook entriestool tip message for view all buttonsp_panel_lblNotebookLabel for panel title of scratchpad (notebook)al_timeoutWarning! Progress data cannot be applied until loading has finished. Click OK to continue loadingAlert message for timeout error when loading learning design.al_sendSendSend button label on the system error dialogpermission_gate_tooltipYou can't move past this Gate until the teacher releases it.Tooltip for permission gate in learner progress barschedule_gate_tooltipThis Gate will be opened on {0}.Tooltip for schedule gate in learner progress barsynchronise_gate_tooltipThis Gate will only be released once all learners reach this point.Tooltip for synchronise gate in learner progress barnot_attempted_act_tooltipYou need to complete the activities before this activity to access it.Tooltip for not yet attempted activities in the learner progress baral_act_reached_maxThe maximum number optional activities has already been reached.al_act_reached_max \ No newline at end of file +
getDictionary3Label for Resume buttonResumehd_resume_lblLabel for Exit buttonExithd_exit_lblLabel for Export buttonExportln_export_btnAlert message when clicking on an unreached activity in the progess bar.You can't open the Activity as you haven't reached it yet.al_validation_act_unreachedCommon System error message starting lineA following system error has occurred:sys_error_msg_startSystem Error alert window titleSystem Errorsys_errorGeneric title for Alert windowAlertal_alertCancel on alert dialogCancelal_cancelTo Confirm title for LFErrorConfirmal_confirmOK on alert dialogOKal_okCommon System error message finish paragraphYou may need to re-start this browser window to continue. Do you want to save the following information about this error to help fix this problem?sys_error_msg_finishtool tip message for resume buttonJump to your current activityhd_resume_tooltiptool tip message for exit buttonExit the Learner Environment and close the browser windowhd_exit_tooltiptool tip message for export buttonExport your contributions to this lessonln_export_tooltiptool tip message for completed activity iconDouble click to review this completed activitycompleted_act_tooltiptool tip message for current activity iconDouble click to participate in the current activitycurrent_act_tooltipalert message when user double click on the todo activity in the sequence in learner progressSorry, you have not reached this activity yetal_doubleclick_todoactivitytool tip message for save buttonSave your notebook entrysp_save_tooltipLabel for title field of scratchpad (notebook)Titlesp_title_lblLabel for View All buttonView Allsp_view_lblLabel for Save buttonSavesp_save_lbltool tip message for view all buttonView all notebook entriessp_view_tooltipLabel for panel title of scratchpad (notebook)Notebooksp_panel_lblAlert message for timeout error when loading learning design.Warning! Progress data cannot be applied until loading has finished. Click OK to continue loadingal_timeoutSend button label on the system error dialogSendal_sendTooltip for permission gate in learner progress barYou can't move past this Gate until the teacher releases it.permission_gate_tooltipTooltip for schedule gate in learner progress barThis Gate will be opened on {0}.schedule_gate_tooltipTooltip for synchronise gate in learner progress barThis Gate will only be released once all learners reach this point.synchronise_gate_tooltipTooltip for not yet attempted activities in the learner progress barYou need to complete the activities before this activity to access it.not_attempted_act_tooltipAlert for max number of activites reachedThe maximum number optional activities has already been reached.al_act_reached_maxpres_panel_lblPresencePresence panel labelpres_colnamelearners_lblLearnersPresence datagrid learners columnpres_dataproviderloading_lblLoading presence...Presence datagrid learning loading alert \ No newline at end of file Index: lams_central/conf/flashxml/lams/learner/en_dictionary.xml =================================================================== diff -u -rfd43c21bc049db4fd1392bfd925a237671768a27 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/flashxml/lams/learner/en_dictionary.xml (.../en_dictionary.xml) (revision fd43c21bc049db4fd1392bfd925a237671768a27) +++ lams_central/conf/flashxml/lams/learner/en_dictionary.xml (.../en_dictionary.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -1 +1 @@ -
getDictionary3hd_resume_lblResumeLabel for Resume buttonhd_exit_lblExitLabel for Exit buttonln_export_btnExportLabel for Export buttonal_validation_act_unreachedYou can't open the Activity as you haven't reached it yet.Alert message when clicking on an unreached activity in the progess bar.sys_error_msg_startA following system error has occurred:Common System error message starting linesys_errorSystem ErrorSystem Error alert window titleal_alertAlertGeneric title for Alert windowal_cancelCancelCancel on alert dialogal_confirmConfirmTo Confirm title for LFErroral_okOKOK on alert dialogsys_error_msg_finishYou may need to re-start this browser window to continue. Do you want to save the following information about this error to help fix this problem?Common System error message finish paragraphhd_resume_tooltipJump to your current activitytool tip message for resume buttonhd_exit_tooltipExit the Learner Environment and close the browser windowtool tip message for exit buttonln_export_tooltipExport your contributions to this lessontool tip message for export buttoncompleted_act_tooltipDouble click to review this completed activitytool tip message for completed activity iconcurrent_act_tooltipDouble click to participate in the current activitytool tip message for current activity iconal_doubleclick_todoactivitySorry, you have not reached this activity yetalert message when user double click on the todo activity in the sequence in learner progresssp_save_tooltipSave your notebook entrytool tip message for save buttonsp_title_lblTitleLabel for title field of scratchpad (notebook)sp_view_lblView AllLabel for View All buttonsp_save_lblSaveLabel for Save buttonsp_view_tooltipView all notebook entriestool tip message for view all buttonsp_panel_lblNotebookLabel for panel title of scratchpad (notebook)al_timeoutWarning! Progress data cannot be applied until loading has finished. Click OK to continue loadingAlert message for timeout error when loading learning design.al_sendSendSend button label on the system error dialogpermission_gate_tooltipYou can't move past this Gate until the teacher releases it.Tooltip for permission gate in learner progress barschedule_gate_tooltipThis Gate will be opened on {0}.Tooltip for schedule gate in learner progress barsynchronise_gate_tooltipThis Gate will only be released once all learners reach this point.Tooltip for synchronise gate in learner progress barnot_attempted_act_tooltipYou need to complete the activities before this activity to access it.Tooltip for not yet attempted activities in the learner progress baral_act_reached_maxThe maximum number optional activities has already been reached.al_act_reached_max \ No newline at end of file +
getDictionary3Label for Resume buttonResumehd_resume_lblLabel for Exit buttonExithd_exit_lblLabel for Export buttonExportln_export_btnAlert message when clicking on an unreached activity in the progess bar.You can't open the Activity as you haven't reached it yet.al_validation_act_unreachedCommon System error message starting lineA following system error has occurred:sys_error_msg_startSystem Error alert window titleSystem Errorsys_errorGeneric title for Alert windowAlertal_alertCancel on alert dialogCancelal_cancelTo Confirm title for LFErrorConfirmal_confirmOK on alert dialogOKal_okCommon System error message finish paragraphYou may need to re-start this browser window to continue. Do you want to save the following information about this error to help fix this problem?sys_error_msg_finishtool tip message for resume buttonJump to your current activityhd_resume_tooltiptool tip message for exit buttonExit the Learner Environment and close the browser windowhd_exit_tooltiptool tip message for export buttonExport your contributions to this lessonln_export_tooltiptool tip message for completed activity iconDouble click to review this completed activitycompleted_act_tooltiptool tip message for current activity iconDouble click to participate in the current activitycurrent_act_tooltipalert message when user double click on the todo activity in the sequence in learner progressSorry, you have not reached this activity yetal_doubleclick_todoactivitytool tip message for save buttonSave your notebook entrysp_save_tooltipLabel for title field of scratchpad (notebook)Titlesp_title_lblLabel for View All buttonView Allsp_view_lblLabel for Save buttonSavesp_save_lbltool tip message for view all buttonView all notebook entriessp_view_tooltipLabel for panel title of scratchpad (notebook)Notebooksp_panel_lblAlert message for timeout error when loading learning design.Warning! Progress data cannot be applied until loading has finished. Click OK to continue loadingal_timeoutSend button label on the system error dialogSendal_sendTooltip for permission gate in learner progress barYou can't move past this Gate until the teacher releases it.permission_gate_tooltipTooltip for schedule gate in learner progress barThis Gate will be opened on {0}.schedule_gate_tooltipTooltip for synchronise gate in learner progress barThis Gate will only be released once all learners reach this point.synchronise_gate_tooltipTooltip for not yet attempted activities in the learner progress barYou need to complete the activities before this activity to access it.not_attempted_act_tooltipAlert for max number of activites reachedThe maximum number optional activities has already been reached.al_act_reached_maxpres_panel_lblPresencePresence panel labelpres_colnamelearners_lblLearnersPresence datagrid learners columnpres_dataproviderloading_lblLoading presence...Presence datagrid learning loading alert \ No newline at end of file Index: lams_central/conf/flashxml/lams/wizard/en_AU_dictionary.xml =================================================================== diff -u -r47adb01c3be15a3c9ab11c5e26054a0520bd482f -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/flashxml/lams/wizard/en_AU_dictionary.xml (.../en_AU_dictionary.xml) (revision 47adb01c3be15a3c9ab11c5e26054a0520bd482f) +++ lams_central/conf/flashxml/lams/wizard/en_AU_dictionary.xml (.../en_AU_dictionary.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -1 +1 @@ -
getDictionary3sys_error_msg_startYou were unable to create a lesson.Common System error message starting linesys_error_msg_finishDo you want to send an error report?Common System error message finish paragraphsys_errorSystem ErrorSystem Error elert window titleprev_btn< PrevPrevious step buttonnext_btnNext >Next step buttoncancel_btnCancelCancel button to exit wizardclose_btnCloseClose button to close windowtitle_lblTitleNew Lesson titledesc_lblDescriptionNew Lesson descriptionlearner_lblLearnersHeading for list of class learnersschedule_cb_lblScheduleLabel for schedule checkboxws_RootRootRoot folder title for workspacews_tree_mywspMy WorkspaceThe root level of the workspace treewizardTitle_2_lblLesson DetailsStep 2 screen titlewizardTitle_x_lblLesson: {0}Confirmation screen titleal_alertAlertGeneric title for Alert windowal_cancelCancelCancel on alert dialogal_confirmConfirmTo Confirm title for LFErroral_okOKOK on alert dialogal_validation_msg2Title is a required field. Message when title field is empty on Step 2al_validation_msg3_1No course or class was selected. Message when no course/class is selected in Step 3confirmMsg_1_txt{0} has been started.Conclusion screen description if lesson startedconfirmMsg_3_txt{0} has been created but has not been started yet.Conclusion screen description if lesson created but not startedsummery_title_lblTitle:Label for summery heading of defined title.summery_desc_lblDescription:Label for summery heading of defined description.summery_learners_lblLearners:Label for summery heading of number of selected learners in the lesson class.al_sendSendOK on system error dialogwizard_learner_expp_cb_lblEnable export portfolio for learnerLabel for Enable export portfolio for Learnerwizard_selAll_cb_lblSelect AllLabel for select all check box used to select all staff or learner users in list.al_validation_msg1A valid sequence must be selected.Message when no design is selected on step 1summery_design_lblSequence:Label for summery heading of selected design field.summery_course_lblGroup:Label for summery heading of selected course field.summery_class_lblSubgroup:Label for summery heading of selected class field.finish_btnStart in MonitorFinish button to complete wizardstart_btnStart NowStart button to start new lessonal_validation_schtimePlease enter a valid time.Alert message when user enters an invalid time for schedule startdate_lblDateLabel for Schedule Date fieldtime_lblTime (Hours : Minutes)Label for Schedule Time fieldal_validation_schstartNo date was selected. Please select a date and time, and then click Schedule button.Message when no date is selected starting a lesson by schedule.learners_group_name{0} learnersGroup name for the class's learners group.wizardDesc_1_lblClick on a folder below to open it to view available sequences. Select one and click on the Next button to continue.Step 1 descriptionwizardTitle_3_lblStep 2 of 3: Select Learners and MonitorsStep 3 screen titlewizardDesc_3_lblYou can select/unselect Learners and Monitors from this class by checking/unchecking the box next to their names.Step 3 descriptionwizardTitle_4_lblStep 3 of 3: Confirm Lesson detailsStep 4 screen titlewizardDesc_4_lblBy clicking on Start you can begin the lesson immediately. You can also schedule it to start at a particular date and time.Step 4 descriptionconfirmMsg_2_txt{0} has been scheduled to start on {1}.Conclusion screen description if lesson scheduledwizardTitle_1_lblStep 1 of 3: Select your SequenceStep 1 screen titlestaff_lblMonitorsHeading for list of class staffal_validation_msg3_2There must be at least 1 monitor member and learner selected.Message when either no staff/learner users are selected in Step 3.summery_staff_lblMonitors:Label for summery heading of number of selected staff in the lesson class.staff_group_name{0} monitorsGroup name for the class's staff group.wizardDesc_2_lblYou can add the name and description you would like the students to see for this lesson.Step 2 descriptionaddmore_btnAdd Another LessonButton to add another lesson, return to first step.summery_lblSummaryHeading for summery outline \ No newline at end of file +
getDictionary3Common System error message starting lineYou were unable to create a lesson.sys_error_msg_startCommon System error message finish paragraphDo you want to send an error report?sys_error_msg_finishSystem Error elert window titleSystem Errorsys_errorPrevious step button< Prevprev_btnNext step buttonNext >next_btnCancel button to exit wizardCancelcancel_btnClose button to close windowCloseclose_btnNew Lesson titleTitletitle_lblNew Lesson descriptionDescriptiondesc_lblHeading for list of class learnersLearnerslearner_lblLabel for schedule checkboxScheduleschedule_cb_lblRoot folder title for workspaceRootws_RootThe root level of the workspace treeMy Workspacews_tree_mywspStep 2 screen titleLesson DetailswizardTitle_2_lblConfirmation screen titleLesson: {0}wizardTitle_x_lblGeneric title for Alert windowAlertal_alertCancel on alert dialogCancelal_cancelTo Confirm title for LFErrorConfirmal_confirmOK on alert dialogOKal_okMessage when title field is empty on Step 2Title is a required field. al_validation_msg2Message when no course/class is selected in Step 3No course or class was selected. al_validation_msg3_1Conclusion screen description if lesson started{0} has been started.confirmMsg_1_txtConclusion screen description if lesson created but not started{0} has been created but has not been started yet.confirmMsg_3_txtLabel for summery heading of defined title.Title:summery_title_lblLabel for summery heading of defined description.Description:summery_desc_lblLabel for summery heading of number of selected learners in the lesson class.Learners:summery_learners_lblOK on system error dialogSendal_sendLabel for Enable export portfolio for LearnerEnable export portfolio for learnerwizard_learner_expp_cb_lblLabel for select all check box used to select all staff or learner users in list.Select Allwizard_selAll_cb_lblMessage when no design is selected on step 1A valid sequence must be selected.al_validation_msg1Label for summery heading of selected design field.Sequence:summery_design_lblLabel for summery heading of selected course field.Group:summery_course_lblLabel for summery heading of selected class field.Subgroup:summery_class_lblFinish button to complete wizardStart in Monitorfinish_btnStart button to start new lessonStart Nowstart_btnAlert message when user enters an invalid time for schedule startPlease enter a valid time.al_validation_schtimeLabel for Schedule Date fieldDatedate_lblLabel for Schedule Time fieldTime (Hours : Minutes)time_lblMessage when no date is selected starting a lesson by schedule.No date was selected. Please select a date and time, and then click Schedule button.al_validation_schstartGroup name for the class's learners group.{0} learnerslearners_group_nameStep 1 descriptionClick on a folder below to open it to view available sequences. Select one and click on the Next button to continue.wizardDesc_1_lblStep 3 screen titleStep 2 of 3: Select Learners and MonitorswizardTitle_3_lblStep 3 descriptionYou can select/unselect Learners and Monitors from this class by checking/unchecking the box next to their names.wizardDesc_3_lblStep 4 screen titleStep 3 of 3: Confirm Lesson detailswizardTitle_4_lblStep 4 descriptionBy clicking on Start you can begin the lesson immediately. You can also schedule it to start at a particular date and time.wizardDesc_4_lblConclusion screen description if lesson scheduled{0} has been scheduled to start on {1}.confirmMsg_2_txtStep 1 screen titleStep 1 of 3: Select your SequencewizardTitle_1_lblHeading for list of class staffMonitorsstaff_lblMessage when either no staff/learner users are selected in Step 3.There must be at least 1 monitor member and learner selected.al_validation_msg3_2Label for summery heading of number of selected staff in the lesson class.Monitors:summery_staff_lblGroup name for the class's staff group.{0} monitorsstaff_group_nameStep 2 descriptionYou can add the name and description you would like the students to see for this lesson.wizardDesc_2_lblButton to add another lesson, return to first step.Add Another Lessonaddmore_btnHeading for summery outlineSummarysummery_lblwizard_learner_enpres_cb_lblEnable lesson presenceCheckbox label for presencewizard_learner_enim_cb_lblEnable instant messaging in presenceCheckbox label for enabling IM in presence \ No newline at end of file Index: lams_central/conf/flashxml/lams/wizard/en_dictionary.xml =================================================================== diff -u -ref180f48b9c48c352c7fad27e85dd14f2aca43a4 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/flashxml/lams/wizard/en_dictionary.xml (.../en_dictionary.xml) (revision ef180f48b9c48c352c7fad27e85dd14f2aca43a4) +++ lams_central/conf/flashxml/lams/wizard/en_dictionary.xml (.../en_dictionary.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -1 +1 @@ -
getDictionary3sys_error_msg_startYou were unable to create a lesson.Common System error message starting linesys_error_msg_finishDo you want to send an error report?Common System error message finish paragraphsys_errorSystem ErrorSystem Error elert window titleprev_btn< PrevPrevious step buttonnext_btnNext >Next step buttoncancel_btnCancelCancel button to exit wizardclose_btnCloseClose button to close windowtitle_lblTitleNew Lesson titledesc_lblDescriptionNew Lesson descriptionlearner_lblLearnersHeading for list of class learnersschedule_cb_lblScheduleLabel for schedule checkboxsummery_lblSummeryHeading for summery outlinews_RootRootRoot folder title for workspacews_tree_mywspMy WorkspaceThe root level of the workspace treewizardTitle_2_lblLesson DetailsStep 2 screen titlewizardTitle_x_lblLesson: {0}Confirmation screen titleal_alertAlertGeneric title for Alert windowal_cancelCancelCancel on alert dialogal_confirmConfirmTo Confirm title for LFErroral_okOKOK on alert dialogal_validation_msg2Title is a required field. Message when title field is empty on Step 2al_validation_msg3_1No course or class was selected. Message when no course/class is selected in Step 3confirmMsg_1_txt{0} has been started.Conclusion screen description if lesson startedconfirmMsg_3_txt{0} has been created but has not been started yet.Conclusion screen description if lesson created but not startedsummery_title_lblTitle:Label for summery heading of defined title.summery_desc_lblDescription:Label for summery heading of defined description.summery_learners_lblLearners:Label for summery heading of number of selected learners in the lesson class.al_sendSendOK on system error dialogwizard_learner_expp_cb_lblEnable export portfolio for learnerLabel for Enable export portfolio for Learnerwizard_selAll_cb_lblSelect AllLabel for select all check box used to select all staff or learner users in list.al_validation_msg1A valid sequence must be selected.Message when no design is selected on step 1summery_design_lblSequence:Label for summery heading of selected design field.summery_course_lblGroup:Label for summery heading of selected course field.summery_class_lblSubgroup:Label for summery heading of selected class field.finish_btnStart in MonitorFinish button to complete wizardstart_btnStart NowStart button to start new lessonal_validation_schtimePlease enter a valid time.Alert message when user enters an invalid time for schedule startdate_lblDateLabel for Schedule Date fieldtime_lblTime (Hours : Minutes)Label for Schedule Time fieldal_validation_schstartNo date was selected. Please select a date and time, and then click Schedule button.Message when no date is selected starting a lesson by schedule.learners_group_name{0} learnersGroup name for the class's learners group.wizardDesc_1_lblClick on a folder below to open it to view available sequences. Select one and click on the Next button to continue.Step 1 descriptionwizardTitle_3_lblStep 2 of 3: Select Learners and MonitorsStep 3 screen titlewizardDesc_3_lblYou can select/unselect Learners and Monitors from this class by checking/unchecking the box next to their names.Step 3 descriptionwizardTitle_4_lblStep 3 of 3: Confirm Lesson detailsStep 4 screen titlewizardDesc_4_lblBy clicking on Start you can begin the lesson immediately. You can also schedule it to start at a particular date and time.Step 4 descriptionconfirmMsg_2_txt{0} has been scheduled to start on {1}.Conclusion screen description if lesson scheduledwizardTitle_1_lblStep 1 of 3: Select your SequenceStep 1 screen titlestaff_lblMonitorsHeading for list of class staffal_validation_msg3_2There must be at least 1 monitor member and learner selected.Message when either no staff/learner users are selected in Step 3.summery_staff_lblMonitors:Label for summery heading of number of selected staff in the lesson class.staff_group_name{0} monitorsGroup name for the class's staff group.wizardDesc_2_lblYou can add the name and description you would like the students to see for this lesson.Step 2 descriptionaddmore_btnAdd Another LessonButton to add another lesson, return to first step. \ No newline at end of file +
getDictionary3Common System error message starting lineYou were unable to create a lesson.sys_error_msg_startCommon System error message finish paragraphDo you want to send an error report?sys_error_msg_finishSystem Error elert window titleSystem Errorsys_errorPrevious step button< Prevprev_btnNext step buttonNext >next_btnCancel button to exit wizardCancelcancel_btnClose button to close windowCloseclose_btnNew Lesson titleTitletitle_lblNew Lesson descriptionDescriptiondesc_lblHeading for list of class learnersLearnerslearner_lblLabel for schedule checkboxScheduleschedule_cb_lblRoot folder title for workspaceRootws_RootThe root level of the workspace treeMy Workspacews_tree_mywspStep 2 screen titleLesson DetailswizardTitle_2_lblConfirmation screen titleLesson: {0}wizardTitle_x_lblGeneric title for Alert windowAlertal_alertCancel on alert dialogCancelal_cancelTo Confirm title for LFErrorConfirmal_confirmOK on alert dialogOKal_okMessage when title field is empty on Step 2Title is a required field. al_validation_msg2Message when no course/class is selected in Step 3No course or class was selected. al_validation_msg3_1Conclusion screen description if lesson started{0} has been started.confirmMsg_1_txtConclusion screen description if lesson created but not started{0} has been created but has not been started yet.confirmMsg_3_txtLabel for summery heading of defined title.Title:summery_title_lblLabel for summery heading of defined description.Description:summery_desc_lblLabel for summery heading of number of selected learners in the lesson class.Learners:summery_learners_lblOK on system error dialogSendal_sendLabel for Enable export portfolio for LearnerEnable export portfolio for learnerwizard_learner_expp_cb_lblLabel for select all check box used to select all staff or learner users in list.Select Allwizard_selAll_cb_lblMessage when no design is selected on step 1A valid sequence must be selected.al_validation_msg1Label for summery heading of selected design field.Sequence:summery_design_lblLabel for summery heading of selected course field.Group:summery_course_lblLabel for summery heading of selected class field.Subgroup:summery_class_lblFinish button to complete wizardStart in Monitorfinish_btnStart button to start new lessonStart Nowstart_btnAlert message when user enters an invalid time for schedule startPlease enter a valid time.al_validation_schtimeLabel for Schedule Date fieldDatedate_lblLabel for Schedule Time fieldTime (Hours : Minutes)time_lblMessage when no date is selected starting a lesson by schedule.No date was selected. Please select a date and time, and then click Schedule button.al_validation_schstartGroup name for the class's learners group.{0} learnerslearners_group_nameStep 1 descriptionClick on a folder below to open it to view available sequences. Select one and click on the Next button to continue.wizardDesc_1_lblStep 3 screen titleStep 2 of 3: Select Learners and MonitorswizardTitle_3_lblStep 3 descriptionYou can select/unselect Learners and Monitors from this class by checking/unchecking the box next to their names.wizardDesc_3_lblStep 4 screen titleStep 3 of 3: Confirm Lesson detailswizardTitle_4_lblStep 4 descriptionBy clicking on Start you can begin the lesson immediately. You can also schedule it to start at a particular date and time.wizardDesc_4_lblConclusion screen description if lesson scheduled{0} has been scheduled to start on {1}.confirmMsg_2_txtStep 1 screen titleStep 1 of 3: Select your SequencewizardTitle_1_lblHeading for list of class staffMonitorsstaff_lblMessage when either no staff/learner users are selected in Step 3.There must be at least 1 monitor member and learner selected.al_validation_msg3_2Label for summery heading of number of selected staff in the lesson class.Monitors:summery_staff_lblGroup name for the class's staff group.{0} monitorsstaff_group_nameStep 2 descriptionYou can add the name and description you would like the students to see for this lesson.wizardDesc_2_lblButton to add another lesson, return to first step.Add Another Lessonaddmore_btnHeading for summery outlineSummarysummery_lblwizard_learner_enpres_cb_lblEnable lesson presenceCheckbox label for presencewizard_learner_enim_cb_lblEnable instant messaging in presenceCheckbox label for enabling IM in presence \ No newline at end of file Index: lams_central/conf/xdoclet/servlet-mappings.xml =================================================================== diff -u -r90cc91c53b04121fbe222b3ba847c6c1348129d8 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/xdoclet/servlet-mappings.xml (.../servlet-mappings.xml) (revision 90cc91c53b04121fbe222b3ba847c6c1348129d8) +++ lams_central/conf/xdoclet/servlet-mappings.xml (.../servlet-mappings.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -36,4 +36,9 @@ LessonManager /services/xml/LessonManager/* + + + + JabberHTTPBindingServlet + /JHB/* \ No newline at end of file Index: lams_central/conf/xdoclet/servlets.xml =================================================================== diff -u -r90cc91c53b04121fbe222b3ba847c6c1348129d8 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/xdoclet/servlets.xml (.../servlets.xml) (revision 90cc91c53b04121fbe222b3ba847c6c1348129d8) +++ lams_central/conf/xdoclet/servlets.xml (.../servlets.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -76,3 +76,10 @@ org.lamsfoundation.lams.webservice.xml.LessonManagerServlet + + + JabberHTTPBindingServlet + org.jabber.JabberHTTPBind.JHBServlet + + + Index: lams_central/conf/xdoclet/web-security.xml =================================================================== diff -u -rf4ca162214e069dde32ea9f32a4c82baaf83b3a4 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/conf/xdoclet/web-security.xml (.../web-security.xml) (revision f4ca162214e069dde32ea9f32a4c82baaf83b3a4) +++ lams_central/conf/xdoclet/web-security.xml (.../web-security.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -34,6 +34,7 @@ /fckeditor/* /toolcontent/* /development/* + /JHB/* LEARNER Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -r7dae73f2eebf36b22e927893bf578ce26b1fed07 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 7dae73f2eebf36b22e927893bf578ce26b1fed07) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -160,9 +160,13 @@ req.setAttribute(AttributeNames.PARAM_MODE, mode); req.setAttribute(AttributeNames.PARAM_EXPORT_PORTFOLIO_ENABLED, lesson.getLearnerExportAvailable() != null ? lesson.getLearnerExportAvailable(): Boolean.TRUE); + req.setAttribute(AttributeNames.PARAM_PRESENCE_ENABLED, lesson.getLearnerPresenceAvailable()); + req.setAttribute(AttributeNames.PARAM_PRESENCE_IM_ENABLED, lesson.getLearnerImAvailable()); req.setAttribute(AttributeNames.PARAM_TITLE, lesson.getLessonName()); String serverUrl = Configuration.get(ConfigurationKeys.SERVER_URL); req.setAttribute("serverUrl", serverUrl); + String presenceUrl = Configuration.get(ConfigurationKeys.XMPP_DOMAIN); + req.setAttribute("presenceUrl", presenceUrl); req.setAttribute(AttributeNames.PARAM_LESSON_ID,lessonId); return mapping.findForward("learner"); } Index: lams_central/src/java/org/lamsfoundation/lams/web/PresenceServlet.java =================================================================== diff -u --- lams_central/src/java/org/lamsfoundation/lams/web/PresenceServlet.java (revision 0) +++ lams_central/src/java/org/lamsfoundation/lams/web/PresenceServlet.java (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -0,0 +1,114 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + +package org.lamsfoundation.lams.web; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Vector; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.usermanagement.dto.UserFlashDTO; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; +import org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService; +import org.lamsfoundation.lams.workspace.web.WorkspaceAction; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.util.XMPPUtil; +import org.lamsfoundation.lams.util.wddx.FlashMessage; + +/** + * @author pgeorges + * + * @web:servlet name="XMPP" + * @web:servlet-mapping url-pattern="/XMPP" + */ + +public class PresenceServlet extends LamsDispatchAction{ + + protected Logger log = Logger.getLogger(WorkspaceAction.class.getName()); + + /** Send the flash message back to Flash */ + private ActionForward returnWDDXPacket(FlashMessage flashMessage, HttpServletResponse response) throws IOException { + PrintWriter writer = response.getWriter(); + writer.println(flashMessage.serializeMessage()); + return null; + } + + /** Send the flash message back to Flash */ + private ActionForward returnWDDXPacket(String serializedFlashMessage, HttpServletResponse response) throws IOException { + PrintWriter writer = response.getWriter(); + writer.println(serializedFlashMessage); + return null; + } + + public ActionForward createXmppId(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response)throws Exception{ + + + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + String xmppIdCreated = XMPPUtil.createId(user); + + FlashMessage flashMessage = null; + try { + flashMessage = new FlashMessage("createXmppId", xmppIdCreated); + } catch (Exception e) { + } + + String wddxPacket = flashMessage.serializeMessage(); + return returnWDDXPacket(wddxPacket, response); + } + + public ActionForward createXmppRoom(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response)throws Exception{ + + String xmppRoomName = (String)WebUtil.readStrParam(request,"xmppRoomName"); + Boolean xmppRoomCreated = XMPPUtil.createMultiUserChat(xmppRoomName); + + FlashMessage flashMessage = null; + try { + flashMessage = new FlashMessage("createXmppRoom", xmppRoomCreated); + } catch (Exception e) { + } + + String wddxPacket = flashMessage.serializeMessage(); + return returnWDDXPacket(wddxPacket, response); + } +} Index: lams_central/src/java/org/lamsfoundation/lams/webservice/WhiteboardToSwfServlet.java =================================================================== diff -u -rcf2c80ce5662e3cce687c44b3d3b78c169f23f20 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/src/java/org/lamsfoundation/lams/webservice/WhiteboardToSwfServlet.java (.../WhiteboardToSwfServlet.java) (revision cf2c80ce5662e3cce687c44b3d3b78c169f23f20) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/WhiteboardToSwfServlet.java (.../WhiteboardToSwfServlet.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -86,7 +86,12 @@ String vShape =request.getParameter("vShape"); String vText =request.getParameter("vText"); String vLine =request.getParameter("vLine"); - + String xMaxInTwips = request.getParameter("xMaxInTwips"); + String yMaxInTwips = request.getParameter("yMaxInTwips"); + String bgColorR = request.getParameter("bgColorR"); + String bgColorB = request.getParameter("bgColorB"); + String bgColorG = request.getParameter("bgColorG"); + Random r = new Random(); String filename = Long.toString(Math.abs(r.nextLong()), 50); @@ -96,71 +101,34 @@ BufferedWriter outFile = new BufferedWriter(new FileWriter(completeFilename)); String fromFlashToFile = trace + author + bgName + bgColor + nPages + nTexts + nLines + nShapes + nFigures + vText + vLine + vShape + vFigure; String correctedFlashToFile = fromFlashToFile.replace("//,", ""); - outFile.write(correctedFlashToFile); + String correctedFlashToFileSecond = correctedFlashToFile.replace("//", ""); + outFile.write(correctedFlashToFileSecond); outFile.close(); - log.debug(correctedFlashToFile); - out.write(correctedFlashToFile); + log.debug(correctedFlashToFileSecond); + out.write(correctedFlashToFileSecond); } catch (IOException e) { } FSMovie movie = new FSMovie(); - movie.setFrameSize(new FSBounds(0, 0, 11000, 8000)); - movie.add(new FSSetBackgroundColor(new FSColor(255,255,255))); + movie.setFrameSize(new FSBounds(0, 0, Integer.valueOf(xMaxInTwips), Integer.valueOf(yMaxInTwips))); + movie.add(new FSSetBackgroundColor(new FSColor(Integer.valueOf(bgColorR),Integer.valueOf(bgColorG),Integer.valueOf(bgColorB)))); movie.setFrameRate(12); movie.setVersion(swfVersion); - - byte[] actionsFromFlash = parser.parse("trace('caca');").encode(swfVersion); - FSDoAction frameFromFlash = new FSDoAction(actionsFromFlash); - movie.add(frameFromFlash); - movie.add(new FSShowFrame()); - - //importSwfFiles(movie, bgClip, Integer.parseInt(nTotal)); - - /* - FSDefineMovieClip logoClip = new FSDefineMovieClip(movie.newIdentifier()); - String actionsString = "createEmptyMovieClip('newShape', 5000);\nnewShape.attachMovie('logo', 'newShape_mc', 5000);\nnewShape._x = 0;\n newShape._y = 0;"; - byte[] actionsLogo = parser.parse(actionsString).encode(swfVersion); - FSPlaceObject2 logoObject = new FSPlaceObject2(logoClip.getIdentifier(), 1, actionsLogo, "logoClip", movie.getFrameSize().getWidth()/2, movie.getFrameSize().getHeight()/2); - movie.add(logoClip); - movie.add(logoObject); - */ - - /* + + importSwfFiles(movie, bgClip, Integer.parseInt(nTotal)); + String readFromFlash = readFile(completeFilename); - FSDefineMovieClip fromFlashClip = new FSDefineMovieClip(movie.newIdentifier()); byte[] actionsFromFlash = parser.parse(readFromFlash).encode(swfVersion); - FSPlaceObject2 fromFlashObject = new FSPlaceObject2(fromFlashClip.getIdentifier(), 1, actionsFromFlash, "fromFlashClip", movie.getFrameSize().getWidth()/2, movie.getFrameSize().getHeight()/2); - movie.add(fromFlashClip); - movie.add(fromFlashObject); - */ - - /* - String readFromFlash = readFile(completeFilename); - byte[] actionsFromFlash = parser.parse(readFromFlash).encode(swfVersion); FSDoAction frameFromFlash = new FSDoAction(actionsFromFlash); movie.add(frameFromFlash); movie.add(new FSShowFrame()); - */ - - /* + String readFromDrawAs = readFile(FILEPATH + "draw.as"); - FSDefineMovieClip fromDrawAsClip = new FSDefineMovieClip(movie.newIdentifier()); byte[] actionsFromDrawAs = parser.parse(readFromDrawAs).encode(swfVersion); - FSPlaceObject2 fromDrawAsObject = new FSPlaceObject2(fromDrawAsClip.getIdentifier(), 1, actionsFromDrawAs, "fromDrawAsClip", movie.getFrameSize().getWidth()/2, movie.getFrameSize().getHeight()/2); - movie.add(fromDrawAsClip); - movie.add(fromDrawAsObject); - - movie.add(new FSShowFrame()); - */ - - /* - String readFromDrawAs = readFile(FILEPATH + "draw.as"); - byte[] actionsFromDrawAs = parser.parse(readFromDrawAs).encode(swfVersion); FSDoAction frameFromDrawAs = new FSDoAction(actionsFromDrawAs); movie.add(frameFromDrawAs); movie.add(new FSShowFrame()); - */ writeFile(movie, FILEPATH, "test.swf"); Index: lams_central/web/includes/javascript/AC_RunActiveContent.js =================================================================== diff -u -rfdf1bec458e3ecbd8c76a098b865f7656d39bf5b -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/web/includes/javascript/AC_RunActiveContent.js (.../AC_RunActiveContent.js) (revision fdf1bec458e3ecbd8c76a098b865f7656d39bf5b) +++ lams_central/web/includes/javascript/AC_RunActiveContent.js (.../AC_RunActiveContent.js) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -27,7 +27,7 @@ function AC_FL_RunContent(){ var ret = AC_GetArgs - ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" + ( arguments, ".swf", "movie", "flashvars", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" , "application/x-shockwave-flash" ); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); @@ -36,13 +36,13 @@ function AC_SW_RunContent(){ var ret = AC_GetArgs - ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000" + ( arguments, ".dcr", "src", "flashvars", "clsid:166B1BCA-3F9C-11CF-8075-444553540000" , null ); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); } -function AC_GetArgs(args, ext, srcParamName, classid, mimeType){ +function AC_GetArgs(args, ext, srcParamName, flashvarsParamName, classid, mimeType){ var ret = new Object(); ret.embedAttrs = new Object(); ret.params = new Object(); @@ -114,6 +114,7 @@ case "name": case "id": case "tabindex": + case "flashvars": ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1]; break; default: Index: lams_central/web/learner.jsp =================================================================== diff -u -r4f68a533e24967e0185132c5e361a8a054f43941 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_central/web/learner.jsp (.../learner.jsp) (revision 4f68a533e24967e0185132c5e361a8a054f43941) +++ lams_central/web/learner.jsp (.../learner.jsp) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -13,10 +13,10 @@ - &portfolioEnabled=&title=&mode="> + &portfolioEnabled=&presenceEnabledPatch=&presenceImEnabled=&presenceUrl=&title=&mode="> - &portfolioEnabled=&title=&mode="> + &portfolioEnabled=&presenceEnabledPatch=&presenceImEnabled=&presenceUrl=&title=&mode="> Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml =================================================================== diff -u -ref2417616a93e7d6f1eaee601fd78455a90564d6 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision ef2417616a93e7d6f1eaee601fd78455a90564d6) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -48,10 +48,16 @@ - + + + + + - + @@ -123,26 +129,6 @@ AND ({lesson}.class_grouping_id IS NULL) AND NOT ({lesson}.lesson_state_id = 7) - - - - SELECT DISTINCT {user.*} - FROM lams_lesson, - lams_grouping, - lams_group, - lams_user_group, - lams_learning_design, - lams_tool_session, - lams_user {user} - WHERE (lams_lesson.class_grouping_id = lams_grouping.grouping_id) - AND (lams_grouping.staff_group_id = lams_group.group_id) - AND (lams_group.group_id = lams_user_group.group_id) - AND ({user}.user_id = lams_user_group.user_id) - AND (lams_tool_session.tool_session_id = :sessionId) - AND (lams_tool_session.lesson_id = lams_lesson.lesson_id) - AND (lams_lesson.learning_design_id = lams_learning_design.learning_design_id) - AND (lams_learning_design.copy_type_id=2) - Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== diff -u -r3538b4ae424da479962e98b7528ad22b44cdd368 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 3538b4ae424da479962e98b7528ad22b44cdd368) +++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -649,6 +649,8 @@ , schedule_end_date_time DATETIME , previous_state_id INT(3) , learner_exportport_avail TINYINT(1) DEFAULT 1 + , learner_presence_avail TINYINT(1) DEFAULT 0 + , learner_im_avail 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 -r3538b4ae424da479962e98b7528ad22b44cdd368 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql (.../patch0013_updateFrom21.sql) (revision 3538b4ae424da479962e98b7528ad22b44cdd368) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql (.../patch0013_updateFrom21.sql) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -34,4 +34,10 @@ , PRIMARY KEY (condition_id) , CONSTRAINT TextSearchConditionInheritance FOREIGN KEY (condition_id) REFERENCES lams_branch_condition(condition_id) ON DELETE CASCADE ON UPDATE CASCADE +)TYPE=InnoDB; + +-- LDEV1929 - Updated script for lesson creation with presence -------------- +CREATE TABLE lams_lesson ( + learner_presence_avail TINYINT(1) DEFAULT 0 + , learner_im_avail TINYINT(1) DEFAULT 0 )TYPE=InnoDB; \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -125,7 +125,13 @@ /** Persistent field. Defaults to FALSE - is not included in the constructor anywhere. */ private Boolean lockedForEdit; + + /** Persistent field. Defaults to FALSE if not set to anything by a constructor parameter. */ + private Boolean learnerPresenceAvailable; + /** Persistent field. Defaults to FALSE if not set to anything by a constructor parameter. */ + private Boolean learnerImAvailable; + //--------------------------------------------------------------------- // constructors //--------------------------------------------------------------------- @@ -140,10 +146,10 @@ */ public Lesson(String name,String description,Date createDateTime, User user, Integer lessonStateId, Integer previousLessonStateId, Boolean learnerExportAvailable, - LearningDesign learningDesign,Set learnerProgresses) + LearningDesign learningDesign,Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { this(null,name,description,createDateTime,null,null,user,lessonStateId,previousLessonStateId, - learnerExportAvailable,false, learningDesign,null,null,learnerProgresses); + learnerExportAvailable,false, learningDesign,null,null,learnerProgresses, learnerPresenceAvailable, learnerImAvailable); } /** @@ -153,17 +159,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) + Organisation organisation, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { this(null,name,description,createDateTime,null,null,user,lessonStateId,previousLessonStateId, - learnerExportAvailable, false, learningDesign,lessonClass,organisation,learnerProgresses); + learnerExportAvailable, false, learningDesign,lessonClass,organisation,learnerProgresses, learnerPresenceAvailable, learnerImAvailable); } /** 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) + Organisation organisation, Set learnerProgresses, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { this.lessonId = lessonId; this.lessonName = name; @@ -175,6 +181,8 @@ this.lessonStateId = lessonStateId; this.previousLessonStateId = previousLessonStateId; this.learnerExportAvailable = learnerExportAvailable != null ? learnerExportAvailable : Boolean.FALSE; + this.learnerPresenceAvailable = learnerPresenceAvailable != null ? learnerPresenceAvailable : Boolean.FALSE; + this.learnerImAvailable = learnerImAvailable != null ? learnerImAvailable : Boolean.FALSE; this.lockedForEdit = false; this.learningDesign = learningDesign; this.lessonClass = lessonClass; @@ -199,7 +207,9 @@ Organisation organisation, Boolean learnerExportAvailable, LearningDesign ld, - LessonClass newLessonClass) + LessonClass newLessonClass, + Boolean learnerPresenceAvailable, + Boolean learnerImAvailable) { //setup new lesson return new Lesson(lessonName, @@ -212,7 +222,9 @@ ld, newLessonClass,//lesson class organisation, - new HashSet());//learner progress + new HashSet(), //learner progress + false, + false); } /** @@ -229,7 +241,9 @@ String lessonDescription, User user, Boolean learnerExportAvailable, - LearningDesign ld) + LearningDesign ld, + Boolean learnerPresenceAvailable, + Boolean learnerImAvailable) { return new Lesson(lessonName, lessonDescription, @@ -239,7 +253,9 @@ null, learnerExportAvailable, ld, - new HashSet()); + new HashSet(), + learnerPresenceAvailable, + learnerImAvailable); } //--------------------------------------------------------------------- // Getters and Setters @@ -417,7 +433,31 @@ public void setLearnerExportAvailable(Boolean learnerExportAvailable) { this.learnerExportAvailable = learnerExportAvailable; } + + /** + * @hibernate.property type="java.lang.Boolean" column="learner_presence_avail" + * length="1" + */ + public Boolean getLearnerPresenceAvailable() { + return learnerPresenceAvailable; + } + public void setLearnerPresenceAvailable(Boolean learnerPresenceAvailable) { + this.learnerPresenceAvailable = learnerPresenceAvailable; + } + + /** + * @hibernate.property type="java.lang.Boolean" column="learner_exportport_avail" + * length="1" + */ + public Boolean getLearnerImAvailable() { + return learnerImAvailable; + } + + public void setLearnerImAvailable(Boolean learnerImAvailable) { + this.learnerImAvailable = learnerImAvailable; + } + /** * @hibernate.property type="java.lang.Boolean" column="locked_for_edit" * length="1" Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java =================================================================== diff -u -rc29258b9eeb1ed3109649bedc379f876aadea91a -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java (.../LessonDTO.java) (revision c29258b9eeb1ed3109649bedc379f876aadea91a) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java (.../LessonDTO.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -56,6 +56,8 @@ private Date startDateTime; private Long learningDesignID; private Boolean learnerExportAvailable; + private Boolean learnerPresenceAvailable; + private Boolean learnerImAvailable; //--------------------------------------------------------------------- // Construtors @@ -76,6 +78,8 @@ this.createDateTime = lesson.getCreateDateTime(); this.startDateTime = lesson.getStartDateTime(); this.learnerExportAvailable = lesson.getLearnerExportAvailable(); + this.learnerPresenceAvailable = lesson.getLearnerPresenceAvailable(); + this.learnerImAvailable = lesson.getLearnerImAvailable(); } //--------------------------------------------------------------------- // Getters @@ -134,6 +138,14 @@ return learnerExportAvailable; } + public Boolean getLearnerPresenceAvailable() { + return learnerPresenceAvailable; + } + + public Boolean getLearnerImAvailable() { + return learnerImAvailable; + } + /** * Returns the String representation of lesson data transfer object. * @see java.lang.Object#toString() @@ -150,6 +162,8 @@ sb.append("createDateTime='" + getCreateDateTime() + "'; "); sb.append("startDateTime='" + getStartDateTime() + "'; "); sb.append("learnerExportAvailable='" + getLearnerExportAvailable() + "'; "); + sb.append("learnerPresenceAvailable='" + getLearnerPresenceAvailable() + "'; "); + sb.append("learnerImAvailable='" + getLearnerImAvailable() + "'; "); return sb.toString(); } } Index: lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java =================================================================== diff -u -r40fd34ca6bc3ae5e5466f8c9a17047427f9cd43b -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 40fd34ca6bc3ae5e5466f8c9a17047427f9cd43b) +++ lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -64,6 +64,9 @@ public static final String PARAM_DIRECTORY_NAME = "directoryName"; public static final String PARAM_FILENAME = "filename"; public static final String PARAM_EXPORT_PORTFOLIO_ENABLED = "portfolioEnabled"; + public static final String PARAM_PRESENCE_ENABLED = "presenceEnabledPatch"; + // PARAM_PRESENCE_ENABLED = "presenceEnabledPatch" : strange name used to avoid Java overwriting values in its a hashmap used in learner action in HomeAction.java + public static final String PARAM_PRESENCE_IM_ENABLED = "presenceImEnabled"; public static final String PARAM_CURRENT_TAB = "currentTab"; public static final String PARAM_CUSTOM_CSV = "customCSV"; public static final String PARAM_EXT_LMS_ID = "extlmsid"; Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -248,7 +248,9 @@ testLearningDesign, testLessonClass,//lesson class testOrg, - new HashSet());//learner progress + new HashSet(), + false, + false);//learner progress } Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java =================================================================== diff -u -rdea9100eb459aedcd96021a4bc1d2d48edff0631 -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision dea9100eb459aedcd96021a4bc1d2d48edff0631) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -120,7 +120,9 @@ null, testUser, true, - testLearningDesign); + testLearningDesign, + false, + false); try { Index: lams_common/test/java/org/lamsfoundation/lams/lesson/service/TestLessonService.java =================================================================== diff -u -r6e28b4c5a11066c7bc30f13e0a1a8faeada5674e -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_common/test/java/org/lamsfoundation/lams/lesson/service/TestLessonService.java (.../TestLessonService.java) (revision 6e28b4c5a11066c7bc30f13e0a1a8faeada5674e) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/service/TestLessonService.java (.../TestLessonService.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -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); + Lesson newLesson = Lesson.createNewLessonWithoutClass("test lesson", "test lesson", mmm, true, null, false, false); lessonDAO.saveLesson(newLesson); Organisation organisation = (Organisation) baseDAO.find(Organisation.class, TEST_ORG_ID); Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -r418a30a76094c56762b5beb23cb2dd72619e316c -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 418a30a76094c56762b5beb23cb2dd72619e316c) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -69,7 +69,7 @@ * @return the lesson initialized. */ public Lesson initializeLesson(String lessonName, String lessonDescription, Boolean learnerExportAvailable, - long learningDesignId, Integer organisationId, Integer userID, String customCSV); + long learningDesignId, Integer organisationId, Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable); /** * Initialize a new lesson so as to start the learning process for a normal or preview learning session. @@ -89,7 +89,7 @@ * The design is not assigned to any workspace folder. */ public Lesson initializeLessonForPreview(String lessonName, String lessonDescription, long learningDesignId, Integer userID, - String customCSV); + String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable); /** * Create a lession according to the input lession WDDX package. The sample package is following: Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r209087915bc219f430c282ad00e5d1e6462f9b5f -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 209087915bc219f430c282ad00e5d1e6462f9b5f) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -318,7 +318,7 @@ * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#initializeLesson(String, String, long, Integer) */ public Lesson initializeLesson(String lessonName, String lessonDescription, Boolean learnerExportAvailable, - long learningDesignId, Integer organisationId, Integer userID, String customCSV) { + long learningDesignId, Integer organisationId, Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { LearningDesign originalLearningDesign = authoringService.getLearningDesign(new Long(learningDesignId)); if (originalLearningDesign == null) { @@ -353,7 +353,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); + runSeqFolder, LearningDesign.COPY_TYPE_LESSON, customCSV, learnerPresenceAvailable, learnerImAvailable); } @@ -363,7 +363,7 @@ * The design is not assigned to any workspace folder. */ public Lesson initializeLessonForPreview(String lessonName, String lessonDescription, long learningDesignId, Integer userID, - String customCSV) { + String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { LearningDesign originalLearningDesign = authoringService.getLearningDesign(new Long(learningDesignId)); if (originalLearningDesign == null) { throw new MonitoringServiceException("Learning design for id=" + learningDesignId @@ -372,11 +372,11 @@ 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); + LearningDesign.COPY_TYPE_PREVIEW, customCSV, learnerPresenceAvailable, learnerImAvailable); } public Lesson initializeLesson(String lessonName, String lessonDescription, Boolean learnerExportAvailable, - LearningDesign originalLearningDesign, User user, WorkspaceFolder workspaceFolder, int copyType, String customCSV) { + LearningDesign originalLearningDesign, User user, WorkspaceFolder workspaceFolder, int copyType, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { //copy the current learning design LearningDesign copiedLearningDesign = authoringService.copyLearningDesign(originalLearningDesign, new Integer(copyType), @@ -387,7 +387,7 @@ String title = lessonName != null ? lessonName : copiedLearningDesign.getTitle(); title = title != null ? title : "Unknown Lesson"; - Lesson lesson = createNewLesson(title, lessonDescription, user, learnerExportAvailable, copiedLearningDesign); + Lesson lesson = createNewLesson(title, lessonDescription, user, learnerExportAvailable, copiedLearningDesign, learnerPresenceAvailable, learnerImAvailable); auditAction(MonitoringService.AUDIT_LESSON_CREATED_KEY, new Object[] { lessonName, copiedLearningDesign.getTitle(), learnerExportAvailable }); return lesson; @@ -412,17 +412,21 @@ .get(AttributeNames.PARAM_LEARNINGDESIGN_ID)); boolean learnerExportAvailable = WDDXProcessor.convertToBoolean("learnerExportPortfolio", table .get("learnerExportPortfolio")); + boolean learnerPresenceAvailable = WDDXProcessor.convertToBoolean("enablePresence", table + .get("enablePresence")); + boolean learnerImAvailable = WDDXProcessor.convertToBoolean("enableIm", table + .get("enableIm")); String customCSV = WDDXProcessor.convertToString(WDDXTAGS.CUSTOM_CSV, table.get(WDDXTAGS.CUSTOM_CSV)); // initialize lesson Lesson newLesson = null; if (copyType == LearningDesign.COPY_TYPE_PREVIEW) { - newLesson = initializeLessonForPreview(title, desc, ldId, creatorUserId, customCSV); + newLesson = initializeLessonForPreview(title, desc, ldId, creatorUserId, customCSV, learnerPresenceAvailable, learnerImAvailable); } else { - newLesson = initializeLesson(title, desc, learnerExportAvailable, ldId, organisationId, creatorUserId, customCSV); + newLesson = initializeLesson(title, desc, learnerExportAvailable, ldId, organisationId, creatorUserId, customCSV, learnerPresenceAvailable, learnerImAvailable); } if (newLesson != null) { @@ -1741,9 +1745,9 @@ * */ private Lesson createNewLesson(String lessonName, String lessonDescription, User user, Boolean learnerExportAvailable, - LearningDesign copiedLearningDesign) { + LearningDesign copiedLearningDesign, Boolean learnerPresenceAvailable, Boolean learnerImAvailable) { Lesson newLesson = Lesson.createNewLessonWithoutClass(lessonName, lessonDescription, user, learnerExportAvailable, - copiedLearningDesign); + copiedLearningDesign, learnerPresenceAvailable, learnerImAvailable); lessonDAO.saveLesson(newLesson); return newLesson; } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -r8e93b3a767193227999bb78467b78114acb079dd -r4b24094f139dd10a9779ce6e678cb8ca38317148 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 8e93b3a767193227999bb78467b78114acb079dd) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 4b24094f139dd10a9779ce6e678cb8ca38317148) @@ -175,7 +175,9 @@ Integer organisationId = WebUtil.readIntParam(request,"organisationID",true); long ldId = WebUtil.readLongParam(request, AttributeNames.PARAM_LEARNINGDESIGN_ID); Boolean learnerExportAvailable = WebUtil.readBooleanParam(request, "learnerExportPortfolio", false); - Lesson newLesson = monitoringService.initializeLesson(title,desc,learnerExportAvailable,ldId,organisationId,getUserId(), null); + 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); flashMessage = new FlashMessage("initializeLesson",newLesson.getLessonId()); } catch (Exception e) { Index: lams_monitoring/web/lams_monitoring.swf =================================================================== diff -u -r712d6bf4194c9a9dbdc67b739fbb2fcbcf2711f1 -r4b24094f139dd10a9779ce6e678cb8ca38317148 Binary files differ Index: lams_monitoring/web/lams_monitoring_library.swf =================================================================== diff -u -r712d6bf4194c9a9dbdc67b739fbb2fcbcf2711f1 -r4b24094f139dd10a9779ce6e678cb8ca38317148 Binary files differ Index: lams_monitoring/web/lams_wizard.swf =================================================================== diff -u -rc9c32e6dd572edaad6ed4e8eb39821ca20c0c26a -r4b24094f139dd10a9779ce6e678cb8ca38317148 Binary files differ Index: lams_monitoring/web/lams_wizard_library.swf =================================================================== diff -u -rc9c32e6dd572edaad6ed4e8eb39821ca20c0c26a -r4b24094f139dd10a9779ce6e678cb8ca38317148 Binary files differ