+ *
+ * @web:servlet name="LaunchLearnerUrlServlet"
+ * @web:servlet-mapping url-pattern="/r/*"
+ */
+public class LaunchLearnerUrlServlet extends HttpServlet {
+
+ private static Logger log = Logger.getLogger(LaunchLearnerUrlServlet.class);
+
+ private static ILessonService lessonService;
+
+ private ILessonService getLessonService() {
+ if (lessonService == null) {
+ WebApplicationContext ctx = WebApplicationContextUtils
+ .getRequiredWebApplicationContext(getServletContext());
+ lessonService = (ILessonService) ctx.getBean("lessonService");
+ }
+ return lessonService;
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ String encodedLessonId = request.getPathInfo();
+
+ // redirect to login page if accessing / URL
+ if (StringUtils.isBlank(encodedLessonId) || encodedLessonId.length() < 2) {
+ String lamsUrl = Configuration.get(ConfigurationKeys.SERVER_URL);
+ response.sendRedirect(lamsUrl);
+ return;
+ }
+
+ // cut off the first '/'
+ encodedLessonId = encodedLessonId.substring(1);
+
+ Long lessonId;
+ try {
+ String decodedLessonId = WebUtil.decodeLessonId(encodedLessonId);
+ lessonId = Long.valueOf(decodedLessonId);
+
+ } catch (IllegalArgumentException e) {
+ log.warn("Supplied lessonId: " + encodedLessonId + " has wrong format.");
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Supplied lessonId: " + encodedLessonId + " has wrong format.");
+// return mapping.findForward("error");
+// displayMessage(request, response, "error.lessonid.has.wrong.format");
+ return;
+ }
+
+
+
+ Lesson lesson = lessonId != null ? getLessonService().getLesson(lessonId) : null;
+ if (lesson != null) {
+ // return displayMessage(mapping, req, "message.lesson.not.started.cannot.participate");
+ }
+
+ request.setAttribute("name", lesson.getLessonName());
+ request.setAttribute("description", lesson.getLessonDescription());
+ request.setAttribute("status", lesson.getLessonStateId());
+ request.setAttribute(AttributeNames.PARAM_LESSON_ID, lessonId);
+
+ request.getRequestDispatcher("/launchlearner.jsp").forward(request, response);
+
+ // getServletContext().getContext(serverURLContextPath + "learning")
+ // .getRequestDispatcher("/main.jsp").forward(req, res);
+ // return null;
+ //
+ //
+ // request.setAttribute( AttributeNames.PARAM_LESSON_ID, encodedLessonId);
+ // request.getRequestDispatcher("/launchlearner.do").forward(request, response);
+ }
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ doPost(request, response);
+ }
+
+ private void displayMessage(HttpServletRequest request, HttpServletResponse response, String messageKey)
+ throws ServletException, IOException {
+ request.setAttribute("messageKey", messageKey);
+ request.getRequestDispatcher("/.message").forward(request, response);
+ }
+}
\ No newline at end of file
Index: lams_central/web/includes/javascript/openUrls.js
===================================================================
diff -u -rb6da459880f7f3c999a630c24e066902102768c8 -r29fb207b11874fd4518e72f59a48a43f7fbe6fe3
--- lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision b6da459880f7f3c999a630c24e066902102768c8)
+++ lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision 29fb207b11874fd4518e72f59a48a43f7fbe6fe3)
@@ -182,18 +182,18 @@
{
if(isMac)
{
- learnWin = window.open('home.do?method=learner&lessonID='+lessonId,'lWindow','width=' + learner_width + ',height=' + learner_height + ',resizable,status=yes');
+ learnWin = window.open('../home.do?method=learner&lessonID='+lessonId,'lWindow','width=' + learner_width + ',height=' + learner_height + ',resizable,status=yes');
}
else
{
if(learnWin && !learnWin.closed )
{
- learnWin.location = 'home.do?method=learner&lessonID='+lessonId;
+ learnWin.location = '../home.do?method=learner&lessonID='+lessonId;
learnWin.focus();
}
else
{
- learnWin = window.open('home.do?method=learner&lessonID='+lessonId,'lWindow','width=' + learner_width + ',height=' + learner_height + ',resizable,status=yes');
+ learnWin = window.open('../home.do?method=learner&lessonID='+lessonId,'lWindow','width=' + learner_width + ',height=' + learner_height + ',resizable,status=yes');
}
}
}
Index: lams_central/web/launchlearner.jsp
===================================================================
diff -u -racc8d2acf5b6b0002e0c8129947040a779ab4077 -r29fb207b11874fd4518e72f59a48a43f7fbe6fe3
--- lams_central/web/launchlearner.jsp (.../launchlearner.jsp) (revision acc8d2acf5b6b0002e0c8129947040a779ab4077)
+++ lams_central/web/launchlearner.jsp (.../launchlearner.jsp) (revision 29fb207b11874fd4518e72f59a48a43f7fbe6fe3)
@@ -1,5 +1,4 @@
-
+
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
<%@ page import="org.lamsfoundation.lams.lesson.Lesson" %>
@@ -11,9 +10,9 @@
-
-
-
+
+
+
@@ -26,50 +25,51 @@
-
- <%= Lesson.CREATED %>
- <%= Lesson.NOT_STARTED_STATE %>
- <%= Lesson.STARTED_STATE %>
- <%= Lesson.FINISHED_STATE %>
- <%= Lesson.SUSPENDED_STATE %>
- <%= Lesson.ARCHIVED_STATE %>
- <%= Lesson.REMOVED_STATE %>
+
+
+ <%= Lesson.CREATED %>
+ <%= Lesson.NOT_STARTED_STATE %>
+ <%= Lesson.STARTED_STATE %>
+ <%= Lesson.FINISHED_STATE %>
+ <%= Lesson.SUSPENDED_STATE %>
+ <%= Lesson.ARCHIVED_STATE %>
+ <%= Lesson.REMOVED_STATE %>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -80,6 +80,4 @@
-
-
\ No newline at end of file
Index: lams_central/web/login.jsp
===================================================================
diff -u -r0396ff2ea243cfd6557697679789895a5ea5d036 -r29fb207b11874fd4518e72f59a48a43f7fbe6fe3
--- lams_central/web/login.jsp (.../login.jsp) (revision 0396ff2ea243cfd6557697679789895a5ea5d036)
+++ lams_central/web/login.jsp (.../login.jsp) (revision 29fb207b11874fd4518e72f59a48a43f7fbe6fe3)
@@ -39,8 +39,8 @@
-
-
+
+