Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java,v diff -u -r1.81 -r1.82 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 6 Nov 2008 01:29:23 -0000 1.81 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 12 Nov 2008 08:35:46 -0000 1.82 @@ -801,9 +801,9 @@ public LearnerProgress getLearnerProgress(Integer learnerId, Long lessonId); /** - * Start multiple lessons in one call. + * Initialize and create multiple lessons in one call. */ - public boolean startLessons(Integer creatorUserId, String lessonPacket) throws Exception; + public List initializeAndCreateLessons(Integer creatorUserId, String lessonPacket) throws Exception; /** * Set a groups name Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java,v diff -u -r1.143 -r1.144 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 6 Nov 2008 01:56:25 -0000 1.143 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 12 Nov 2008 08:35:45 -0000 1.144 @@ -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 */ @@ -2624,18 +2624,15 @@ .get("enablePresence")); boolean learnerImAvailable = WDDXProcessor.convertToBoolean("enableIm", table.get("enableIm")); String customCSV = WDDXProcessor.convertToString(WDDXTAGS.CUSTOM_CSV, table.get(WDDXTAGS.CUSTOM_CSV)); - boolean multiple = WDDXProcessor.convertToBoolean("multiple", table.get("multiple")); - int numLessons = WDDXProcessor.convertToInt("numLessons", table.get("numLessons")); + int numLessons = WDDXProcessor.convertToInt("numberLessonsSplit", table.get("numberLessonsSplit")); // initialise multiple lessons - if (multiple) { - 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); + lessonIds.add(newLesson.getLessonId()); } } @@ -2656,8 +2653,8 @@ Hashtable table = (Hashtable) WDDXProcessor.deserialize(lessonPacket); // multiple lesson info - int numLessons = WDDXProcessor.convertToInt("numLessons", table.get("numLessons")); - int learnersPerLesson = WDDXProcessor.convertToInt("learnersPerLesson", table.get("learnersPerLesson")); + int numLessons = WDDXProcessor.convertToInt("numberLessonsSplit", table.get("numberLessonsSplit")); + int learnersPerLesson = WDDXProcessor.convertToInt("numberLearnersSplit", table.get("numberLearnersSplit")); // todo: convert:data type: Integer orgId = WDDXProcessor.convertToInteger(MonitoringConstants.KEY_ORGANISATION_ID, table @@ -2734,29 +2731,25 @@ /** * Start multiple lessons in one call. */ - public boolean startLessons(Integer creatorUserId, String lessonPacket) throws Exception { + public List initializeAndCreateLessons(Integer creatorUserId, String lessonPacket) throws Exception { + List lessonIds = new ArrayList(); try { - List lessonIds = new ArrayList(); lessonIds = initializeLessons(creatorUserId, lessonPacket); - if (createLessonClasses(creatorUserId, lessonPacket, lessonIds)) { - for (Long lessonId : lessonIds) { - startLesson(lessonId, creatorUserId); - } - } - return true; + createLessonClasses(creatorUserId, lessonPacket, lessonIds); } catch (Exception e) { MonitoringService.log.error("Exception occured trying to start lessons ", e); throw new Exception(e); } + 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/StartLessonsServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/Attic/StartLessonsServlet.java,v diff -u -r1.1 -r1.2 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/StartLessonsServlet.java 5 Nov 2008 04:05:38 -0000 1.1 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/StartLessonsServlet.java 12 Nov 2008 08:35:46 -0000 1.2 @@ -24,6 +24,8 @@ /* $$Id$$ */ package org.lamsfoundation.lams.monitoring.web; +import java.util.List; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -40,13 +42,11 @@ import org.springframework.web.context.support.WebApplicationContextUtils; /** - * Servlet for flash to call in order to initialise, create lesson classes for, - * and start multiple lessons. + * Servlet for flash to call in order to initialise and create lesson classes for + * multiple lessons. * - * @author Jun-Dir Liew - * - * @web:servlet name="startLessons" - * @web:servlet-mapping url-pattern="/startLessons" + * @web:servlet name="initializeAndCreateLessons" + * @web:servlet-mapping url-pattern="/initializeAndCreateLessons" */ public class StartLessonsServlet extends AbstractStoreWDDXPacketServlet { // --------------------------------------------------------------------- @@ -57,13 +57,13 @@ private static final long serialVersionUID = 2349582345234543680L; private static IAuditService auditService; - + private static String messageKey = "startLessons"; protected String process(String lessonPackage, HttpServletRequest request) throws Exception { FlashMessage flashMessage; auditService = getAuditService(); - + // get User infomation from shared session. HttpSession ss = SessionManager.getSession(); @@ -72,8 +72,7 @@ if (userID == null) { log.error("Can not find valid login user information"); - flashMessage = new FlashMessage(messageKey, "Can not find valid login user information", - FlashMessage.ERROR); + flashMessage = new FlashMessage(messageKey, "Can not find valid login user information", FlashMessage.ERROR); } if (log.isDebugEnabled()) { @@ -82,17 +81,22 @@ try { IMonitoringService monitoringService = getMonitoringService(); - if (monitoringService.startLessons(userID, lessonPackage)) { - flashMessage = new FlashMessage(messageKey, Boolean.TRUE); + 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); } else { - flashMessage = new FlashMessage(messageKey, Boolean.FALSE); + flashMessage = new FlashMessage(messageKey, ""); } } catch (Exception e) { log.error("Exception thrown while starting lessons.", e); flashMessage = FlashMessage.getExceptionOccured(messageKey, e.getMessage()); auditService.log(StartLessonsServlet.class.getName(), e.getMessage()); } - + return flashMessage.serializeMessage(); }