Index: 3rdParty_sources/versions.txt =================================================================== diff -u -r3e7c2afdc86f6b135b1c435ca17f31c8a3f3c841 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- 3rdParty_sources/versions.txt (.../versions.txt) (revision 3e7c2afdc86f6b135b1c435ca17f31c8a3f3c841) +++ 3rdParty_sources/versions.txt (.../versions.txt) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -35,7 +35,7 @@ JSP API 2.3 -MySQL Connector/J 5.1.43 +MySQL Connector/J 5.1.46 oauth 20100527 Index: lams_build/3rdParty.userlibraries =================================================================== diff -u -r969b1185a18d028b10bb0bd4aa2af6ea93e0f8b5 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_build/3rdParty.userlibraries (.../3rdParty.userlibraries) (revision 969b1185a18d028b10bb0bd4aa2af6ea93e0f8b5) +++ lams_build/3rdParty.userlibraries (.../3rdParty.userlibraries) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -15,7 +15,6 @@ - @@ -34,5 +33,6 @@ + Index: lams_build/lib/lams/lams-central.jar =================================================================== diff -u -r433c3dff4f4c7961e4f90f7d370a399bedaadaf6 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 Binary files differ Index: lams_build/lib/lams/lams-gradebook.jar =================================================================== diff -u -ra949c337adc53b2df9207aa1de6e500281de7c20 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 Binary files differ Index: lams_build/lib/lams/lams-learning.jar =================================================================== diff -u -r83005805dfe5847c8578b56911f7e9f8ce08ff9f -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 Binary files differ Index: lams_build/lib/lams/lams-monitoring.jar =================================================================== diff -u -r8daec7e047f7ea8404c6f16218b63a8e855a15b2 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rbed16653a5d0b482d001200c1532d9f7e1b7f707 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 Binary files differ Index: lams_build/liblist.txt =================================================================== diff -u -r969b1185a18d028b10bb0bd4aa2af6ea93e0f8b5 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_build/liblist.txt (.../liblist.txt) (revision 969b1185a18d028b10bb0bd4aa2af6ea93e0f8b5) +++ lams_build/liblist.txt (.../liblist.txt) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -31,7 +31,7 @@ json-simple json-simple-1.1.1.jar 1.1.1 Apache License 2.0 fangyidong A simple Java toolkit for JSON -mysql mysql-connector-java-5.1.43-bin.jar 5.1.43 GPL Oracle Java connector for MySQL +mysql mysql-connector-java-5.1.46-bin.jar 5.1.46 GPL Oracle Java connector for MySQL odmg odmg-3.0.jar 3.0 Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/LamsAuthoringFinishController.java =================================================================== diff -u -r433c3dff4f4c7961e4f90f7d370a399bedaadaf6 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/LamsAuthoringFinishController.java (.../LamsAuthoringFinishController.java) (revision 433c3dff4f4c7961e4f90f7d370a399bedaadaf6) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/LamsAuthoringFinishController.java (.../LamsAuthoringFinishController.java) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -32,14 +32,14 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.tool.IToolVO; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.ToolContentManager; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.WebUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.util.AttributeNames; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; @@ -66,7 +66,7 @@ private static final String RE_EDIT_URL = "reEditUrl"; - private static IAuditService auditService; + private static ILogEventService logEventService; /** * Action method, will handle save/cancel action. @@ -112,7 +112,7 @@ //audit log content has been finished being edited if (StringUtils.equals(action, DEFINE_LATER_ACTION)) { - getAuditService(applicationContext).logFinishEditingActivityInMonitor(toolContentId); + getLogEventService(applicationContext).logFinishEditingActivityInMonitor(toolContentId); } //reset defineLater task @@ -122,7 +122,7 @@ ToolContentManager contentManager = (ToolContentManager) findToolService(applicationContext, signature); contentManager.resetDefineLater(toolContentId); - getAuditService(applicationContext).logCancelEditingActivityInMonitor(toolContentId); + getLogEventService(applicationContext).logCancelEditingActivityInMonitor(toolContentId); } } @@ -157,13 +157,13 @@ } /** - * Get AuditService bean + * Get LogEventService bean */ - private IAuditService getAuditService(ApplicationContext applicationContext) { - if (auditService == null) { - auditService = (IAuditService) applicationContext.getBean("auditService"); + private ILogEventService getLogEventService(ApplicationContext applicationContext) { + if (logEventService == null) { + logEventService = (ILogEventService) applicationContext.getBean("logEventService"); } - return auditService; + return logEventService; } /** Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/RepopulateProgressMarksServlet.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/RepopulateProgressMarksServlet.java (.../RepopulateProgressMarksServlet.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/RepopulateProgressMarksServlet.java (.../RepopulateProgressMarksServlet.java) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -74,9 +74,10 @@ @Override @SuppressWarnings("unchecked") - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { - String header=""; + String header = ""; StringBuilder errorBuilder = new StringBuilder(""); StringBuilder auditLogBuilder = new StringBuilder(""); UserDTO userDTO = null; @@ -98,10 +99,10 @@ return; } - header = new StringBuilder( - "Learner progress and gradebook marks to be repopulated for lesson ").append(lessonId).append(" ") - .append(lesson.getLessonName()) - .append(".\n----------------------------------------------------------------------------------\n\n").toString(); + header = new StringBuilder("Learner progress and gradebook marks to be repopulated for lesson ") + .append(lessonId).append(" ").append(lesson.getLessonName()) + .append(".\n----------------------------------------------------------------------------------\n\n") + .toString(); ActivitiesToCheckProcessor processor = new ActivitiesToCheckProcessor(lesson.getLearningDesign(), learnerService.getActivityDAO()); @@ -115,7 +116,7 @@ auditLogBuilder.append("\n\n"); if (restrictToLearnerId == null) { - Set progresses = (Set) lesson.getLearnerProgresses(); + Set progresses = lesson.getLearnerProgresses(); for (LearnerProgress learnerProgress : progresses) { processLearner(errorBuilder, auditLogBuilder, lesson, activityList, learnerProgress, gradebookAll); } @@ -139,9 +140,11 @@ String errors = errorBuilder.append("\n").toString(); String msg; if (errors.length() > 1) { - msg = new StringBuilder(header).append("Errors occured. Some data may be been updated.\n").append(errors).append(auditLogBuilder.toString()).toString(); + msg = new StringBuilder(header).append("Errors occured. Some data may be been updated.\n").append(errors) + .append(auditLogBuilder.toString()).toString(); } else { - msg = new StringBuilder(header).append("Successful run, no errors\n").append(auditLogBuilder.toString()).toString(); + msg = new StringBuilder(header).append("Successful run, no errors\n").append(auditLogBuilder.toString()) + .toString(); } logEventService.logEvent(LogEvent.TYPE_MARK_UPDATED, userDTO != null ? userDTO.getUserID() : null, null, lessonId, null, msg); out.println(msg); @@ -151,23 +154,25 @@ private void processLearner(StringBuilder errorBuilder, StringBuilder auditLogBuilder, Lesson lesson, ArrayList activityList, LearnerProgress learnerProgress, boolean updateGradebookForAll) { try { - String messages[] = learnerService.recalcProgressForLearner(lesson, activityList, learnerProgress, updateGradebookForAll); + String messages[] = learnerService.recalcProgressForLearner(lesson, activityList, learnerProgress, + updateGradebookForAll); auditLogBuilder.append(messages[0]); errorBuilder.append(messages[1]); - } catch ( Throwable e ) { - log.error("Error thrown while processing "+learnerProgress.getUser().getLogin(), e); + } catch (Throwable e) { + log.error("Error thrown while processing " + learnerProgress.getUser().getLogin(), e); String msg = new StringBuilder("Error occured while processing user ") - .append(learnerProgress.getUser().getLogin()).append(" ").append(learnerProgress.getUser().getFullName()).append(". Proceeding entries in log for this user may or may not have worked. Error was ") - .append(e.getMessage()).append("\n") - .toString(); + .append(learnerProgress.getUser().getLogin()).append(" ") + .append(learnerProgress.getUser().getFullName()) + .append(". Proceeding entries in log for this user may or may not have worked. Error was ") + .append(e.getMessage()).append("\n").toString(); auditLogBuilder.append(msg); errorBuilder.append(msg); } } @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, - IOException { + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { doGet(request, response); } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java =================================================================== diff -u -r433c3dff4f4c7961e4f90f7d370a399bedaadaf6 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 433c3dff4f4c7961e4f90f7d370a399bedaadaf6) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -43,13 +43,15 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.confidencelevel.ConfidenceLevelDTO; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.learning.service.ILearnerService; import org.lamsfoundation.lams.learningdesign.DataFlowObject; import org.lamsfoundation.lams.learningdesign.dao.IDataFlowDAO; import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; @@ -96,7 +98,6 @@ import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.springframework.dao.DataAccessException; @@ -122,7 +123,7 @@ private IUserManagementService userManagementService; private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private ILamsToolService toolService; private IExportToolContentService exportContentService; @@ -1163,17 +1164,30 @@ */ @Override public void hideOpenVote(VoteUsrAttempt voteUsrAttempt) { - auditService.logHideEntry(VoteAppConstants.MY_SIGNATURE, voteUsrAttempt.getQueUsrId(), - voteUsrAttempt.getVoteQueUsr().getUsername(), voteUsrAttempt.getUserEntry()); + Long toolContentId = null; + if (voteUsrAttempt.getVoteQueContent() != null && voteUsrAttempt.getVoteQueContent().getMcContent() != null) { + toolContentId = voteUsrAttempt.getVoteQueContent().getMcContent().getVoteContentId(); + } + + logEventService.logHideLearnerContent(voteUsrAttempt.getVoteQueUsr().getQueUsrId(), + voteUsrAttempt.getVoteQueUsr().getUsername(), toolContentId, + voteUsrAttempt.getUserEntry()); + } /** * logs showing of a user entered vote */ @Override public void showOpenVote(VoteUsrAttempt voteUsrAttempt) { - auditService.logShowEntry(VoteAppConstants.MY_SIGNATURE, voteUsrAttempt.getQueUsrId(), - voteUsrAttempt.getVoteQueUsr().getUsername(), voteUsrAttempt.getUserEntry()); + Long toolContentId = null; + if (voteUsrAttempt.getVoteQueContent() != null && voteUsrAttempt.getVoteQueContent().getMcContent() != null) { + toolContentId = voteUsrAttempt.getVoteQueContent().getMcContent().getVoteContentId(); + } + + logEventService.logShowLearnerContent(voteUsrAttempt.getVoteQueUsr().getQueUsrId(), + voteUsrAttempt.getVoteQueUsr().getUsername(), toolContentId, + voteUsrAttempt.getUserEntry()); } @Override @@ -1611,6 +1625,11 @@ } @Override + public List getConfidenceLevels(Long toolSessionId) { + return null; + } + + @Override public void forceCompleteUser(Long toolSessionId, User user) { Long userId = user.getUserId().longValue(); @@ -1663,6 +1682,11 @@ } @Override + public void updateEntry(NotebookEntry notebookEntry) { + coreNotebookService.updateEntry(notebookEntry); + } + + @Override public List getAllQuestionsSorted(final long voteContentId) { return voteQueContentDAO.getAllQuestionsSorted(voteContentId); } @@ -1848,18 +1872,18 @@ } /** - * @return Returns the auditService. + * @return Returns the logEventService. */ - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } /** - * @param auditService - * The auditService to set. + * @param logEventService + * The logEventService to set. */ - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public IExportToolContentService getExportContentService() { Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/LearningController.java =================================================================== diff -u -r433c3dff4f4c7961e4f90f7d370a399bedaadaf6 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/LearningController.java (.../LearningController.java) (revision 433c3dff4f4c7961e4f90f7d370a399bedaadaf6) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/LearningController.java (.../LearningController.java) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -511,20 +511,31 @@ LearningController.repopulateRequestParameters(request, voteLearningForm); - String toolSessionID = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); - logger.info("Tool Session Id" + toolSessionID); - voteLearningForm.setToolSessionID(toolSessionID); + String toolSessionIDString = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + voteLearningForm.setToolSessionID(toolSessionIDString); + Long toolSessionID = new Long(toolSessionIDString); - String userID = request.getParameter("userID"); - logger.info("User Id:" + userID); - voteLearningForm.setUserID(userID); + String userIDString = request.getParameter("userID"); + voteLearningForm.setUserID(userIDString); + Integer userID = new Integer(userIDString); String reflectionEntry = request.getParameter(ENTRY_TEXT); - logger.info("reflection entry: " + reflectionEntry); - voteService.createNotebookEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, MY_SIGNATURE, - new Integer(userID), reflectionEntry); + // check for existing notebook entry + NotebookEntry entry = voteService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, userID); + if (entry == null) { + // create new entry + voteService.createNotebookEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, MY_SIGNATURE, + userID, reflectionEntry); + } else { + // update existing entry + entry.setEntry(reflectionEntry); + entry.setLastModified(new Date()); + voteService.updateEntry(entry); + } + voteLearningForm.resetUserActions(); /* resets all except submitAnswersContent */ return learnerFinished(voteLearningForm, request); } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/MonitoringController.java =================================================================== diff -u -r433c3dff4f4c7961e4f90f7d370a399bedaadaf6 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/MonitoringController.java (.../MonitoringController.java) (revision 433c3dff4f4c7961e4f90f7d370a399bedaadaf6) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/action/MonitoringController.java (.../MonitoringController.java) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -34,7 +34,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; -import org.apache.commons.lang.StringEscapeUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.vote.VoteAppConstants; import org.lamsfoundation.lams.tool.vote.dto.OpenTextAnswerDTO; @@ -61,6 +60,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.util.HtmlUtils; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; @@ -173,7 +173,7 @@ ObjectNode responseRow = JsonNodeFactory.instance.objectNode(); responseRow.put(VoteAppConstants.ATTR_USER_ID, (Integer) userAndAnswers[0]); - responseRow.put(VoteAppConstants.ATTR_USER_NAME, StringEscapeUtils.escapeHtml((String) userAndAnswers[2])); + responseRow.put(VoteAppConstants.ATTR_USER_NAME, HtmlUtils.htmlEscape((String) userAndAnswers[2])); responseRow.put(VoteAppConstants.ATTR_ATTEMPT_TIME, DateUtil.convertToStringForJSON((Date) userAndAnswers[3], request.getLocale())); responseRow.put(VoteAppConstants.ATTR_ATTEMPT_TIME_TIMEAGO, @@ -213,10 +213,9 @@ for (Object[] userAndReflection : users) { ObjectNode responseRow = JsonNodeFactory.instance.objectNode(); responseRow.put(VoteAppConstants.ATTR_USER_ID, (Integer) userAndReflection[0]); - responseRow.put(VoteAppConstants.ATTR_USER_NAME, - StringEscapeUtils.escapeHtml((String) userAndReflection[2])); + responseRow.put(VoteAppConstants.ATTR_USER_NAME, HtmlUtils.htmlEscape((String) userAndReflection[2])); if (userAndReflection.length > 3 && userAndReflection[3] != null) { - String reflection = StringEscapeUtils.escapeHtml((String) userAndReflection[3]); + String reflection = HtmlUtils.htmlEscape((String) userAndReflection[3]); responseRow.put(VoteAppConstants.NOTEBOOK, reflection.replaceAll("\n", "
")); } if (userAndReflection.length > 4) { @@ -285,11 +284,10 @@ ObjectNode responseRow = JsonNodeFactory.instance.objectNode(); responseRow.put("uid", userAndAttempt.getUserUid()); - responseRow.put(VoteAppConstants.ATTR_USER_NAME, - StringEscapeUtils.escapeHtml(userAndAttempt.getFullName())); + responseRow.put(VoteAppConstants.ATTR_USER_NAME, HtmlUtils.htmlEscape(userAndAttempt.getFullName())); responseRow.put("userEntryUid", userAndAttempt.getUserEntryUid()); - responseRow.put("userEntry", StringEscapeUtils.escapeHtml(userAndAttempt.getUserEntry())); + responseRow.put("userEntry", HtmlUtils.htmlEscape(userAndAttempt.getUserEntry())); responseRow.put(VoteAppConstants.ATTR_ATTEMPT_TIME, DateUtil.convertToStringForJSON(userAndAttempt.getAttemptTime(), request.getLocale())); responseRow.put(VoteAppConstants.ATTR_ATTEMPT_TIME_TIMEAGO, Index: lams_tool_vote/web/WEB-INF/tags/CommentsAuthor.tag =================================================================== diff -u -r500ae45f4243aa718eac7436bc903b4f137a3aa7 -r9349bab097150a4a15cf4c6c10b7946400c3fbd0 --- lams_tool_vote/web/WEB-INF/tags/CommentsAuthor.tag (.../CommentsAuthor.tag) (revision 500ae45f4243aa718eac7436bc903b4f137a3aa7) +++ lams_tool_vote/web/WEB-INF/tags/CommentsAuthor.tag (.../CommentsAuthor.tag) (revision 9349bab097150a4a15cf4c6c10b7946400c3fbd0) @@ -1,7 +1,7 @@ <%@ taglib uri="tags-core" prefix="c"%> -<%@ taglib uri="tags-html" prefix="html"%> <%@ taglib uri="tags-fmt" prefix="fmt"%> <%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> <%@ attribute name="allowCommentsVariableName" required="false" rtexprvalue="true"%> <%@ attribute name="allowCommentLabelKey" required="false" rtexprvalue="true"%> @@ -39,20 +39,18 @@ -
-
-     -   +     +