Index: lams_build/lib/lams/lams-learning.jar =================================================================== diff -u -r7d61f3a246aa312f45abd20249237d0864c396a4 -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 Binary files differ Index: lams_learning/conf/xdoclet/taglibs.xml =================================================================== diff -u -r7492a142f40382aa48f48eae31caa05856e39858 -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/conf/xdoclet/taglibs.xml (.../taglibs.xml) (revision 7492a142f40382aa48f48eae31caa05856e39858) +++ lams_learning/conf/xdoclet/taglibs.xml (.../taglibs.xml) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -86,3 +86,11 @@ tags-xml_rt /WEB-INF/jstl/tlds/x-rt.tld + + + + + + tags-lams + /WEB-INF/lams.tld + \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DummyLearnerAction.java =================================================================== diff -u --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DummyLearnerAction.java (revision 0) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DummyLearnerAction.java (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -0,0 +1,118 @@ +/* +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +USA + +http://www.gnu.org/licenses/gpl.txt +*/ + +package org.lamsfoundation.lams.learning.web.action; + +import java.io.IOException; + +import javax.servlet.ServletException; +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.learning.service.ILearnerService; +import org.lamsfoundation.lams.learning.service.LearnerServiceProxy; +import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; +import org.lamsfoundation.lams.lesson.dto.LessonDTO; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + + +/** + * + *

The action servlet that interacts with the dummy learner interface. Based + * on LearnerAction. To be removed when the Flash interface is built.

+ * + * ----------------XDoclet Tags-------------------- + * + * @struts:action path="/dummylearner" + * parameter="method" + * validate="false" + * @struts.action-exception key="error.system.learner" scope="request" + * type="org.lamsfoundation.lams.learning.service.LearnerServiceException" + * path=".systemError" + * handler="org.lamsfoundation.lams.learning.util.CustomStrutsExceptionHandler" + * @struts:action-forward name="controlActivity" path="/controlBottomFrame.jsp" + * + * ----------------XDoclet Tags-------------------- + * + */ +public class DummyLearnerAction extends LamsDispatchAction +{ + //--------------------------------------------------------------------- + // Instance variables + //--------------------------------------------------------------------- + private static Logger log = Logger.getLogger(DummyLearnerAction.class); + + //--------------------------------------------------------------------- + // Class level constants - Struts forward + //--------------------------------------------------------------------- + private static final String CONTROL_ACTIVITY = "controlActivity"; + + // Session attributes + private static final String PARAM_LESSONS = "lessons"; + + /** + *

The Struts dispatch method that retrieves all active lessons for a + * requested user.

+ * + * @param mapping An ActionMapping class that will be used by the Action class to tell + * the ActionServlet where to send the end-user. + * + * @param form The ActionForm class that will contain any data submitted + * by the end-user via a form. + * @param request A standard Servlet HttpServletRequest class. + * @param response A standard Servlet HttpServletResponse class. + * @return An ActionForward class that will be returned to the ActionServlet indicating where + * the user is to go next. + * @throws IOException + * @throws ServletException + */ + public ActionForward getActiveLessons(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws IOException, + ServletException + { + //initialize service object + ILearnerService learnerService = LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); + + //get learner. + User learner = LearningWebUtil.getUserData(getServlet().getServletContext()); + if(log.isDebugEnabled()) + log.debug("Getting active lessons for leaner:"+learner.getFullName()+"["+learner.getUserId()+"]"); + + LessonDTO [] lessons = learnerService.getActiveLessonsFor(learner); + request.getSession().setAttribute(PARAM_LESSONS, lessons); + + return mapping.findForward(CONTROL_ACTIVITY); + } + + + +} \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GroupingAction.java =================================================================== diff -u -r571c9c2146353e8a22f613a1283422f0b799928e -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GroupingAction.java (.../GroupingAction.java) (revision 571c9c2146353e8a22f613a1283422f0b799928e) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GroupingAction.java (.../GroupingAction.java) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -155,7 +155,7 @@ //get current user and lesson data via http. It ensures they are availabe //in the http session. If not, we assume parameters are coming from //request or falsh and we can create learner and lesson objects. - User learner = LearningWebUtil.getUserData(request,getServlet().getServletContext()); + User learner = LearningWebUtil.getUserData(getServlet().getServletContext()); Lesson lesson = LearningWebUtil.getLessonData(request,getServlet().getServletContext()); Activity groupingActivity = LearningWebUtil.getActivityFromRequest(request,learnerService); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java =================================================================== diff -u -r70bc80f5a9f065d4e01234bc06515295eff8edde -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 70bc80f5a9f065d4e01234bc06515295eff8edde) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -124,7 +124,7 @@ ILearnerService learnerService = LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); //get learner. - User learner = LearningWebUtil.getUserData(request, getServlet().getServletContext()); + User learner = LearningWebUtil.getUserData(getServlet().getServletContext()); if(log.isDebugEnabled()) log.debug("Getting active lessons for leaner:"+learner.getFullName()+"["+learner.getUserId()+"]"); @@ -169,7 +169,7 @@ ILearnerService learnerService = LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); //get user and lesson based on request. - User learner = LearningWebUtil.getUserData(request, getServlet().getServletContext()); + User learner = LearningWebUtil.getUserData(getServlet().getServletContext()); Lesson lesson = LearningWebUtil.getLessonData(request,getServlet().getServletContext()); @@ -343,7 +343,7 @@ ILearnerService learnerService = LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); //getting requested object according to coming parameters - User learner = LearningWebUtil.getUserData(request, getServlet().getServletContext()); + User learner = LearningWebUtil.getUserData(getServlet().getServletContext()); Activity requestedActivity = learnerService.getActivity(new Long(activityId)); //preparing tranfer object for flash Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/LearningWebUtil.java =================================================================== diff -u -r571c9c2146353e8a22f613a1283422f0b799928e -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/LearningWebUtil.java (.../LearningWebUtil.java) (revision 571c9c2146353e8a22f613a1283422f0b799928e) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/LearningWebUtil.java (.../LearningWebUtil.java) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -24,6 +24,7 @@ import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.lamsfoundation.lams.learning.service.ILearnerService; @@ -34,7 +35,10 @@ import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; /** @@ -59,35 +63,29 @@ public static final String PARAM_PROGRESS_ID = "progressId"; /** - * Helper method to retrieve the user data. We always load up from http - * session first to optimize the performance. If no session cache available, - * we load it from data source. + * Helper method to retrieve the user data. Gets the id from the user details + * in the session then retrieves the real user object. + * * @param request A standard Servlet HttpServletRequest class. * @param servletContext the servlet container that has all resources * @param surveyService the service facade of survey tool * @return the user data value object */ - public static User getUserData(HttpServletRequest request, ServletContext servletContext) + public static User getUserData(ServletContext servletContext) { - //retrieve complete user data from http session - User currentUser = (User) request.getSession() - .getAttribute(ATTR_USER_DATA); - if(log.isDebugEnabled()&¤tUser!=null) - log.debug("user retrieved from http session:"+currentUser.getUserId()); - + HttpSession ss = SessionManager.getSession(); + UserDTO learner = (UserDTO) ss.getAttribute(AttributeNames.USER); + //if no session cache available, retrieve it from data source - if (currentUser == null) - { - int userId = WebUtil.readIntParam(request,PARAM_USER_ID); - currentUser = LearnerServiceProxy.getUserManagementService(servletContext) - .getUserById(new Integer(userId)); - if(log.isDebugEnabled()&¤tUser!=null) - log.debug("user retrieved from database:"+currentUser.getUserId()); - - //create session cache - request.getSession().setAttribute(ATTR_USER_DATA, currentUser); + if ( learner != null ) { + User currentUser = LearnerServiceProxy.getUserManagementService(servletContext) + .getUserById(learner.getUserID()); + if(log.isDebugEnabled()&¤tUser!=null) + log.debug("user retrieved from database:"+currentUser.getUserId()); + + return currentUser; } - return currentUser; + return null; } /** @@ -130,7 +128,7 @@ //initialize service object ILearnerService learnerService = LearnerServiceProxy.getLearnerService(servletContext); - User currentLearner = getUserData(request, servletContext); + User currentLearner = getUserData(servletContext); Lesson lesson = getLessonData(request,servletContext); LearnerProgress progress = learnerService.getProgress(currentLearner,lesson); bean = new SessionBean(currentLearner,lesson,progress); @@ -179,7 +177,7 @@ //initialize service object ILearnerService learnerService = LearnerServiceProxy.getLearnerService(servletContext); - User currentLearner = getUserData(request, servletContext); + User currentLearner = getUserData(servletContext); Lesson lesson = getLessonData(request,servletContext); learnerProgress = learnerService.getProgress(currentLearner,lesson); Index: lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestGateAction.java =================================================================== diff -u -r6faa51252d8f8117db65e0a58ff295def4cf7af9 -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestGateAction.java (.../TestGateAction.java) (revision 6faa51252d8f8117db65e0a58ff295def4cf7af9) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestGateAction.java (.../TestGateAction.java) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -130,15 +130,15 @@ */ private void initializeUserMap(boolean singleUser) { - User testUser = LearningWebUtil.getUserData(request,context); + User testUser = LearningWebUtil.getUserData(context); Lesson lesson = LearningWebUtil.getLessonData(request,context); LessonLearnerDataManager.cacheLessonUser(context,lesson,testUser); if(!singleUser) { request.getSession().removeAttribute("user"); addRequestParameter(LearningWebUtil.PARAM_USER_ID, "1"); - User testUser2 = LearningWebUtil.getUserData(request,context); + User testUser2 = LearningWebUtil.getUserData(context); LessonLearnerDataManager.cacheLessonUser(context,lesson,testUser2); } Index: lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestGroupingAction.java =================================================================== diff -u -r571c9c2146353e8a22f613a1283422f0b799928e -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestGroupingAction.java (.../TestGroupingAction.java) (revision 571c9c2146353e8a22f613a1283422f0b799928e) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestGroupingAction.java (.../TestGroupingAction.java) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -148,7 +148,7 @@ */ private void initializeUserMap() { - User testUser = LearningWebUtil.getUserData(request,context); + User testUser = LearningWebUtil.getUserData(context); Lesson lesson = LearningWebUtil.getLessonData(request,context); LessonLearnerDataManager.cacheLessonUser(context,lesson,testUser); Index: lams_learning/web/WEB-INF/lams.tld =================================================================== diff -u --- lams_learning/web/WEB-INF/lams.tld (revision 0) +++ lams_learning/web/WEB-INF/lams.tld (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -0,0 +1,48 @@ + + + + + + 1.0 + 1.1 + lams + + + + + + LAMSURL + org.lamsfoundation.lams.web.tag.LAMSURLTag + + + + + + user + org.lamsfoundation.lams.web.tag.UserTag + + + + property + true + true + + + + + + + css + org.lamsfoundation.lams.web.tag.CssTag + + + + + + WebAppURL + org.lamsfoundation.lams.web.tag.WebAppURLTag + + + + + Index: lams_learning/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u -rbf77e0e7ce264dac574577c0d61cc94caad9a1fb -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision bf77e0e7ce264dac574577c0d61cc94caad9a1fb) +++ lams_learning/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -14,14 +14,14 @@ - + @@ -86,8 +86,10 @@ - - + + + + + + + + + - + + + - - - - - + + + + tags-lams + /WEB-INF/lams.tld + + Index: lams_learning/web/controlBottomFrame.jsp =================================================================== diff -u -r7492a142f40382aa48f48eae31caa05856e39858 -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/web/controlBottomFrame.jsp (.../controlBottomFrame.jsp) (revision 7492a142f40382aa48f48eae31caa05856e39858) +++ lams_learning/web/controlBottomFrame.jsp (.../controlBottomFrame.jsp) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -23,12 +23,14 @@ <%@ taglib uri="tags-html" prefix="html"%> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + - + Learner :: LAMS
- +
-
- -
+

Index: lams_learning/web/main.jsp =================================================================== diff -u -r7492a142f40382aa48f48eae31caa05856e39858 -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/web/main.jsp (.../main.jsp) (revision 7492a142f40382aa48f48eae31caa05856e39858) +++ lams_learning/web/main.jsp (.../main.jsp) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -24,16 +24,17 @@ <%@ taglib uri="tags-html" prefix="html"%> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-lams" prefix="lams" %> - + Learner :: LAMS - Index: lams_learning/web/welcome.jsp =================================================================== diff -u -r7492a142f40382aa48f48eae31caa05856e39858 -ra068098703ce1ee36cc9e8dcf92165ab5c1be2e7 --- lams_learning/web/welcome.jsp (.../welcome.jsp) (revision 7492a142f40382aa48f48eae31caa05856e39858) +++ lams_learning/web/welcome.jsp (.../welcome.jsp) (revision a068098703ce1ee36cc9e8dcf92165ab5c1be2e7) @@ -9,11 +9,4 @@
- - - - Join a started Lesson - - -