Index: lams_bb_integration/RELEASE_NOTES.TXT =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/RELEASE_NOTES.TXT,v diff -u -r1.1 -r1.2 --- lams_bb_integration/RELEASE_NOTES.TXT 26 Sep 2007 01:17:00 -0000 1.1 +++ lams_bb_integration/RELEASE_NOTES.TXT 4 Oct 2007 07:11:42 -0000 1.2 @@ -4,13 +4,13 @@ All Jira bug references can be found at: https://bugs.lamsfoundation.org/browse/ -1.0.1 Release -============= +1.0.1 Release Fixes +=================== * LDEV-1326 Implement "return to Blackboard" message * LDEV-1331 Monitoring and Learning windows open in the same window -1.0.2 Release -============= +1.0.2 Release Fixes +=================== * LDEV-1342 Live edit wont start when using the Blackboard integration * LDEV-1345 When selecting a sequence, the next button wont work with IE6 * LDEV-1350 Start lesson in Blackboard 7.1 throws NoSuchMethodError Index: lams_bb_integration/WEB-INF/bb-manifest.xml =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/WEB-INF/bb-manifest.xml,v diff -u -r1.6 -r1.7 --- lams_bb_integration/WEB-INF/bb-manifest.xml 26 Sep 2007 00:48:46 -0000 1.6 +++ lams_bb_integration/WEB-INF/bb-manifest.xml 4 Oct 2007 07:11:42 -0000 1.7 @@ -60,6 +60,9 @@ - + + + + Index: lams_bb_integration/web/modules/gradeit.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/Attic/gradeit.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_bb_integration/web/modules/gradeit.jsp 4 Oct 2007 07:11:32 -0000 1.1 @@ -0,0 +1,115 @@ +<%// Discussion Grader, Copyright 2004 Joliet Junior College +// Home Page : http://www.jjc.edu/distance/ +// Author : Jeff Nuckles jnuckles@jjc.edu +%> +<%@ page import="java.util.*, + java.text.*, + blackboard.data.*, + blackboard.data.course.*, + blackboard.data.user.*, + blackboard.persist.*, + blackboard.persist.course.*, + blackboard.persist.user.*, + blackboard.persist.gradebook.*, + blackboard.data.gradebook.*, + blackboard.base.*, + blackboard.platform.*, + blackboard.platform.log.*, + blackboard.platform.session.*, + blackboard.platform.persistence.*, + blackboard.platform.BbServiceManager.*, + blackboard.platform.context.*, + blackboard.base.BbList.*, + blackboard.platform.plugin.PlugInUtil, + java.util.Calendar, + java.lang.*, + blackboard.platform.security.*" + errorPage="/error.jsp" + %> +<%@ taglib uri="/bbData" prefix="bbData"%> +<%@ taglib uri="/bbUI" prefix="bbUI"%> + + +<% +if (request.getParameter("score") != null) { +%> +<% +BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistenceManager(); +UserDbLoader uLoader = UserDbLoader.Default.getInstance(); +CourseDbLoader cLoader = CourseDbLoader.Default.getInstance(); +CourseMembershipDbLoader memLoader =(CourseMembershipDbLoader) bbPm.getLoader(CourseMembershipDbLoader.TYPE); +ScoreDbLoader scoreLoader = (ScoreDbLoader) bbPm.getLoader(ScoreDbLoader.TYPE); +ScoreDbPersister scorePersister = (ScoreDbPersister) bbPm.getPersister(ScoreDbPersister.TYPE); +String cid = request.getParameter("course_id"); +String lid = request.getParameter("lineitem_pk1"); +String fid = request.getParameter("forum_pk1"); +String uid = request.getParameter("UserId"); +String gid = null; +if (request.getParameter("group_pk1") != null){ + gid = request.getParameter("group_pk1"); +} + + +Course courseId = cLoader.loadById(Id.generateId(new DataType(Course.class),cid)); +User user = uLoader.loadById(Id.generateId(new DataType(User.class),uid)); +CourseMembership cms = memLoader.loadByCourseAndUserId(courseId.getId(), user.getId()); +Score current_score = null; +try { +current_score = scoreLoader.loadByCourseMembershipIdAndLineitemId(cms.getId(),Id.generateId(new DataType(Lineitem.class),lid)); +} catch (KeyNotFoundException c){ +current_score = new Score(); +current_score.setLineitemId(Id.generateId(new DataType(Lineitem.class),lid)); +current_score.setCourseMembershipId(cms.getId()); +} + +String current_points = current_score.getGrade(); +current_score.setGrade(request.getParameter("score")); +try { +current_score.validate(); +scorePersister.persist(current_score); +%> + +GRADE CHANGE + +Discussion Grader + + + + + + +
+ + + + + + + + + + + +
+A grade has been successfully entered into the gradebook for <%=user.getGivenName()%> <%=user.getFamilyName()%>. +
+
+<%=(new Date()).toString()%> +
+OK + +
+ + +<% +} catch (ValidationException e) { +%>Invalid Score <%=e%> +<% +} +} +%> +
+
+ + + Index: lams_bb_integration/web/modules/index.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/Attic/index.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_bb_integration/web/modules/index.jsp 4 Oct 2007 07:11:32 -0000 1.1 @@ -0,0 +1,101 @@ +<%// Discussion Grader, Copyright 2004 Joliet Junior College +// Home Page : http://www.jjc.edu/distance/ +// Author : Jeff Nuckles jnuckles@jjc.edu +%> +<%@ page import="java.util.*, + java.text.*, + blackboard.data.*, + blackboard.data.course.*, + blackboard.persist.*, + blackboard.persist.course.*, + blackboard.base.*, + blackboard.platform.*, + blackboard.platform.log.*, + blackboard.platform.session.*, + blackboard.platform.persistence.*, + blackboard.platform.BbServiceManager.*, + blackboard.platform.context.*, + blackboard.base.BbList.*, + blackboard.platform.plugin.PlugInUtil, + java.util.Calendar, + java.lang.*, + blackboard.persist.discussionboard.*, + blackboard.data.discussionboard.*, + blackboard.platform.security.*" + errorPage="/error.jsp" + %> +<%@ taglib uri="/bbData" prefix="bbData"%> +<%@ taglib uri="/bbUI" prefix="bbUI"%> + + +<% +BbSessionManagerService sessionService = BbServiceManager.getSessionManagerService(); +BbSession bbSession = sessionService.getSession( request ); +Course course = ctx.getCourse(); +Id courseId = course.getId(); +String cidString = courseId.toExternalString(); +cidString = cidString.substring(1,cidString.lastIndexOf("_")); +ConferenceDbLoader cfLoader = ConferenceDbLoader.Default.getInstance(); +Conference cf = cfLoader.loadByCourseId(courseId); +Id cfId = cf.getId(); +ForumDbLoader fLoader = ForumDbLoader.Default.getInstance(); +BbList forum = fLoader.loadByConferenceId(cfId); +BbList.Iterator forumListIter = forum.getFilteringIterator(); +GroupDbLoader gLoader = GroupDbLoader.Default.getInstance(); +BbList gList = gLoader.loadByCourseId(courseId); +BbList.Iterator groupListIter = gList.getFilteringIterator(); +%> + + + + + + + +Discussion Grader + + +Select the discussion forum that you wish to grade from the list below. + + + + + <% +while (forumListIter.hasNext()) { + Forum cForum = (Forum)forumListIter.next(); + String fid = cForum.getId().toExternalString(); + fid = fid.substring(1,fid.lastIndexOf("_")); + %> + +<%}%> +
<%=cForum.getTitle()%>
<%=cForum.getDescription().getText()%>
+<%if (gList.size() > 0){%> + +Select a group discussion forum that you wish to grade from the list below. + + + + <% +while (groupListIter.hasNext()) { + Group group = (Group)groupListIter.next(); + Conference conf = cfLoader.loadByGroupId(group.getId()); + BbList frmList = fLoader.loadByConferenceId(conf.getId()); + BbList.Iterator fListIter = frmList.getFilteringIterator(); + while (fListIter.hasNext()) { + Forum cForum = (Forum)fListIter.next(); + String fid = cForum.getId().toExternalString(); + fid = fid.substring(1,fid.lastIndexOf("_")); + String gid = group.getId().toExternalString(); + gid = gid.substring(1,gid.lastIndexOf("_")); + %> + +<%}%> +
<%=group.getTitle()%> - <%=cForum.getTitle()%>
<%=cForum.getDescription().getText()%>
+<%}}%> + + +
+
+ + + Index: lams_bb_integration/web/modules/learnermonitor.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/learnermonitor.jsp,v diff -u -r1.5 -r1.6 --- lams_bb_integration/web/modules/learnermonitor.jsp 19 Sep 2007 01:02:37 -0000 1.5 +++ lams_bb_integration/web/modules/learnermonitor.jsp 4 Oct 2007 07:11:32 -0000 1.6 @@ -26,7 +26,22 @@ String monitorUrl = LamsSecurityUtil.generateRequestURL(ctx, "monitor") + "&lsid=" + lsid; String liveEditUrl = LamsSecurityUtil.generateRequestURL(ctx, "author"); +// add port to the url if the port is in the blackboard url. + int bbport = request.getServerPort(); + String bbportstr = bbport != 0 ? ":" + bbport : ""; + //String contentUrl = LamsSecurityUtil.generateRequestURL(ctx, "learner") + "&lsid=" + learningSessionId; + String updateGradesUrl = "\"" + request.getScheme() + + "://" + + request.getServerName() + + bbportstr + + request.getContextPath() + + "/modules/updateGrades.jsp?lsid=" + lsid + + "&course_id=" + request.getParameter("course_id") + + "&lineitem_id=" + request.getParameter("lineitem_id") + + "\""; + + String course_idstr = request.getParameter("course_id"); BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistenceManager(); @@ -131,6 +146,11 @@ } } + function updateGrades() + { + window.location = <%=updateGradesUrl%> + } + function openAuthorForEditOnFly( learningDesignID ) { liveEditUrl= '<%=liveEditUrl%>' + '&layout=editonfly&learningDesignID=' + learningDesignID; @@ -144,6 +164,8 @@ monitorWin.focus(); } } + + //--> @@ -163,8 +185,9 @@ Please Choose an Option

     - + + Index: lams_bb_integration/web/modules/newlineitem.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/Attic/newlineitem.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_bb_integration/web/modules/newlineitem.jsp 4 Oct 2007 07:11:32 -0000 1.1 @@ -0,0 +1,207 @@ +<%// Discussion Grader, Copyright 2004 Joliet Junior College +// Home Page : http://www.jjc.edu/distance/ +// Author : Jeff Nuckles jnuckles@jjc.edu +%> +<%@ page import="java.util.*, + java.text.*, + blackboard.data.*, + blackboard.data.user.*, + blackboard.data.course.*, + blackboard.data.gradebook.*, + blackboard.persist.*, + blackboard.persist.user.*, + blackboard.persist.course.*, + blackboard.persist.gradebook.*, + blackboard.persist.gradebook.impl.*, + blackboard.data.gradebook.impl.*, + blackboard.base.*, + blackboard.base.BbList.*, + blackboard.platform.*, + blackboard.platform.session.*, + blackboard.platform.persistence.*, + blackboard.platform.security.*, + blackboard.platform.plugin.PlugInUtil" + errorPage="/error.jsp" + %> +<%@ taglib uri="/bbData" prefix="bbData"%> +<%@ taglib uri="/bbUI" prefix="bbUI"%> + + +<% +Course course = ctx.getCourse(); +Id courseId = ctx.getCourse().getId(); +String cidString = courseId.toExternalString(); +String fid = request.getParameter("forum_pk1"); +BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistenceManager(); +blackboard.persist.gradebook.impl.OutcomeDefinitionCategoryDbLoader ocdloader = (blackboard.persist.gradebook.impl.OutcomeDefinitionCategoryDbLoader) bbPm.getLoader( blackboard.persist.gradebook.impl.OutcomeDefinitionCategoryDbLoader.TYPE ); +BbList ocdlist = ocdloader.loadByCourseId(courseId); +BbList.Iterator ocdListIter = ocdlist.getFilteringIterator(); +blackboard.persist.gradebook.impl.OutcomeDefinitionScaleDbLoader ocdcloader = (blackboard.persist.gradebook.impl.OutcomeDefinitionScaleDbLoader) bbPm.getLoader( blackboard.persist.gradebook.impl.OutcomeDefinitionScaleDbLoader.TYPE ); +BbList ocdclist = (BbList) ocdcloader.loadByCourseId(courseId); +BbList.Iterator ocdcListIter = ocdclist.getFilteringIterator(); +OutcomeDefinitionDbLoader ocdLoader = (OutcomeDefinitionDbLoader)bbPm.getLoader(OutcomeDefinitionDbLoader.TYPE); +OutcomeDefinitionScaleDbLoader ods2Loader = (OutcomeDefinitionScaleDbLoader)bbPm.getLoader(OutcomeDefinitionScaleDbLoader.TYPE); +OutcomeDefinitionDbPersister ocdPersister = (OutcomeDefinitionDbPersister)bbPm.getPersister(OutcomeDefinitionDbPersister.TYPE); +Calendar cur_date= Calendar.getInstance(); +%> + + + + +Add/Modify Gradebook Item + +Add/Modify Gradebook Item + + +<%if (request.getParameter("title") == null) {%> + +
