Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayActivityAction.java =================================================================== diff -u -r7d5e18b6ddc40f4de3d34eefa114afc297724289 -r0d064806d262c256111bd37392a61e856d83caee --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayActivityAction.java (.../DisplayActivityAction.java) (revision 7d5e18b6ddc40f4de3d34eefa114afc297724289) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayActivityAction.java (.../DisplayActivityAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -24,6 +24,9 @@ /* $$Id$$ */ package org.lamsfoundation.lams.learning.web.action; +import java.util.Iterator; +import java.util.Set; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -132,4 +135,6 @@ } return progressSummary.toString(); } + + } \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayToolActivityAction.java =================================================================== diff -u -rcdb910b6cd3de106725e2c22ded380c5c0fab650 -r0d064806d262c256111bd37392a61e856d83caee --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayToolActivityAction.java (.../DisplayToolActivityAction.java) (revision cdb910b6cd3de106725e2c22ded380c5c0fab650) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayToolActivityAction.java (.../DisplayToolActivityAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -24,17 +24,17 @@ /* $$Id$$ */ package org.lamsfoundation.lams.learning.web.action; -import javax.servlet.http.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; -import org.lamsfoundation.lams.learning.web.form.ActivityForm; - -import org.lamsfoundation.lams.learningdesign.*; -import org.lamsfoundation.lams.lesson.*; import org.lamsfoundation.lams.learning.web.util.ActivityMapping; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; +import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.ToolActivity; +import org.lamsfoundation.lams.lesson.LearnerProgress; /** * Action class to forward the user to a Tool. @@ -58,7 +58,7 @@ HttpServletRequest request, HttpServletResponse response) { - ActivityForm form = (ActivityForm)actionForm; + //ActivityForm form = (ActivityForm)actionForm; ActivityMapping actionMappings = getActivityMapping(); LearnerProgress learnerProgress = getLearnerProgress(request); @@ -71,7 +71,8 @@ ToolActivity toolActivity = (ToolActivity)activity; - String url = actionMappings.getLearnerToolURL(toolActivity, learnerProgress.getUser()); + String url = actionMappings.getLearnerToolURL(learnerProgress.getLesson().getLessonId(), + toolActivity, learnerProgress.getUser()); try { response.sendRedirect(url); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java =================================================================== diff -u -r0977a832c3e57655f1031778702ce6ea0e122985 -r0d064806d262c256111bd37392a61e856d83caee --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -395,8 +395,9 @@ Activity requestedActivity = learnerService.getActivity(new Long(activityId)); //preparing tranfer object for flash + LearnerProgress learnerProgress = LearningWebUtil.getLearnerProgressByUser(request,getServlet().getServletContext()); ProgressActivityDTO activityDTO = new ProgressActivityDTO(new Long(activityId), - activityMapping.calculateActivityURLForProgressView(learner,requestedActivity)); + activityMapping.calculateActivityURLForProgressView(learnerProgress.getLesson().getLessonId(),learner,requestedActivity)); //send data back to flash. message = new FlashMessage("getLearnerActivityURL",activityDTO); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LoadToolActivityAction.java =================================================================== diff -u -rcdb910b6cd3de106725e2c22ded380c5c0fab650 -r0d064806d262c256111bd37392a61e856d83caee --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LoadToolActivityAction.java (.../LoadToolActivityAction.java) (revision cdb910b6cd3de106725e2c22ded380c5c0fab650) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LoadToolActivityAction.java (.../LoadToolActivityAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -34,14 +34,14 @@ import org.lamsfoundation.lams.learning.service.LearnerServiceProxy; import org.lamsfoundation.lams.learning.web.bean.ActivityURL; import org.lamsfoundation.lams.learning.web.form.ActivityForm; - -import org.lamsfoundation.lams.learningdesign.*; -import org.lamsfoundation.lams.lesson.*; import org.lamsfoundation.lams.learning.web.util.ActivityMapping; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; +import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.lesson.LearnerProgress; /** - * Action class to forward the user to a Tool using an intermediate loading page. + * Action class to forward the user to a Tool using an intermediate loading page. Can handle + * regular tools + grouping and gates (system tools) * * XDoclet definition: * @@ -69,22 +69,17 @@ LearnerProgress learnerProgress = getLearnerProgress(request); Activity activity = LearningWebUtil.getActivityFromRequest(request, getLearnerService()); - // With Hibernate 3.x the activity is sometimes the proxy, not a true - // ToolActivity. - if (!(activity instanceof ToolActivity)) - { + form.setActivityId(activity.getActivityId()); + + if (activity.isToolActivity() || activity.isSystemToolActivity() ) { + String url = actionMappings.getLearnerToolURL(learnerProgress.getLesson().getLessonId(), + activity, learnerProgress.getUser()); + form.addActivityURL(new ActivityURL(activity.getActivityId(),url)); + } else { log.error(className+": activity not ToolActivity"); return mapping.findForward(ActivityMapping.ERROR); } - ToolActivity toolActivity = (ToolActivity)activity; - - form.setActivityId(activity.getActivityId()); - - String url = actionMappings.getLearnerToolURL(toolActivity, learnerProgress.getUser()); - - form.addActivityURL(new ActivityURL(activity.getActivityId(),url)); - return mapping.findForward("displayTool"); } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java =================================================================== diff -u -r0977a832c3e57655f1031778702ce6ea0e122985 -r0d064806d262c256111bd37392a61e856d83caee --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -245,7 +245,6 @@ { String activityURL = null; - // TODO: lesson complete if (progress.isLessonComplete()) { // If lesson complete forward to lesson complete action. This action will @@ -256,8 +255,6 @@ } else { - //Activity currentActivity = progress.getCurrentActivity(); - if (progress.isParallelWaiting()) { // progress is waiting, goto waiting page @@ -291,17 +288,17 @@ } /** - * Generates an ActivityURL for a Tool Activity. The URL is for the tool and - * not for the tool loading page. The URL also includes toolSessionId and all - * other required data. - * @param activity, the ToolActivity to be displayed + * Generates an ActivityURL for a Tool Activity or SystemToolActivity. + * The URL is for the tool and not for the tool loading page. The URL also + * includes toolSessionId or toolContentId and all other required data. + * @param activity, the Activity to be displayed * @param progress, the current LearnerProgress, used to get activity status */ - public String getLearnerToolURL(ToolActivity activity, User learner) + public String getLearnerToolURL(Long lessonID, Activity activity, User learner) { try { - return toolService.getToolLearnerURL(activity,learner); + return toolService.getToolLearnerURL(lessonID,activity,learner); } catch (LamsToolServiceException e) { @@ -372,13 +369,13 @@ * @param activity the activity the learner want to view * @return the url for that tool. */ - public String calculateActivityURLForProgressView(User learner, + public String calculateActivityURLForProgressView(Long lessonID, User learner, Activity activity) { if (activity.isToolActivity()) { - return getLearnerToolURL(((ToolActivity) activity), learner); + return getLearnerToolURL(lessonID, ((ToolActivity) activity), learner); } else if (activity.isGroupingActivity()) //TODO need to be changed when group action servlet is done Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java =================================================================== diff -u -r0977a832c3e57655f1031778702ce6ea0e122985 -r0d064806d262c256111bd37392a61e856d83caee --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java (.../ActivityMappingStrategy.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java (.../ActivityMappingStrategy.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -50,18 +50,9 @@ else if (activity.isOptionsActivity()) strutsAction = "/DisplayOptionsActivity.do"; } - else // should be a simple activity + else // should be a simple activity - can handle tool, gates and grouping { - if ( activity.isGroupingActivity()) { - strutsAction = "/grouping.do?method=performGrouping"; - } - else if (activity.isGateActivity()) { - strutsAction = "/gate.do?method=knockGate"; - // not completed so return wait URL - } - else if (activity.isToolActivity()) { - strutsAction = "/LoadToolActivity.do"; - } + strutsAction = "/LoadToolActivity.do"; } return strutsAction; } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/ContributeDTOFactory.java =================================================================== diff -u -r049f9b1332a5f65c5de9d5b4f891b93fe429ae63 -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/ContributeDTOFactory.java (.../ContributeDTOFactory.java) (revision 049f9b1332a5f65c5de9d5b4f891b93fe429ae63) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/ContributeDTOFactory.java (.../ContributeDTOFactory.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -24,29 +24,23 @@ /* $Id$ */ package org.lamsfoundation.lams.monitoring; -import java.io.IOException; - -import org.apache.log4j.Logger; -import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ComplexActivity; import org.lamsfoundation.lams.learningdesign.ContributionTypes; -import org.lamsfoundation.lams.learningdesign.LearningDesignProcessor; import org.lamsfoundation.lams.learningdesign.SimpleActivity; import org.lamsfoundation.lams.learningdesign.ToolActivity; -import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO; import org.lamsfoundation.lams.learningdesign.strategy.SimpleActivityStrategy; +import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; +import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; import org.lamsfoundation.lams.util.WebUtil; -import org.lamsfoundation.lams.util.wddx.FlashMessage; -import org.lamsfoundation.lams.web.util.AttributeNames; public class ContributeDTOFactory { - private static Logger log = Logger.getLogger(LearningDesignProcessor.class); /** Get the Contribute DTO for this activity. As a SimpleActivity * it only returns a contribute DTO if there is a contribution entry. + * @throws LamsToolServiceException */ - public static ContributeActivityDTO getContributeActivityDTO(SimpleActivity activity) + public static ContributeActivityDTO getContributeActivityDTO(Long lessonID, SimpleActivity activity, ILamsCoreToolService toolService) throws LamsToolServiceException { ContributeActivityDTO dto = null; SimpleActivityStrategy strategy = activity.getSimpleActivityStrategy(); @@ -56,33 +50,31 @@ dto = new ContributeActivityDTO(activity); for(int i=0;i mainActivityList; ArrayStack activityListStack; Vector currentActivityList; + ILamsCoreToolService toolService; + Long lessonID; - public ContributeActivitiesProcessor(LearningDesign design, - IActivityDAO activityDAO) { + public ContributeActivitiesProcessor(LearningDesign design, Long lessonID, + IActivityDAO activityDAO, ILamsCoreToolService toolService) { super(design, activityDAO); - mainActivityList = new Vector(); - activityListStack = new ArrayStack(5); - currentActivityList = mainActivityList; + this.lessonID = lessonID; + this.toolService = toolService; + this.mainActivityList = new Vector(); + this.activityListStack = new ArrayStack(5); + this.currentActivityList = mainActivityList; } public Vector getMainActivityList() { @@ -112,10 +113,14 @@ // nothing to do - everything done by the end } - public void endSimpleActivity(SimpleActivity activity) { - ContributeActivityDTO dto = ContributeDTOFactory.getContributeActivityDTO(activity); - if ( dto != null ) { - currentActivityList.add(dto); + public void endSimpleActivity(SimpleActivity activity) throws LearningDesignProcessorException { + try { + ContributeActivityDTO dto = ContributeDTOFactory.getContributeActivityDTO(lessonID, activity, toolService); + if ( dto != null ) { + currentActivityList.add(dto); + } + } catch ( LamsToolServiceException e) { + throw new LearningDesignProcessorException(e); } } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java =================================================================== diff -u -r049f9b1332a5f65c5de9d5b4f891b93fe429ae63 -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 049f9b1332a5f65c5de9d5b4f891b93fe429ae63) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (.../IMonitoringService.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -31,6 +31,7 @@ import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.GroupingActivity; +import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.Organisation; @@ -41,7 +42,6 @@ /** * TODO Missing methods * archiveLesson - * getMonitorURL * * Interface defines all monitoring services needed by presentation tier. * @author Jacky Fang 2/02/2005 @@ -281,7 +281,7 @@ * @return String The required information in WDDX format * @throws IOException */ - public String getAllContributeActivities(Long lessonID)throws IOException; + public String getAllContributeActivities(Long lessonID)throws IOException, LearningDesignProcessorException; /** * This method returns the url associated with the activity in the monitoring @@ -291,31 +291,37 @@ * * This is also known as the learner progress url. * + * @param lessonID The lesson_id of the Lesson for which the information has + * to be fetched. * @param activityID The activity_id of the activity for which the URL is required * @param userID The user_id of the Learner for whom the URL is being fetched * @return String The required information in WDDX format * @throws IOException * @throws LamsToolServiceException */ - public String getLearnerActivityURL(Long activityID,Integer userID)throws IOException,LamsToolServiceException; + public String getLearnerActivityURL(Long lessonID, Long activityID,Integer userID)throws IOException,LamsToolServiceException; /** * This method returns the define later url for the given activity * + * @param lessonID The lesson_id of the Lesson for which the information has + * to be fetched. * @param activityID The activity_id of the Activity whose URL will be returned * @return String The required information in WDDX format * @throws IOException */ - public String getActivityDefineLaterURL(Long activityID)throws IOException; + public String getActivityDefineLaterURL(Long lessonID, Long activityID)throws IOException, LamsToolServiceException; /** * This method returns the monitor url for the given activity * + * @param lessonID The lesson_id of the Lesson for which the information has + * to be fetched. * @param activityID The activity_id of the Activity whose URL will be returned * @return String The required information in WDDX format * @throws IOException */ - public String getActivityMonitorURL(Long activityID)throws IOException; + public String getActivityMonitorURL(Long lessonID, Long activityID)throws IOException, LamsToolServiceException; /** * This method moves the learning design corresponding to the given Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r049f9b1332a5f65c5de9d5b4f891b93fe429ae63 -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 049f9b1332a5f65c5de9d5b4f891b93fe429ae63) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -55,13 +55,13 @@ import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO; import org.lamsfoundation.lams.learningdesign.dao.ITransitionDAO; import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO; +import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.LessonClass; import org.lamsfoundation.lams.lesson.dao.ILessonClassDAO; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dto.LessonDTO; -import org.lamsfoundation.lams.monitoring.ContributeDTOFactory; import org.lamsfoundation.lams.monitoring.MonitoringConstants; import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.tool.exception.DataMissingException; @@ -81,11 +81,9 @@ import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; -import org.lamsfoundation.lams.web.util.AttributeNames; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; @@ -922,11 +920,12 @@ * (non-Javadoc) * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#getAllContributeActivities(java.lang.Long) */ - public String getAllContributeActivities(Long lessonID)throws IOException{ + public String getAllContributeActivities(Long lessonID)throws IOException, LearningDesignProcessorException{ Lesson lesson = lessonDAO.getLesson(lessonID); FlashMessage flashMessage; if(lesson!=null){ - ContributeActivitiesProcessor processor = new ContributeActivitiesProcessor(lesson.getLearningDesign(),activityDAO); + ContributeActivitiesProcessor processor = new ContributeActivitiesProcessor(lesson.getLearningDesign(), + lessonID, activityDAO,lamsCoreToolService); processor.parseLearningDesign(); Vector activities = processor.getMainActivityList(); flashMessage = new FlashMessage("getAllContributeActivities",activities); @@ -941,38 +940,43 @@ * (non-Javadoc) * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#getLearnerActivityURL(java.lang.Long, java.lang.Integer) */ - public String getLearnerActivityURL(Long activityID,Integer userID)throws IOException, LamsToolServiceException{ + public String getLearnerActivityURL(Long lessonID, Long activityID,Integer userID)throws IOException, LamsToolServiceException{ Activity activity = activityDAO.getActivityByActivityId(activityID); User user = userManagementService.getUserById(userID); - FlashMessage flashMessage; + FlashMessage flashMessage=null; if(activity==null || user==null){ flashMessage = new FlashMessage("getLearnerActivityURL", messageService.getMessage("INVALID.ACTIVITYID.USER", new Object[]{ activityID,userID }), FlashMessage.ERROR); - }else{ - if(activity.isToolActivity()){ - ToolActivity toolActivity = (ToolActivity)activity; - String toolURL = lamsCoreToolService.getToolLearnerProgressURL(toolActivity,user); - flashMessage = new FlashMessage("getLearnerActivityURL",new ProgressActivityDTO(activityID,toolURL)); - }else{ + } else if ( activity.isToolActivity() || activity.isSystemToolActivity() ){ + String toolURL = lamsCoreToolService.getToolLearnerProgressURL(lessonID, activity,user); + flashMessage = new FlashMessage("getLearnerActivityURL",new ProgressActivityDTO(activityID,toolURL)); + } + if ( flashMessage == null ) { flashMessage = new FlashMessage("getLearnerActivityURL", messageService.getMessage("INVALID.ACTIVITYID.TYPE", new Object[]{ activity.getActivityId()}), FlashMessage.ERROR); - } - } + } return flashMessage.serializeMessage(); } /** * (non-Javadoc) * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#getActivityDefineLaterURL(java.lang.Long) */ - public String getActivityDefineLaterURL(Long activityID)throws IOException{ + public String getActivityDefineLaterURL(Long lessonID, Long activityID)throws IOException, LamsToolServiceException{ Activity activity = activityDAO.getActivityByActivityId(activityID); FlashMessage flashMessage = null; if(activity!=null){ - String url = ContributeDTOFactory.getActivityDefineLaterURL(activity); - flashMessage = new FlashMessage("getActivityDefineLaterURL",new ProgressActivityDTO(activityID, url)); + if ( activity.isToolActivity() ) { + ToolActivity toolActivity = (ToolActivity) activity; + String url = lamsCoreToolService.getToolDefineLaterURL(toolActivity); + flashMessage = new FlashMessage("getActivityDefineLaterURL",new ProgressActivityDTO(activityID, url)); + } else { + flashMessage = new FlashMessage("getLearnerActivityURL", + messageService.getMessage("INVALID.ACTIVITYID.TYPE", new Object[]{ activity.getActivityId()}), + FlashMessage.ERROR); + } }else flashMessage = FlashMessage.getNoSuchActivityExists("getActivityDefineLaterURL",activityID); @@ -982,45 +986,30 @@ * (non-Javadoc) * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#getActivityMonitorURL(java.lang.Long) */ - public String getActivityMonitorURL(Long activityID)throws IOException{ + public String getActivityMonitorURL(Long lessonID, Long activityID)throws IOException, LamsToolServiceException{ Activity activity = activityDAO.getActivityByActivityId(activityID); FlashMessage flashMessage = null; + if(activity!=null){ - if(activity.isToolActivity()){ - ToolActivity toolActivity = (ToolActivity)activity; - String url = toolActivity.getTool().getMonitorUrl(); - Long toolContentId = toolActivity.getToolContentId(); - if ( url !=null && toolContentId != null ) { - url = WebUtil.appendParameterToURL(url, - AttributeNames.PARAM_TOOL_CONTENT_ID, - toolActivity.getToolContentId().toString()); - flashMessage = new FlashMessage("getActivityMonitorURL",new ProgressActivityDTO(activityID, url)); - } else { - flashMessage = generateDataMissingPacket(activityID, url, "Monitor URL", toolContentId, "Tool Content ID"); - } - } - }else + + String toolURL = lamsCoreToolService.getToolMonitoringURL(lessonID, activity); + if ( toolURL != null ) { + flashMessage = new FlashMessage("getActivityMonitorURL",new ProgressActivityDTO(activityID, toolURL)); + } + + if ( flashMessage == null ) { + flashMessage = new FlashMessage("getActivityMonitorURL", + messageService.getMessage("INVALID.ACTIVITYID.TYPE", new Object[]{ activity.getActivityId()}), + FlashMessage.ERROR); + } + }else { flashMessage = FlashMessage.getNoSuchActivityExists("getActivityMonitorURL",activityID); + } return flashMessage.serializeMessage(); } + /** - * @param activityID - * @param url - * @param toolContentId - */ - private FlashMessage generateDataMissingPacket(Long activityID, String url, - String urlDescription, Long toolContentId, String toolContentIdDescription) { - String[] missing = null; - if ( url !=null && toolContentId != null ) - missing = new String[] {urlDescription, toolContentIdDescription}; - else if ( url !=null ) - missing = new String[] {urlDescription}; - else if ( toolContentId !=null ) - missing = new String[] {toolContentIdDescription}; - return FlashMessage.getDataMissing("getActivityMonitorURL",missing); - } - /** * (non-Javadoc) * @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#moveLesson(java.lang.Long, java.lang.Integer, java.lang.Integer) */ Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java =================================================================== diff -u -rca00aecaea3075a353cf10b516430a613254bc08 -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision ca00aecaea3075a353cf10b516430a613254bc08) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/DummyMonitoringAction.java (.../DummyMonitoringAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -369,7 +369,8 @@ this.monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID)); Long activityID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_ACTIVITY_ID)); - String wddxPacket = monitoringService.getLearnerActivityURL(activityID,userID); + Long lessonID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID)); + String wddxPacket = monitoringService.getLearnerActivityURL(lessonID,activityID,userID); String url = extractURL(wddxPacket); response.sendRedirect(response.encodeRedirectURL(url)); return null; @@ -381,7 +382,8 @@ HttpServletResponse response)throws IOException,LamsToolServiceException{ this.monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); Long activityID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_ACTIVITY_ID)); - String wddxPacket = monitoringService.getActivityMonitorURL(activityID); + Long lessonID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID)); + String wddxPacket = monitoringService.getActivityMonitorURL(lessonID,activityID); String url = extractURL(wddxPacket); response.sendRedirect(response.encodeRedirectURL(url)); return null; @@ -392,7 +394,8 @@ HttpServletResponse response)throws IOException,LamsToolServiceException{ this.monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); Long activityID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_ACTIVITY_ID)); - String wddxPacket = monitoringService.getActivityDefineLaterURL(activityID); + Long lessonID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID)); + String wddxPacket = monitoringService.getActivityDefineLaterURL(lessonID,activityID); String url = extractURL(wddxPacket); response.sendRedirect(response.encodeRedirectURL(url)); return null; Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -r3c6f4109c87f92faf4a381d242cf3d95cd171dd6 -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 3c6f4109c87f92faf4a381d242cf3d95cd171dd6) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -32,7 +32,6 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; @@ -42,12 +41,10 @@ import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; -import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.util.wddx.FlashMessage; 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.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; @@ -582,9 +579,16 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws IOException{ + IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - String wddxPacket = monitoringService.getAllContributeActivities(lessonID); + String wddxPacket = null; + try { + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + wddxPacket = monitoringService.getAllContributeActivities(lessonID); + } catch (Exception e) { + FlashMessage flashMessage = handleException(e, "getAllContributeActivities", monitoringService); + wddxPacket = flashMessage.serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -597,9 +601,10 @@ IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); Integer userID = new Integer(WebUtil.readIntParam(request,"userID")); Long activityID = new Long(WebUtil.readLongParam(request,"activityID")); + Long lessonID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID)); //Show learner in monitor in a single call: extract URL and redirect it rather than returning the WDDX packet - String wddxPacket = monitoringService.getLearnerActivityURL(activityID,userID); + String wddxPacket = monitoringService.getLearnerActivityURL(lessonID,activityID,userID); String url = extractURL(wddxPacket); response.sendRedirect(response.encodeRedirectURL(url)); return null; Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java =================================================================== diff -u -r049f9b1332a5f65c5de9d5b4f891b93fe429ae63 -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 049f9b1332a5f65c5de9d5b4f891b93fe429ae63) +++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/service/TestMonitoringService.java (.../TestMonitoringService.java) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -37,6 +37,7 @@ import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO; import org.lamsfoundation.lams.learningdesign.dao.hibernate.ActivityDAO; +import org.lamsfoundation.lams.learningdesign.exception.LearningDesignProcessorException; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.lesson.dao.hibernate.LessonDAO; @@ -258,10 +259,10 @@ System.out.println(packet); } public void testGetLearnerActivityURL() throws Exception{ - String packet = monitoringService.getLearnerActivityURL(new Long(29),TEST_LEARNER_ID); + String packet = monitoringService.getLearnerActivityURL(TEST_LESSION_ID, new Long(29),TEST_LEARNER_ID); System.out.println(packet); } - public void testGellAllContributeActivities()throws IOException{ + public void testGellAllContributeActivities()throws IOException, LearningDesignProcessorException{ String packet = monitoringService.getAllContributeActivities(TEST_LESSION_ID); System.out.println(packet); } Index: lams_monitoring/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u -ra7766445094c16b343aa56dc1f73fd3051cef1db -r0d064806d262c256111bd37392a61e856d83caee --- lams_monitoring/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision a7766445094c16b343aa56dc1f73fd3051cef1db) +++ lams_monitoring/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision 0d064806d262c256111bd37392a61e856d83caee) @@ -56,16 +56,6 @@ scope="request" /> - - Activity : - ');"> + &activityID=');"> Monitor - ');"> + &activityID=');"> Define Later
@@ -128,11 +128,11 @@ Activity : - ');"> + &activityID=');"> Monitor - ');"> + &activityID=');"> Define Later
@@ -152,15 +152,15 @@ Current Activity: - &activityID=');">View + &userID=&activityID=');">View Completed Activities: - &activityID=');">View
+ &userID=&activityID=');">View