Index: lams_bb_integration/web/modules/learnermonitor.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/learnermonitor.jsp,v diff -u -r1.32 -r1.33 --- lams_bb_integration/web/modules/learnermonitor.jsp 16 Feb 2017 04:31:47 -0000 1.32 +++ lams_bb_integration/web/modules/learnermonitor.jsp 21 Apr 2017 20:35:36 -0000 1.33 @@ -1,3 +1,7 @@ +<%@ page contentType="text/html; charset=utf-8" language="java"%> +<%@ page isELIgnored="false" %> + + <%-- Original Version: 2007 LAMS Foundation @@ -10,30 +14,10 @@ Students - access lesson only Staff - additionally access the Lesson Monitor --%> -<%@ page import="java.util.*"%> -<%@ page import="java.util.Date"%> -<%@ page import="java.text.SimpleDateFormat"%> -<%@ page import="blackboard.data.*"%> -<%@ page import="blackboard.persist.*"%> -<%@ page import="blackboard.data.course.*"%> -<%@ page import="blackboard.data.user.*"%> -<%@ page import="blackboard.persist.course.*"%> -<%@ page import="blackboard.data.content.*"%> -<%@ page import="blackboard.persist.content.*"%> -<%@ page import="blackboard.persist.navigation.CourseTocDbLoader"%> -<%@ page import="blackboard.persist.gradebook.*"%> -<%@ page import="blackboard.data.gradebook.*"%> -<%@ page import="blackboard.db.*"%> -<%@ page import="blackboard.base.*"%> -<%@ page import="blackboard.platform.*"%> <%@ page import="blackboard.platform.plugin.*"%> -<%@ page import="blackboard.platform.persistence.*"%> -<%@ page import="blackboard.portal.servlet.*"%> -<%@ page import="blackboard.portal.data.*"%> -<%@ page import="org.lamsfoundation.ld.integration.util.*"%> -<%@ page import="org.lamsfoundation.ld.integration.dto.LearnerProgressDTO"%> <%@ page errorPage="/error.jsp"%> <%@ taglib uri="/bbNG" prefix="bbNG"%> +<%@ taglib uri="/tags-core" prefix="c"%> @@ -66,185 +50,77 @@ } - + + + <% - BbPersistenceManager bbPm = PersistenceServiceFactory.getInstance().getDbPersistenceManager(); - CourseMembershipDbLoader sessionCourseMembershipLoader = CourseMembershipDbLoader.Default.getInstance(); - // Authorise current user for Course Access (automatic redirect) try{ if (!PlugInUtil.authorizeForCourse(request, response)) return; } catch(PlugInException e) { throw new RuntimeException(e); } - - String strLessonId = request.getParameter("lsid").trim(); - long lessonId = Long.parseLong(strLessonId); - String courseIdParam = request.getParameter("course_id"); - - // Get Course ID and User ID - Id course_id = bbPm.generateId(Course.DATA_TYPE, courseIdParam); - Id userId = ctx.getUser().getId(); - - // Get the membership data to determine the User's Role - CourseMembership courseMembership = null; - CourseMembership.Role courseRole = null; - boolean isActive = false; - - try { - courseMembership = sessionCourseMembershipLoader.loadByCourseAndUserId(course_id, userId); - courseRole = courseMembership.getRole(); - isActive = courseMembership.getIsAvailable(); - } catch (KeyNotFoundException e) { - // There is no membership record. - e.printStackTrace(); - } catch (PersistenceException pe) { - // There is no membership record. - pe.printStackTrace(); - } - - // Is the User an Instructor of Teaching Assistant - boolean instructorstr=false; - if (CourseMembership.Role.INSTRUCTOR.equals(courseRole) || CourseMembership.Role.TEACHING_ASSISTANT.equals(courseRole) - || CourseMembership.Role.COURSE_BUILDER.equals(courseRole)) { - instructorstr=true; - - } else if (!CourseMembership.Role.STUDENT.equals(courseRole)) { - // The user is not an Instructor, Teaching Assistant or Student - Access Denied - response.sendRedirect("notAllowed.jsp"); - } - - // Are they active in the course? If not let Blackboard handle the redirect - if (!isActive) { - PlugInUtil.sendAccessDeniedRedirect(request, response); - } - - //Get lessson's title and description - String title = ""; - String description = ""; - String strLineitemId = null; - String position = "unknown"; - //contentId is available in versions after 1.2.3 - String contentIdParam = request.getParameter("content_id"); - if (contentIdParam != null) { - - Container bbContainer = bbPm.getContainer(); - Id contentId = new PkId(bbContainer, CourseDocument.DATA_TYPE, contentIdParam); - ContentDbLoader courseDocumentLoader = (ContentDbLoader) bbPm.getLoader(ContentDbLoader.TYPE); - Content courseDoc = (Content) courseDocumentLoader.loadById(contentId); - title = courseDoc.getTitle(); - description = courseDoc.getBody().getFormattedText(); - position = String.valueOf(courseDoc.getPosition()); - - //get lineitemid from the storage - Lineitem lineitem = LineitemUtil.getLineitem(contentIdParam, userId, strLessonId); - - } else { - - title = (request.getParameter("title") != null) ? request.getParameter("title") : "LAMS Options"; - description = request.getParameter("description"); - strLineitemId = request.getParameter("lineitemid"); - } - - //display learning design image - String strIsDisplayDesignImage = request.getParameter("isDisplayDesignImage"); - boolean isDisplayDesignImage = "true".equals(strIsDisplayDesignImage) ? true : false; - String learningDesignImageUrl = ""; - if (isDisplayDesignImage) { - String username = ctx.getUser().getUserName(); - learningDesignImageUrl = LamsSecurityUtil.generateRequestLearningDesignImage(username) + "&lsId=" + lessonId; - } - - //check whether user has score for this lesson - Score current_score = null; - if (strLineitemId != null) { // there won't be "lineitemid" parameter in case lesson had been created in LAMS building block version prior to 1.2 - - //check if it was created in old versions (e.g. 1.2.1) where lineitemId parameter had the following format "PkId(key=_XXXX_1, %20dataType=blackboard.data.gradebook.impl.OutcomeDefinition, %20container=blackboard.persist.DatabaseContainer@xxxx)" - //in which case transform it to the more regular one - if (strLineitemId.contains("key=")) { - int pos1 = strLineitemId.indexOf("key=") + 4; - int pos2 = strLineitemId.indexOf(",", pos1); - - if (pos1 != -1 && pos2 != -1 && pos1 <= pos2 && pos2 <= strLineitemId.length()) { - strLineitemId = strLineitemId.substring(pos1, pos2); - } - } - - Id lineitemId = bbPm.generateId(Lineitem.LINEITEM_DATA_TYPE, strLineitemId.trim()); - ScoreDbLoader scoreLoader = (ScoreDbLoader) bbPm.getLoader(ScoreDbLoader.TYPE); - try { - current_score = scoreLoader.loadByCourseMembershipIdAndLineitemId(courseMembership.getId(), - lineitemId); - } catch (KeyNotFoundException c) { - //no score availalbe - } - } - boolean isScoreAvailable = (current_score != null); - - //prepare learnerProgressDto for displaying on jsp - LearnerProgressDTO learnerProgressDto = LamsSecurityUtil.getLearnerProgress(ctx, lessonId); %> - <%-- Page Header --%> - + <%-- Action Control Bar --%> <%-- Access the Lesson as a Learner --%> - <% if(instructorstr) { %> - <%-- Access the Monitor --%> - <% } %> + + <%-- Access the Monitor --%> + <%-- Cancel (Go Back) --%> - - - <% if((description != "") && (description != null)) { %> +
- <%=description%> + ${description}
- <% } %> +
- <% if(isDisplayDesignImage) { %> +
- +
- <% } %> +
- <% if(learnerProgressDto.getAttemptedActivities() > 0 || learnerProgressDto.getLessonComplete()) { %> +
Your Lesson Progress
- <% if(!learnerProgressDto.getLessonComplete()) { %> + +

Lesson is not yet completed.

- You have completed: <%=learnerProgressDto.getActivitiesCompleted()%> out of approximately <%=learnerProgressDto.getActivityCount()%> activities + You have completed: ${activitiesCompletedCount} out of approximately ${activitiesCount} activities [*]

* Total activities depend on your learning path.
- - <% } else { %> +
+

You have completed this lesson.

- <% } %> +
+
- <% } %> +
-