+ + + + + + + + + + + + + + + + + + + + + + + + Select No for the first option to make this Gradebook item unavailable in the Student Gradebook. Select No for the second option to exclude this Gradebook item from summary calculations. Gradebook items excluded from summary calculations are also excluded from weighting. Also note that if some weighted items are included in calculations and other weighted items are not, grade weight calculations will be skewed. + + + Yes + No + + + Yes + No + + + + + "/> + +<% } else { %> +<% +String result="A new discussion gradebook entry has been created and assigned to this forum."; +try{ + +LineitemDbLoader liLoader = (LineitemDbLoader) bbPm.getLoader(LineitemDbLoader.TYPE); +LineitemDbPersister liPersister = (LineitemDbPersister) bbPm.getPersister(LineitemDbPersister.TYPE); +Lineitem li = new Lineitem(); + +li.setCourseId(courseId); +li.setName(request.getParameter("title")); +li.setType(request.getParameter("categoryId")); +li.setAssessmentLocation( Lineitem.AssessmentLocation.EXTERNAL ); +li.setAssessmentId(request.getParameter("forum_pk1"),Lineitem.AssessmentLocation.EXTERNAL); +li.setAnalysisHandlerUrl("/webapps/jjde-jjcdd-bb_bb60/modules/index.jsp"); +li.setPointsPossible((new Float(request.getParameter("possible"))).floatValue()); +li.setDateAdded(); +li.setColumnOrder(3000); +if (request.getParameter("visible").equals("true")){ +li.setIsAvailable(true); +} else { +li.setIsAvailable(false); +} +li.validate(); +liPersister.persist(li); + +OutcomeDefinition ocd = li.getOutcomeDefinition(); +if (request.getParameter("scorable").equals("true")){ +ocd.setScorable(true); +} else { +ocd.setScorable(false); +} +ocd.setDescription(request.getParameter("description")); +OutcomeDefinitionScale ods; +try{ +ods = ods2Loader.loadByCourseIdAndTitle(courseId,request.getParameter("DisplayAs")); +} catch (Exception e){ +ods = ods2Loader.loadByCourseIdAndTitle(courseId,request.getParameter("DisplayAs")+".title"); +} +ocd.setScale(ods); + +SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +Calendar cstart = Calendar.getInstance(); +cstart.setTime(formatter.parse(request.getParameter("start_date_0"))); +ocd.setDueDate(cstart); +ocdPersister.persist(ocd); +} catch (java.lang.NumberFormatException e){ +result = "Sorry, some required fields may have been left blank, please return the previous page to correct this situations and submit the form again."; +} +%> + + + + + +
+ + + + + + + + + + + +
+<%=result%> +
+
+<%=(new Date()).toString()%> +
+OK + +
+<%}%> + + + + +
+ +
\ No newline at end of file Index: lams_bb_integration/web/modules/start_lesson_proc.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/Attic/start_lesson_proc.jsp,v diff -u -r1.3 -r1.4 --- lams_bb_integration/web/modules/start_lesson_proc.jsp 19 Sep 2007 02:00:00 -0000 1.3 +++ lams_bb_integration/web/modules/start_lesson_proc.jsp 4 Oct 2007 07:11:32 -0000 1.4 @@ -14,6 +14,8 @@ <%@ page import="blackboard.platform.session.BbSession"%> <%@ page import="blackboard.platform.*"%> <%@ page import="blackboard.platform.plugin.PlugInUtil"%> +<%@ page import="blackboard.data.gradebook.Lineitem" %> +<%@ page import="blackboard.persist.gradebook.LineitemDbPersister" %> <%@ page import="org.lamsfoundation.ld.integration.blackboard.LamsSecurityUtil"%> <%@ page import="org.lamsfoundation.ld.integration.blackboard.LamsPluginUtil"%> @@ -24,10 +26,12 @@ + + <% String title = request.getParameter("title").trim(); String description = request.getParameter("description").trim(); @@ -92,21 +96,38 @@ throw new ServletException(e.getMessage(), e); } - // add port to the url if the port is in the blackboard url. + + // Creating the gradebook row for this lesson + Id lineitemId = bbPm.generateId(Lineitem.LINEITEM_DATA_TYPE,learningSessionId); + + Lineitem lineitem = new Lineitem(); + lineitem.setCourseId(courseId); + lineitem.setName("LAMS Lesson: " + title); + lineitem.setId(lineitemId); + lineitem.setAssessmentId(learningSessionId,Lineitem.AssessmentLocation.EXTERNAL); + lineitem.setAssessmentLocation( Lineitem.AssessmentLocation.EXTERNAL ); + lineitem.setDateAdded(); + lineitem.setIsAvailable(true); + lineitem.setType("LAMS"); + lineitem.setColumnOrder(3000); + lineitem.validate(); + lineitem.setPointsPossible(1); + + + + // add port to the url if the port is in the blackboard url. int bbport = request.getServerPort(); String bbportstr = bbport != 0 ? ":" + bbport : ""; - - - //String contentUrl = LamsSecurityUtil.generateRequestURL(ctx, "learner") + "&lsid=" + learningSessionId; String contentUrl = request.getScheme() + "://" + request.getServerName() + bbportstr + request.getContextPath() + "/modules/learnermonitor.jsp?lsid=" + learningSessionId + - "&course_id=" + request.getParameter("course_id"); + "&course_id=" + request.getParameter("course_id") + + "&lineitem_id=" + lineitemId.getExternalString(); myContent.setUrl(contentUrl); //Parse start/end Date from the @@ -125,6 +146,13 @@ } + + + //LineitemDbLoader liLoader = (LineitemDbLoader) bbPm.getLoader(LineitemDbLoader.TYPE); + LineitemDbPersister lineItempersist = (LineitemDbPersister) bbPm.getPersister(LineitemDbPersister.TYPE); + lineItempersist.persist(lineitem); + + ContentDbPersister persister= (ContentDbPersister) bbPm.getPersister( ContentDbPersister.TYPE ); persister.persist( myContent ); Index: lams_bb_integration/web/modules/updateGrades.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_bb_integration/web/modules/Attic/updateGrades.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_bb_integration/web/modules/updateGrades.jsp 4 Oct 2007 07:11:32 -0000 1.1 @@ -0,0 +1,59 @@ +<%@ page import="java.util.*, + java.text.*, + blackboard.data.*, + blackboard.data.course.*, + blackboard.data.user.*, + blackboard.persist.*, + blackboard.persist.course.*, + blackboard.persist.user.*, + blackboard.persist.gradebook.*, + blackboard.data.gradebook.*, + blackboard.base.*, + blackboard.platform.*, + blackboard.platform.log.*, + blackboard.platform.session.*, + blackboard.platform.persistence.*, + blackboard.platform.BbServiceManager.*, + blackboard.platform.context.*, + blackboard.base.BbList.*, + blackboard.platform.plugin.PlugInUtil, + java.util.Calendar, + org.lamsfoundation.ld.integration.blackboard.LamsSecurityUtil, + blackboard.platform.security.*" + errorPage="/error.jsp" + %> +<%@ taglib uri="/bbUI" prefix="bbUI"%> +<%@ taglib uri="/bbData" prefix="bbData"%> + + + +<% + BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistenceManager(); + UserDbLoader uLoader = UserDbLoader.Default.getInstance(); + CourseDbLoader cLoader = CourseDbLoader.Default.getInstance(); + CourseMembershipDbLoader memLoader =(CourseMembershipDbLoader) bbPm.getLoader(CourseMembershipDbLoader.TYPE); + ScoreDbLoader scoreLoader = (ScoreDbLoader) bbPm.getLoader(ScoreDbLoader.TYPE); + ScoreDbPersister scorePersister = (ScoreDbPersister) bbPm.getPersister(ScoreDbPersister.TYPE); + String courseId = request.getParameter("course_id"); + String lineitemId = request.getParameter("lineitem_id"); + + +%> + + + + + + + + + LAMS Update Grades + +LAMS Update Grades + +LAMS user progress data successfully updated in GradeBook + + + + +