Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -rf51eef8d23931e557f48c8896a22aa4cf23d6716 -r27f47ef2e914561477b1fc5e8cf3f72cd01b1001 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision f51eef8d23931e557f48c8896a22aa4cf23d6716) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 27f47ef2e914561477b1fc5e8cf3f72cd01b1001) @@ -179,6 +179,48 @@ } /** + * Initializes a lesson for specific learning design with the given lesson title and lesson description. If + * initialization is successed, this method will return a WDDX message which includes the ID of new lesson. + * + * Currently used only in TestHarness. + */ + public ActionForward initializeLesson(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws IOException, ServletException { + + IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet() + .getServletContext()); + FlashMessage flashMessage = null; + + try { + String title = WebUtil.readStrParam(request, "lessonName"); + if (title == null) + title = "lesson"; + String desc = WebUtil.readStrParam(request, "lessonDescription", true); + if (desc == null) + desc = "description"; + Integer organisationId = WebUtil.readIntParam(request, "organisationID", true); + long ldId = WebUtil.readLongParam(request, AttributeNames.PARAM_LEARNINGDESIGN_ID); + Boolean learnerExportAvailable = WebUtil.readBooleanParam(request, "learnerExportPortfolio", false); + Boolean learnerPresenceAvailable = WebUtil.readBooleanParam(request, "learnerPresenceAvailable", false); + Boolean learnerImAvailable = WebUtil.readBooleanParam(request, "learnerImAvailable", false); + Boolean liveEditEnabled = WebUtil.readBooleanParam(request, "liveEditEnabled", false); + Lesson newLesson = monitoringService.initializeLesson(title, desc, ldId, organisationId, getUserId(), null, + Boolean.FALSE, Boolean.FALSE, learnerExportAvailable, learnerPresenceAvailable, learnerImAvailable, + liveEditEnabled, Boolean.FALSE, null, null); + + flashMessage = new FlashMessage("initializeLesson", newLesson.getLessonId()); + } catch (Exception e) { + flashMessage = handleException(e, "initializeLesson", monitoringService); + } + + String message = flashMessage.serializeMessage(); + + PrintWriter writer = response.getWriter(); + writer.println(message); + return null; + } + + /** * The Struts dispatch method that starts a lesson that has been created beforehand. Most likely, the request to * start lesson should be triggered by the flash component. This method will delegate to the Spring service bean to * complete all the steps for starting a lesson. Finally, a wddx acknowledgement message will be serialized and sent @@ -743,7 +785,7 @@ } } } - + response.setContentType("application/json;charset=utf-8"); response.getWriter().write(responseJSON.toString()); return null; @@ -1274,7 +1316,7 @@ responseJSON.put("startDate", indfm.format(tzStartDate) + " " + user.getTimeZone().getDisplayName(userLocale)); } - + response.setContentType("application/json;charset=utf-8"); response.getWriter().write(responseJSON.toString()); return null;