Index: lams_admin/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -534,7 +534,8 @@ label.select.type=Select type... label.date=Date label.between.dates=Between dates -label.lesson.with.name=Lesson: {0} +label.lesson.with.name=Lesson: {0} ({1}) +label.activity.with.name=Activity: {0} ({1}) label.type.teacher.learning.design.create=Learning Design Created label.type.teacher.lesson.create=Lesson Created @@ -563,5 +564,7 @@ label.area.marks=Marks label.area.learner.content=Learner Entry label.area.unknown=Unknown +audit.change.made.by=Changes Made By +audit.change.made.to=Changes Made To #======= End labels: Exported 511 labels for en AU ===== Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/LogEventAction.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/LogEventAction.java (.../LogEventAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/LogEventAction.java (.../LogEventAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -62,7 +62,7 @@ private static ILogEventService logEventService; private MessageService messageService; - private static SimpleDateFormat START_DATE_FORMAT = new SimpleDateFormat("YYYY-MM-DD"); + private static SimpleDateFormat START_DATE_FORMAT = new SimpleDateFormat("YYYY-MM-dd"); @Override public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, @@ -176,15 +176,29 @@ responseRow.put("dateOccurred", event.getOccurredDateTime()); responseRow.put("typeId", event.getLogEventTypeId()); responseRow.put("description", event.getDescription()); + if ( event.getLessonId() != null ) + responseRow.put("lessonId", event.getLessonId()); + if ( event.getActivityId() != null ) + responseRow.put("activityId", event.getActivityId()); + User user = event.getUser(); if (user != null) { responseRow.put("userPortraitId", user.getPortraitUuid()); responseRow.put("userId", user.getUserId()); responseRow.put("userName", user.getLogin()); } + User targetUser = event.getTargetUser(); + if (targetUser != null) { + responseRow.put("targetUserPortraitId", targetUser.getPortraitUuid()); + responseRow.put("targetUserId", targetUser.getUserId()); + responseRow.put("targetUserName", targetUser.getLogin()); + } if ( eventDetails.length > 1 && eventDetails[1] != null ) { - responseRow.put("lesson", eventDetails[1] ); + responseRow.put("lessonName", eventDetails[1] ); } + if ( eventDetails.length > 2 && eventDetails[2] != null ) { + responseRow.put("activityName", eventDetails[2] ); + } rows.put(responseRow); } } Index: lams_admin/web/logevent.jsp =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_admin/web/logevent.jsp (.../logevent.jsp) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_admin/web/logevent.jsp (.../logevent.jsp) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -20,6 +20,8 @@ const LESSON_LABEL = ''; + + const ACTIVITY_LABEL = ''; var areaMenu, typeMenu, @@ -40,10 +42,11 @@ } typeMenu = document.getElementById("typeMenu"); - $("#endDatePicker").datetimepicker(); + $("#endDatePicker").datepicker(); var now = new Date(); $("#endDatePicker").datepicker( "setDate", now ); - $("#startDatePicker").datetimepicker(); + $("#startDatePicker").datepicker(); + debugger; var startDateParts = "${startDate}".split("-"); // YYYY-MM-DD if ( startDateParts.length == 3 ) { var startDate = new Date(startDateParts[0], startDateParts[1]-1, startDateParts[2]); @@ -58,7 +61,7 @@ sortInitialOrder: 'desc', sortList: [[0]], widgets: [ "uitheme", "resizable", "filter" ], - headers: { 0: { filter: false}, 1: { filter: false, sorter: false}, 2: { filter: false, sorter: false}, 3: { filter: false, sort: false} }, + headers: { 0: { filter: false}, 1: { filter: false, sorter: false}, 2: { filter: false, sorter: false}, 3: { filter: false, sorter: false}, 4: { filter: false, sorter: false}, }, sortList : [[0,1]], widgetOptions: { resizable: true, @@ -118,16 +121,42 @@ rows += ''; rows += ''; - if ( logData['lesson'] && logData['description'] ) { - debugger; - rows += LESSON_LABEL.replace('{0}',logData['lesson'])+'
'+logData['description']; - } else if ( logData['lesson'] ) { - rows += logData['lesson']; - } else if ( logData['description'] ) { - rows += logData['description']; + if ( logData['targetUserId'] ) { + rows += definePortraitPopover(logData['targetUserPortraitId'], logData['targetUserId'], logData['targetUserName'], logData['targetUserName']); + } else { + rows += '-'; } rows += ''; + rows += ''; + var lesson = null, activity = null, description = null, lineCount = 0; + if ( logData['lessonId'] ) { + lesson = LESSON_LABEL.replace('{0}',logData['lessonName']).replace('{1}',logData['lessonId']); + lineCount++; + } + if ( logData['activityId'] ) { + activity = ACTIVITY_LABEL.replace('{0}',logData['activityName']).replace('{1}',logData['activityId']); + lineCount++; + } + if ( logData['description'] ) { + description = logData['description']; + lineCount++; + } + if ( lesson != null ) { + rows+=lesson; + if ( lineCount > 1 ) + rows+='
'; + } + if ( activity != null ) { + rows+=activity; + if ( lineCount > 1 ) + rows+='
'; + } + if ( description != null ) { + rows+=description; + } + rows += ''; + rows += ''; } @@ -209,6 +238,8 @@

+

${startDate}

+
  @@ -219,10 +250,11 @@
- + - + +
Index: lams_build/conf/domain.xml =================================================================== diff -u -r713c85b7c18fa089747d0749e09d40bc15b6b422 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_build/conf/domain.xml (.../domain.xml) (revision 713c85b7c18fa089747d0749e09d40bc15b6b422) +++ lams_build/conf/domain.xml (.../domain.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -71,15 +71,6 @@ - - - - - - - - - @@ -121,12 +112,6 @@ - - - - - - Index: lams_build/conf/slim/standalone.xml =================================================================== diff -u -r713c85b7c18fa089747d0749e09d40bc15b6b422 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision 713c85b7c18fa089747d0749e09d40bc15b6b422) +++ lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -90,17 +90,6 @@ - - - - - - - - - - @@ -184,14 +173,6 @@ - - - - - - - Index: lams_build/conf/standalone.xml =================================================================== diff -u -r713c85b7c18fa089747d0749e09d40bc15b6b422 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_build/conf/standalone.xml (.../standalone.xml) (revision 713c85b7c18fa089747d0749e09d40bc15b6b422) +++ lams_build/conf/standalone.xml (.../standalone.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -99,17 +99,6 @@ - - - - - - - - - - @@ -193,14 +182,6 @@ - - - - - - - Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r5f82321c5864250c612773630ff209a45e71a3f1 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 Binary files differ Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r65f6cda04f38eb60e5346f1601ebac80af95557b -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 65f6cda04f38eb60e5346f1601ebac80af95557b) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -807,5 +807,6 @@ authoring.tbl.desc.question=These questions are for iRA and tRA. Click "Create Question" to add more questions. authoring.tbl.desc.ae=State the questions for AE. Click "Create Question" to add more questions. +audit.design.created=Learning design "{0}" ({1}) created by {2} ({3}) #======= End labels: Exported 732 labels for en AU ===== Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -1515,10 +1515,10 @@ } private void insertEventLogEntry(User user, LearningDesign design, Date createDate) { - String message = new StringBuilder("Learning design ").append(design.getTitle()).append("(") - .append(design.getLearningDesignId()).append(") created by ").append(user.getLogin()) - .append("(").append(user.getUserId()).append(").").toString(); - logEventService.logEvent(LogEvent.TYPE_TEACHER_LEARNING_DESIGN_CREATE, user.getUserId(), null, null, null, message, createDate); + String message = messageService.getMessage("audit.design.created", + new Object[] { design.getTitle(), design.getLearningDesignId(), user.getLogin(), user.getUserId() }); + logEventService.logEvent(LogEvent.TYPE_TEACHER_LEARNING_DESIGN_CREATE, user.getUserId(), null, null, null, + message, createDate); } /** Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/LamsAuthoringFinishAction.java =================================================================== diff -u -r2abc3485dc2d24ea02044a64271f3ee0d3b8c11b -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/LamsAuthoringFinishAction.java (.../LamsAuthoringFinishAction.java) (revision 2abc3485dc2d24ea02044a64271f3ee0d3b8c11b) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/LamsAuthoringFinishAction.java (.../LamsAuthoringFinishAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -38,14 +38,14 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +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.web.context.WebApplicationContext; @@ -72,7 +72,7 @@ private static final String RE_EDIT_URL = "reEditUrl"; - private static IAuditService auditService; + private static ILogEventService logEventService; /** * Action method, will handle save/cancel action. @@ -117,7 +117,7 @@ //audit log content has been finished being edited if (StringUtils.equals(action, DEFINE_LATER_ACTION)) { - getAuditService().logFinishEditingActivityInMonitor(toolContentId); + getLogEventService().logFinishEditingActivityInMonitor(toolContentId); } //reset defineLater task @@ -127,7 +127,7 @@ ToolContentManager contentManager = (ToolContentManager) findToolService(signature); contentManager.resetDefineLater(toolContentId); - getAuditService().logCancelEditingActivityInMonitor(toolContentId); + getLogEventService().logCancelEditingActivityInMonitor(toolContentId); } return null; @@ -166,15 +166,15 @@ } /** - * Get AuditService bean + * Get LogEventService bean */ - private IAuditService getAuditService() { - if (auditService == null) { + private ILogEventService getLogEventService() { + if (logEventService == null) { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); - auditService = (IAuditService) ctx.getBean("auditService"); + logEventService = (ILogEventService) ctx.getBean("logEventService"); } - return auditService; + return logEventService; } /** Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/logevent/LogEvent.hbm.xml =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/logevent/LogEvent.hbm.xml (.../LogEvent.hbm.xml) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/logevent/LogEvent.hbm.xml (.../LogEvent.hbm.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -58,13 +58,18 @@ not-null="true" /> - + > + + - + + Index: lams_common/src/java/org/lamsfoundation/lams/comments/service/CommentService.java =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/comments/service/CommentService.java (.../CommentService.java) (revision 1bf70a335f5b30a1907ccae506908b05374c6c8c) +++ lams_common/src/java/org/lamsfoundation/lams/comments/service/CommentService.java (.../CommentService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -35,10 +35,12 @@ import org.lamsfoundation.lams.comments.dao.ICommentLikeDAO; import org.lamsfoundation.lams.comments.dao.ICommentSessionDAO; import org.lamsfoundation.lams.comments.dto.CommentDTO; +import org.lamsfoundation.lams.logevent.service.ILogEventService; +import org.lamsfoundation.lams.tool.ToolSession; +import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * @@ -56,7 +58,8 @@ // Services private IUserManagementService userService; private MessageService messageService; - private IAuditService auditService; + private ILogEventService logEventService; + private ILamsToolService toolService; private ICommentSessionDAO commentSessionDAO; private ICommentDAO commentDAO; private ICommentLikeDAO commentLikeDAO; @@ -201,6 +204,19 @@ Comment comment = commentDAO.getById(commentUid); comment.setHideFlag(status); commentDAO.saveOrUpdate(comment); + + Long learnerUserId = 0L; + String loginName = "Default"; + if (comment.getCreatedBy() != null) { + learnerUserId = comment.getCreatedBy().getUserId().longValue(); + loginName = comment.getCreatedBy().getLogin(); + } + Long toolContentId = getToolContentIdForAuditing(commentUid, comment); + if ( status ) + getLogEventService().logHideLearnerContent(learnerUserId, loginName, toolContentId, comment.toString()); + else + getLogEventService().logShowLearnerContent(learnerUserId, loginName, toolContentId, comment.toString()); + return comment; } @@ -218,13 +234,15 @@ if (comment != null && user != null) { if (makeAuditEntry) { - Long userId = 0L; + Long learnerUserId = 0L; String loginName = "Default"; if (comment.getCreatedBy() != null) { - userId = comment.getCreatedBy().getUserId().longValue(); + learnerUserId = comment.getCreatedBy().getUserId().longValue(); loginName = comment.getCreatedBy().getLogin(); } - getAuditService().logChange(MODULE_NAME, userId, loginName, comment.getBody(), newBody); + Long toolContentId = getToolContentIdForAuditing(commentUid, comment); + getLogEventService().logChangeLearnerContent(learnerUserId, loginName, toolContentId, comment.getBody(), + newBody); } comment.setBody(newBody); @@ -239,6 +257,27 @@ } } + private Long getToolContentIdForAuditing(Long commentUid, Comment comment) { + Long toolContentId = null; + String externalSignature = comment.getSession().getExternalSignature(); + if (externalSignature != null) { + Long externalId = comment.getSession().getExternalId(); // current this is toolSessionId + ToolSession session = getToolService().getToolSession(externalId); + if (session != null + && externalSignature.equals(session.getToolActivity().getTool().getToolSignature())) { + // consistent session id and tool signature so we should be safe. If this fails we have something + // else but a tool using the comment module + toolContentId = session.getToolActivity().getToolContentId(); + } + } + if (toolContentId == null) { + log.error( + "Unexpected data for comment. Will create incomplete audit entry - cannot determine toolContentId. CommentUid=" + + commentUid); + } + return toolContentId; + } + @Override public Comment updateSticky(Long commentUid, Boolean newSticky) { @@ -277,14 +316,22 @@ this.messageService = messageService; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } + public ILamsToolService getToolService() { + return toolService; + } + + public void setToolService(ILamsToolService toolService) { + this.toolService = toolService; + } + public ICommentSessionDAO getCommentSessionDAO() { return commentSessionDAO; } Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -447,14 +447,6 @@ - - - - - - - - Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -145,7 +145,7 @@ * Get the lesson and activity ids that apply to the tool activity associated with this tool content id. * Returns an array of two longs. */ - Object[] getLessonActivityForActivity(long toolContentId); + Object[] getLessonActivityIdsForToolContentId(long toolContentId); /** * Gets all non-removed lessons for a user in an org; set userRole parameter to learner if you want lessons where Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -28,8 +28,6 @@ import java.util.List; import java.util.Map; -import javax.tools.Tool; - import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.hibernate.FetchMode; @@ -38,6 +36,7 @@ import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.LearningDesign; +import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.dao.ILessonDAO; @@ -65,11 +64,10 @@ private final static String FIND_LESSON_FOR_ACTIVITY = "select lesson from " + Lesson.class.getName() + " lesson, " + Activity.class.getName() + " activity " + " where activity.activityId=:activityId and activity.learningDesign=lesson.learningDesign"; - private final static String FIND_LESSON_ACTIVITY_BY_TOOL_CONTENT_ID = "SELECT lesson.lessonId, activity.activityId, tool.toolSignature FROM " - + Lesson.class.getName() + " lesson, " - + Activity.class.getName() + " activity " - + Tool.class.getName() + " tool " - + " WHERE activity.toolContentId=:toolContentId activity.toolId = tool.toolId and activity.learningDesign=lesson.learningDesign"; + private final static String FIND_LESSON_ACTIVITY_IDS_BY_TOOL_CONTENT_ID = "SELECT lesson.lessonId, toolActivity.activityId FROM " + + Lesson.class.getName() + " lesson, " + ToolActivity.class.getName() + " toolActivity " + + " WHERE toolActivity.learningDesign = lesson.learningDesign " + + " AND toolActivity.toolContentId = :toolContentId"; private final static String LESSONS_WITH_ORIGINAL_LEARNING_DESIGN = "select l from " + Lesson.class.getName() + " l " + "where l.learningDesign.originalLearningDesign.learningDesignId = ? " + "and l.learningDesign.copyTypeID != " + LearningDesign.COPY_TYPE_PREVIEW + " " + "and l.lessonStateId = " @@ -96,7 +94,6 @@ private final static String FIND_PREVIEW_LESSON_IDS = "SELECT lesson.lessonId FROM " + Lesson.class.getName() + " AS lesson WHERE lesson.learningDesign.copyTypeID = " + LearningDesign.COPY_TYPE_PREVIEW; - /** * Retrieves the Lesson. Used in instances where it cannot be lazy loaded so it forces an initialize. * @@ -272,8 +269,8 @@ * Returns an array of two longs. */ @Override - public Object[] getLessonActivityForActivity(long toolContentId) { - Query query = getSession().createQuery(LessonDAO.FIND_LESSON_ACTIVITY_BY_TOOL_CONTENT_ID); + public Object[] getLessonActivityIdsForToolContentId(long toolContentId) { + Query query = getSession().createQuery(LessonDAO.FIND_LESSON_ACTIVITY_IDS_BY_TOOL_CONTENT_ID); query.setLong("toolContentId", toolContentId); List list = query.list(); return list.size() > 0 ? (Object[]) list.get(0) : null; Index: lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java (.../LogEvent.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/LogEvent.java (.../LogEvent.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -79,7 +79,7 @@ private Date occurredDateTime; /** */ - private Integer targetUserId; + private User targetUser; /** */ private Long lessonId; @@ -150,12 +150,12 @@ /** * */ - public Integer getTargetUserId() { - return targetUserId; + public User getTargetUser() { + return targetUser; } - public void setTargetUserId(Integer targetUserId) { - this.targetUserId = targetUserId; + public void setTargetUser(User targetUser) { + this.targetUser = targetUser; } /** Index: lams_common/src/java/org/lamsfoundation/lams/logevent/dao/hibernate/LogEventDAO.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/logevent/dao/hibernate/LogEventDAO.java (.../LogEventDAO.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/dao/hibernate/LogEventDAO.java (.../LogEventDAO.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -122,8 +122,9 @@ // Basic select for the user records StringBuilder queryText = new StringBuilder(); - queryText.append( - "SELECT le.*, lesson.name lessonName FROM lams_log_event le LEFT JOIN lams_lesson lesson ON le.lesson_id = lesson.lesson_id"); + queryText.append("SELECT le.*, lesson.name lessonName, activity.title activityName FROM lams_log_event le ") + .append(" LEFT JOIN lams_lesson lesson ON le.lesson_id = lesson.lesson_id") + .append(" LEFT JOIN lams_learning_activity activity ON le.activity_id = activity.activity_id"); addWhereClause(startDate, endDate, area, typeId, queryText); // // If filtering by name add a name based where clause (LDEV-3779: must come before the Notebook JOIN statement) @@ -135,6 +136,7 @@ SQLQuery query = getSession().createSQLQuery(queryText.toString()); query.addEntity("event", LogEvent.class); query.addScalar("lessonName", StringType.INSTANCE); + query.addScalar("activityName", StringType.INSTANCE); addParameters(startDate, endDate, area, typeId, query); query.setFirstResult(page * size).setMaxResults(size); return query.list(); @@ -146,7 +148,7 @@ if ((startDate != null && endDate != null) || area != null || typeId != null) { queryText.append(" WHERE "); if (startDate != null && endDate != null) { - queryText.append("( occurred_date_time > :startDate AND occurred_date_time <= :endDate )"); + queryText.append("( occurred_date_time BETWEEN :startDate AND DATE_ADD(:endDate,INTERVAL 1 DAY)) "); needAnd = true; } if (typeId != null) { Index: lams_common/src/java/org/lamsfoundation/lams/logevent/service/ILogEventService.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/logevent/service/ILogEventService.java (.../ILogEventService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/service/ILogEventService.java (.../ILogEventService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -98,6 +98,7 @@ /* ***************************** Helper methods used by tools to keep the audit entries consistent *****************/ void logChangeLearnerContent(Long learnerUserId, String learnerUserLogin, Long toolContentId, String originalText, String newText); + void logChangeLearnerArbitraryChange(Long learnerUserId, String learnerUserLogin, Long toolContentId, String message); void logMarkChange(Long learnerUserId, String learnerUserLogin, Long toolContentId, String originalMark, String newMark); @@ -111,4 +112,5 @@ void logFinishEditingActivityInMonitor(Long toolContentId); void logCancelEditingActivityInMonitor(Long toolContentId); + } Index: lams_common/src/java/org/lamsfoundation/lams/logevent/service/LogEventService.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/logevent/service/LogEventService.java (.../LogEventService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/logevent/service/LogEventService.java (.../LogEventService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -97,10 +97,11 @@ public void logEvent(Integer logEventTypeId, Integer userId, Integer targetUserId, Long lessonId, Long activityId, String description, Date eventDate) { User user = (userId != null) ? (User) userManagementService.findById(User.class, userId) : null; + User targetUser = (targetUserId != null) ? (User) userManagementService.findById(User.class, targetUserId) : null; LogEvent logEvent = new LogEvent(); logEvent.setLogEventTypeId(logEventTypeId); logEvent.setUser(user); - logEvent.setTargetUserId(targetUserId); + logEvent.setTargetUser(targetUser); logEvent.setLessonId(lessonId); logEvent.setActivityId(activityId); logEvent.setDescription(description); @@ -166,11 +167,10 @@ return null; } - // can I replace module name with tool signature? @Override public void logChangeLearnerContent(Long learnerUserId, String learnerUserLogin, Long toolContentId, String originalText, String newText) { - String[] args = new String[4]; + Object[] args = new Object[5]; args[0] = learnerUserLogin + "(" + learnerUserId + ")"; args[1] = originalText; args[2] = newText; @@ -181,7 +181,7 @@ @Override public void logMarkChange(Long learnerUserId, String learnerUserLogin, Long toolContentId, String originalMark, String newMark) { - String[] args = new String[4]; + Object[] args = new Object[5]; args[0] = learnerUserLogin + "(" + learnerUserId + ")"; args[1] = originalMark; args[2] = newMark; @@ -191,7 +191,7 @@ @Override public void logHideLearnerContent(Long learnerUserId, String learnerUserLogin, Long toolContentId, String hiddenItem) { - String[] args = new String[3]; + Object[] args = new Object[4]; args[0] = learnerUserLogin + "(" + learnerUserId + ")"; args[1] = hiddenItem; logLearnerChange(LogEvent.TYPE_LEARNER_CONTENT_SHOW_HIDE, learnerUserId, toolContentId, AUDIT_HIDE_I18N_KEY, @@ -201,34 +201,51 @@ @Override public void logShowLearnerContent(Long learnerUserId, String learnerUserLogin, Long toolContentId, String hiddenItem) { - String[] args = new String[3]; + Object[] args = new Object[4]; args[0] = learnerUserLogin + "(" + learnerUserId + ")"; args[1] = hiddenItem; logLearnerChange(LogEvent.TYPE_LEARNER_CONTENT_SHOW_HIDE, learnerUserId, toolContentId, AUDIT_SHOW_I18N_KEY, args); } private void logLearnerChange(int eventType, Long learnerUserId, Long toolContentId, String messageKey, - String[] args) { + Object[] args) { Long lessonId = null; Long activityId = null; - String toolSignature = null; if (toolContentId != null) { - // ToolActivity toolActivity = - Object[] ids = lessonDAO.getLessonActivityForActivity(toolContentId); + Object[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); if (ids != null) { lessonId = (Long) ids[0]; activityId = (Long) ids[1]; - toolSignature = (String) ids[2]; } } - - args[args.length - 1] = toolSignature; - logEvent(eventType, getCurrentUserId(), learnerUserId != null ? learnerUserId.intValue() : null, lessonId, + UserDTO currentUser = getCurrentUser(); + + args[args.length - 1] = currentUser.getUserID(); + args[args.length - 2] = currentUser.getLogin(); + logEvent(eventType, currentUser.getUserID(), learnerUserId != null ? learnerUserId.intValue() : null, lessonId, activityId, messageService.getMessage(messageKey, args)); } @Override + // Use for unusual changes such as adding/removing file + public void logChangeLearnerArbitraryChange(Long learnerUserId, String learnerUserLogin, Long toolContentId, String message) { + Long lessonId = null; + Long activityId = null; + if (toolContentId != null) { + // ToolActivity toolActivity = + Object[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); + if (ids != null) { + lessonId = (Long) ids[0]; + activityId = (Long) ids[1]; + } + } + + logEvent(LogEvent.TYPE_LEARNER_CONTENT_UPDATED, getCurrentUserId(), learnerUserId != null ? learnerUserId.intValue() : null, lessonId, + activityId, message); + } + + @Override public void logStartEditingActivityInMonitor(Long toolContentId) { logEditActivityInMonitor(toolContentId, AUDIT_STARTED_EDITING_I18N_KEY); } @@ -247,28 +264,26 @@ Number lessonId = null; Number activityId = null; - String toolSignature = null; if (toolContentId != null) { // ToolActivity toolActivity = - Object[] ids = lessonDAO.getLessonActivityForActivity(toolContentId); + Object[] ids = lessonDAO.getLessonActivityIdsForToolContentId(toolContentId); if (ids != null) { lessonId = (Number) ids[0]; activityId = (Number) ids[1]; - toolSignature = (String) ids[2]; } } UserDTO user = getCurrentUser(); String userString = user != null - ? new StringBuilder(user.getLogin()).append("(").append(user.getUserID()).append(")").toString() + ? new StringBuilder(user.getLogin()).append(" (").append(user.getUserID()).append(")").toString() : ""; - String activityString = new StringBuilder(toolSignature).append(" (activityId:").append(activityId).append(")") - .toString(); - String message = messageService.getMessage(messageKey, new String[] { userString, activityString }); + String activityString = new StringBuilder(" (").append(activityId).append(")").toString(); + String message = messageService.getMessage(messageKey, new Object[] { userString, activityString }); logEvent(LogEvent.TYPE_ACTIVITY_EDIT, getCurrentUserId(), null, lessonId != null ? lessonId.longValue() : null, activityId != null ? activityId.longValue() : null, message.toString()); } + // ****************** End of tool helper methods **************************************************************** /** * * @param logEventDAO Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java =================================================================== diff -u -rbbe9589ceab063d62380b9fe3f02648a4581e109 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java (.../LamsToolService.java) (revision bbe9589ceab063d62380b9fe3f02648a4581e109) +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java (.../LamsToolService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -24,8 +24,6 @@ package org.lamsfoundation.lams.tool.service; import java.io.IOException; -import java.lang.reflect.Field; -import java.lang.reflect.Method; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; @@ -47,11 +45,10 @@ import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO; import org.lamsfoundation.lams.lesson.CompletedActivityProgress; import org.lamsfoundation.lams.lesson.LearnerProgress; -import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.tool.IToolVO; import org.lamsfoundation.lams.tool.Tool; -import org.lamsfoundation.lams.tool.ToolContent; import org.lamsfoundation.lams.tool.ToolOutput; import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.tool.dao.IToolContentDAO; @@ -61,7 +58,6 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.util.FileUtil; import org.lamsfoundation.lams.util.FileUtilException; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * @author Jacky Fang @@ -79,7 +75,7 @@ private static final String TOOL_SIGNATURE_MCQ = "lamc11"; private IActivityDAO activityDAO; - private IAuditService auditService; + private ILogEventService logEventService; private IToolDAO toolDAO; private IToolSessionDAO toolSessionDAO; private IToolContentDAO toolContentDAO; @@ -152,7 +148,7 @@ @Override public void auditLogStartEditingActivityInMonitor(long toolContentID) { - auditService.logStartEditingActivityInMonitor(toolContentID); + logEventService.logStartEditingActivityInMonitor(toolContentID); } @Override @@ -441,8 +437,8 @@ this.activityDAO = activityDAO; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setToolSessionDAO(IToolSessionDAO toolSessionDAO) { Index: lams_common/src/java/org/lamsfoundation/lams/toolApplicationContext.xml =================================================================== diff -u -r2abc3485dc2d24ea02044a64271f3ee0d3b8c11b -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_common/src/java/org/lamsfoundation/lams/toolApplicationContext.xml (.../toolApplicationContext.xml) (revision 2abc3485dc2d24ea02044a64271f3ee0d3b8c11b) +++ lams_common/src/java/org/lamsfoundation/lams/toolApplicationContext.xml (.../toolApplicationContext.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -82,7 +82,7 @@ - + Fisheye: Tag 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/util/audit/AuditService.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/util/audit/IAuditService.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_learning/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rd9bd1a0e26977326e557246c8440c8d13d2debc9 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_learning/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision d9bd1a0e26977326e557246c8440c8d13d2debc9) +++ lams_learning/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -183,4 +183,8 @@ label.kumalive.poll.results =Results label.kumalive.poll.votes.total =Total votes button.kumalive.poll.chart.switch =Switch chart +audit.activity.started=Learner {0} ({1}) started activity {2} ({3}) +audit.activity.stopped=Learner {0} ({1}) stopped activity {2} ({3}) +audit.learner.lesson.complete=Learner {0} ({1}) completed lesson {2} ({3}) + #======= End labels: Exported 151 labels for en AU ===== Index: lams_learning/src/java/org/lamsfoundation/lams/learning/learningApplicationContext.xml =================================================================== diff -u -r55db010f978602628d3e68673c1fca8ca6b7b7c6 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_learning/src/java/org/lamsfoundation/lams/learning/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision 55db010f978602628d3e68673c1fca8ca6b7b7c6) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -55,6 +55,7 @@ + @@ -145,6 +146,7 @@ + Index: lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -41,6 +41,7 @@ import org.lamsfoundation.lams.logevent.LogEvent; import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.util.MessageService; /** * The Progress Engine controls how a learner progresses through a sequence. @@ -53,9 +54,14 @@ public class ProgressEngine { protected Logger log = Logger.getLogger(ProgressEngine.class); + public static final String AUDIT_ACTIVITY_START_KEY = "audit.activity.started"; + public static final String AUDIT_ACTIVITY_STOP_KEY = "audit.activity.stopped"; + public static final String AUDIT_LESSON_COMPLETE_KEY = "audit.learner.lesson.complete"; + private IActivityDAO activityDAO; private ILogEventService logEventService; - + private MessageService messageService; + /** * Method determines next step for a learner based on the activity they have * just completed. Will clear the Parallel Waiting Complete value if it is @@ -208,6 +214,7 @@ * Set the current activity as attempted. If it is a parallel activity, mark * its children as attempted too. */ + @SuppressWarnings("rawtypes") public void setActivityAttempted(LearnerProgress progress, Activity activity) { progress.setProgressState(activity, LearnerProgress.ACTIVITY_ATTEMPTED, activityDAO); activity.setReadOnly(true); @@ -223,8 +230,9 @@ } logEventService.logEvent(LogEvent.TYPE_LEARNER_ACTIVITY_START, progress.getUser().getUserId(), - progress.getUser().getUserId(), progress.getLesson().getLessonId(), - activity.getActivityId(), null); + progress.getUser().getUserId(), progress.getLesson().getLessonId(), activity.getActivityId(), + messageService.getMessage(AUDIT_ACTIVITY_START_KEY, new Object[] { progress.getUser().getLogin(), + progress.getUser().getUserId(), activity.getTitle(), activity.getActivityId() })); // update activity activityDAO.insertOrUpdate(activity); @@ -372,9 +380,12 @@ learnerProgress.setLessonComplete(completionStatus); // log learner has completed the current lesson event - logEventService.logEvent(LogEvent.TYPE_LEARNER_LESSON_COMPLETE, learnerProgress.getUser().getUserId(), - learnerProgress.getUser().getUserId(), - learnerProgress.getLesson().getLessonId(), null, null); + logEventService.logEvent(LogEvent.TYPE_LEARNER_LESSON_COMPLETE, learnerProgress.getUser().getUserId(), + learnerProgress.getUser().getUserId(), learnerProgress.getLesson().getLessonId(), null, + messageService.getMessage(AUDIT_LESSON_COMPLETE_KEY, + new Object[] { learnerProgress.getUser().getLogin(), learnerProgress.getUser().getUserId(), + learnerProgress.getLesson().getLessonName(), + learnerProgress.getLesson().getLessonId() })); return learnerProgress; } @@ -423,5 +434,9 @@ public void setLogEventService(ILogEventService logEventService) { this.logEventService = logEventService; } + public void setMessageService(MessageService messageService) { + this.messageService = messageService; + } + } \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -91,6 +91,7 @@ import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.MessageService; /** * This class is a facade over the Learning middle tier. @@ -118,6 +119,7 @@ private static HashMap syncMap = new HashMap(); private IGradebookService gradebookService; private ILogEventService logEventService; + private MessageService messageService; // --------------------------------------------------------------------- // Inversion of Control Methods - Constructor injection @@ -218,6 +220,10 @@ this.logEventService = logEventService; } + public void setMessageService(MessageService messageService) { + this.messageService = messageService; + } + // --------------------------------------------------------------------- // Service Methods // --------------------------------------------------------------------- @@ -646,8 +652,10 @@ } // } logEventService.logEvent(LogEvent.TYPE_LEARNER_ACTIVITY_FINISH, learnerId, - null, progress.getLesson().getLessonId(), - activity.getActivityId(), "ADD COMMENT HERE"); + learnerId, progress.getLesson().getLessonId(), + activity.getActivityId(), + messageService.getMessage(ProgressEngine.AUDIT_ACTIVITY_STOP_KEY, new Object[] { progress.getUser().getLogin(), + progress.getUser().getUserId(), activity.getTitle(), activity.getActivityId() })); } @Override Index: lams_monitoring/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rfe122f9f7ac40f3a3696a7c69043fc34df7994d4 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_monitoring/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision fe122f9f7ac40f3a3696a7c69043fc34df7994d4) +++ lams_monitoring/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -51,7 +51,7 @@ force.complete.stop.message.completed.to.activity =Move to activity successful. force.complete.stop.message.completed.to.end =Move to activity successful to end of the lesson. force.complete.stop.message.stopped.unexpectedly =Move to activity has finished processing. Please check the learner's progress bar for their current activity. -audit.lesson.created =Lesson "{0}" created with learning design "{1}". +audit.lesson.created =Lesson "{0}" created with learning design "{1}" ({2}) label.branching.general.instructions =Place the lesson participants in their branches. Initially you can add and remove learners, but once a participant starts one of the branches then you will not be able to remove learners from any branches. If you try to remove someone from a branch and they will not remove then check their progress - if they start using the branch while you are on this screen you will not get any errors but you will not be able to remove them from the branch. You will still be able to add learners to branches. label.branching.branch.heading =Branch label.branching.non.allocated.users.heading =Learners without a branch Index: lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r41771fed1bd0652923d05a84de584769dcfe0ef7 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 41771fed1bd0652923d05a84de584769dcfe0ef7) +++ lams_monitoring/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -51,7 +51,7 @@ force.complete.stop.message.completed.to.activity =Move to activity successful. force.complete.stop.message.completed.to.end =Move to activity successful to end of the lesson. force.complete.stop.message.stopped.unexpectedly =Move to activity has finished processing. Please check the learner's progress bar for their current activity. -audit.lesson.created =Lesson "{0}" created with learning design "{1}". +audit.lesson.created =Lesson "{0}" created with learning design "{1}" ({2}) label.branching.general.instructions =Place the lesson participants in their branches. Initially you can add and remove learners, but once a participant starts one of the branches then you will not be able to remove learners from any branches. If you try to remove someone from a branch and they will not remove then check their progress - if they start using the branch while you are on this screen you will not get any errors but you will not be able to remove them from the branch. You will still be able to add learners to branches. label.branching.branch.heading =Branch label.branching.non.allocated.users.heading =Learners without a branch Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -394,12 +394,7 @@ forceLearnerRestart, allowLearnerRestart, gradebookOnComplete, scheduledNumberDaysToLessonFinish, precedingLesson); - Long initializedLearningDesignId = initializedLesson.getLearningDesign().getLearningDesignId(); - auditLogLessonStateChange(initializedLesson, null, initializedLesson.getLessonStateId()); - logEventService.logEvent(LogEvent.TYPE_TEACHER_LESSON_CREATE, userID, null, - initializedLesson.getLessonId(), null, - "Lesson created using learning design id "+initializedLearningDesignId); - + logLessonStateChange(LogEvent.TYPE_TEACHER_LESSON_CREATE, initializedLesson, userID, null, initializedLesson.getLessonStateId()); return initializedLesson; } @@ -434,8 +429,9 @@ displayDesignImage, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled, enableLessonNotifications, forceLearnerRestart, allowLearnerRestart, gradebookOnComplete, scheduledNumberDaysToLessonFinish, precedingLesson); - writeAuditLog(MonitoringService.AUDIT_LESSON_CREATED_KEY, - new Object[] { lessonName, learningDesign.getTitle() }); + logLessonGeneralChange(LogEvent.TYPE_TEACHER_LESSON_CREATE, user != null ? user.getUserId() : null, + lesson != null ? lesson.getLessonId() : null, MonitoringService.AUDIT_LESSON_CREATED_KEY, + new Object[] { lessonName, learningDesign.getTitle(), learningDesign.getLearningDesignId() }); return lesson; } @@ -462,8 +458,9 @@ displayDesignImage, learnerPresenceAvailable, learnerImAvailable, liveEditEnabled, enableLessonNotifications, forceLearnerRestart, allowLearnerRestart, gradebookOnComplete, scheduledNumberDaysToLessonFinish, precedingLesson); - writeAuditLog(MonitoringService.AUDIT_LESSON_CREATED_KEY, - new Object[] { lessonName, copiedLearningDesign.getTitle() }); + logLessonGeneralChange(LogEvent.TYPE_TEACHER_LESSON_CREATE, user != null ? user.getUserId() : null, + lesson != null ? lesson.getLessonId() : null, MonitoringService.AUDIT_LESSON_CREATED_KEY, + new Object[] { lessonName, copiedLearningDesign.getTitle(), copiedLearningDesign.getLearningDesignId() }); return lesson; } @@ -557,7 +554,7 @@ } requestedLesson.setScheduleStartDate(tzStartLessonDate); - setLessonState(requestedLesson, Lesson.NOT_STARTED_STATE); + setLessonState(requestedLesson, Lesson.NOT_STARTED_STATE, userId); } catch (SchedulerException e) { throw new MonitoringServiceException( "Error occurred at " + "[startLessonOnSchedule]- fail to start scheduling", e); @@ -738,10 +735,7 @@ if (MonitoringService.log.isDebugEnabled()) { MonitoringService.log.debug("=============Lesson " + lessonId + " started==============="); } - auditLogLessonStateChange(requestedLesson, null, requestedLesson.getLessonStateId()); - logEventService.logEvent(LogEvent.TYPE_TEACHER_LESSON_START, userId, null, - lessonId, null, - "Lesson started"); + logLessonStateChange(LogEvent.TYPE_TEACHER_LESSON_START, requestedLesson, userId, null, requestedLesson.getLessonStateId()); } @Override @@ -904,7 +898,7 @@ public void finishLesson(long lessonId, Integer userId) { securityService.isLessonMonitor(lessonId, userId, "finish lesson", true); Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); - setLessonState(requestedLesson, Lesson.FINISHED_STATE); + setLessonState(requestedLesson, Lesson.FINISHED_STATE, userId); } @Override @@ -922,7 +916,7 @@ } if (!Lesson.ARCHIVED_STATE.equals(lessonState) && !Lesson.REMOVED_STATE.equals(lessonState)) { - setLessonState(requestedLesson, Lesson.ARCHIVED_STATE); + setLessonState(requestedLesson, Lesson.ARCHIVED_STATE, userId); } } @@ -932,7 +926,7 @@ Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); // remove any triggers waiting to suspend the lesson removeScheduleDisableTrigger(requestedLesson); - revertLessonState(requestedLesson); + revertLessonState(requestedLesson, userId); } @Override @@ -941,7 +935,7 @@ Lesson lesson = lessonDAO.getLesson(new Long(lessonId)); if (!Lesson.SUSPENDED_STATE.equals(lesson.getLessonStateId()) && !Lesson.REMOVED_STATE.equals(lesson.getLessonStateId())) { - setLessonState(lesson, Lesson.SUSPENDED_STATE); + setLessonState(lesson, Lesson.SUSPENDED_STATE, userId); } if (clearScheduleDetails) { removeScheduleDisableTrigger(lesson); @@ -969,7 +963,7 @@ } // remove any triggers waiting to suspend the lesson removeScheduleDisableTrigger(lesson); - revertLessonState(lesson); + revertLessonState(lesson, userId); } /** @@ -978,23 +972,30 @@ * @param requestedLesson * @param status */ - private void setLessonState(Lesson requestedLesson, Integer status) { - auditLogLessonStateChange(requestedLesson, requestedLesson.getLessonStateId(), status); + private void setLessonState(Lesson requestedLesson, Integer status, Integer userId) { + logLessonStateChange(LogEvent.TYPE_TEACHER_LESSON_CHANGE_STATE, requestedLesson, userId, requestedLesson.getLessonStateId(), status); requestedLesson.setPreviousLessonStateId(requestedLesson.getLessonStateId()); requestedLesson.setLessonStateId(status); lessonDAO.updateLesson(requestedLesson); - logEventService.logEvent(LogEvent.TYPE_TEACHER_LESSON_CHANGE_STATE, requestedLesson.getUser().getUserId(), null, - requestedLesson.getLessonId(), null, - "Lesson state changed"); } - private void auditLogLessonStateChange(Lesson lesson, Integer previousStatus, Integer newStatus) { + private void logLessonStateChange(Integer eventType, Lesson lesson, Integer userId, Integer previousStatus, + Integer newStatus) { String fromState = getStateDescription(previousStatus); String toState = getStateDescription(newStatus); - writeAuditLog(MonitoringService.AUDIT_LESSON_STATUS_CHANGED, + String message = messageService.getMessage(MonitoringService.AUDIT_LESSON_STATUS_CHANGED, new Object[] { lesson.getLessonName(), lesson.getLessonId(), fromState, toState }); + logEventService.logEvent(eventType != null ? eventType : LogEvent.TYPE_TEACHER_LESSON_CHANGE_STATE, userId, + null, lesson.getLessonId(), null, message); } + private void logLessonGeneralChange(int logEventType, Integer userId, Long lessonId, String messageKey, Object[] args) { + String message = messageService.getMessage(messageKey, args); + logEventService.logEvent(logEventType, userId, null, lessonId, null, message); + } + + + private String getStateDescription(Integer status) { if (status != null) { if (status.equals(Lesson.CREATED)) { @@ -1028,7 +1029,7 @@ * @param requestedLesson * @param status */ - private void revertLessonState(Lesson requestedLesson) { + private void revertLessonState(Lesson requestedLesson, Integer userId) { Integer currentStatus = requestedLesson.getLessonStateId(); Integer newStatus; @@ -1069,10 +1070,7 @@ } lessonDAO.updateLesson(requestedLesson); - auditLogLessonStateChange(requestedLesson, currentStatus, newStatus); - logEventService.logEvent(LogEvent.TYPE_TEACHER_LESSON_CHANGE_STATE, requestedLesson.getUser().getUserId(), null, - requestedLesson.getLessonId(), null, - "Lesson state reverted"); + logLessonStateChange(LogEvent.TYPE_TEACHER_LESSON_CHANGE_STATE, requestedLesson, userId, currentStatus, newStatus); } @Override @@ -1081,7 +1079,7 @@ Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); // remove any triggers waiting to suspend the lesson removeScheduleDisableTrigger(requestedLesson); - setLessonState(requestedLesson, Lesson.REMOVED_STATE); + setLessonState(requestedLesson, Lesson.REMOVED_STATE, userId); } @SuppressWarnings("unchecked") @@ -1153,7 +1151,8 @@ // finally remove the learning design lessonDAO.delete(learningDesign); - writeAuditLog(MonitoringService.AUDIT_LESSON_REMOVED_PERMANENTLY_KEY, + logLessonGeneralChange(LogEvent.TYPE_TEACHER_LESSON_CHANGE_STATE, userId, lessonId, + MonitoringService.AUDIT_LESSON_REMOVED_PERMANENTLY_KEY, new Object[] { lesson.getLessonName(), lesson.getLessonId() }); } @@ -2817,19 +2816,6 @@ } /** - * Write out audit log entry - * - * @param messageKey - * @param args - */ - private void writeAuditLog(String messageKey, Object[] args) { - String message = messageService.getMessage(messageKey, args); - // TODO refactor! - logEventService.logEvent(LogEvent.TYPE_UNKNOWN, null, null, null, null, message); -// auditService.log(MonitoringConstants.MONITORING_MODULE_NAME, message); - } - - /** * Removes learner content from ToolActivities and resets read-only flag, if possible. */ private boolean removeLearnerContent(Activity activity, User learner, boolean resetReadOnly) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r9c5964cc6b8152e9ddb6651e900b7b74f0a4e110 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 9c5964cc6b8152e9ddb6651e900b7b74f0a4e110) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -58,6 +58,7 @@ 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; @@ -112,7 +113,6 @@ import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.NumberUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * @author Andrey Balan @@ -146,7 +146,7 @@ private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private IUserManagementService userManagementService; @@ -1981,11 +1981,11 @@ result.setGrade(totalMark); assessmentResultDao.saveObject(result); - // propagade changes to Gradebook + // propagate changes to Gradebook gradebookService.updateActivityMark(new Double(totalMark), null, userId.intValue(), toolSessionId, false); // records mark change with audit service - auditService.logMarkChange(AssessmentConstants.TOOL_SIGNATURE, userId, user.getLoginName(), "" + oldMark, + logEventService.logMarkChange(userId, user.getLoginName(), assessment.getContentId(), "" + oldMark, "" + totalMark); } @@ -2400,8 +2400,8 @@ // set methods for Spring Bean // ***************************************************************************** - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setLearnerService(ILearnerService learnerService) { Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -44,6 +44,7 @@ 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; @@ -73,7 +74,6 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.JsonUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * An implementation of the IChatService interface. @@ -99,7 +99,7 @@ private IToolContentHandler chatToolContentHandler = null; - private IAuditService auditService = null; + private ILogEventService logEventService = null; private IExportToolContentService exportContentService; @@ -632,28 +632,37 @@ return chatMessageDAO.getLatest(chatSession, max, orderAsc); } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } @Override public void auditEditMessage(ChatMessage chatMessage, String messageBody) { - auditService.logChange(ChatConstants.TOOL_SIGNATURE, chatMessage.getFromUser().getUserId(), - chatMessage.getFromUser().getLoginName(), chatMessage.getBody(), messageBody); + Long toolContentId = null; + if (chatMessage.getChatSession() != null && chatMessage.getChatSession().getChat() != null) { + toolContentId = chatMessage.getChatSession().getChat().getToolContentId(); + } + + logEventService.logChangeLearnerContent(chatMessage.getFromUser().getUserId(), + chatMessage.getFromUser().getLoginName(), toolContentId, chatMessage.getBody(), messageBody); } @Override public void auditHideShowMessage(ChatMessage chatMessage, boolean messageHidden) { + Long toolContentId = null; + if (chatMessage.getChatSession() != null && chatMessage.getChatSession().getChat() != null) { + toolContentId = chatMessage.getChatSession().getChat().getToolContentId(); + } if (messageHidden) { - auditService.logHideEntry(ChatConstants.TOOL_SIGNATURE, chatMessage.getFromUser().getUserId(), - chatMessage.getFromUser().getLoginName(), chatMessage.toString()); + logEventService.logHideLearnerContent(chatMessage.getFromUser().getUserId(), + chatMessage.getFromUser().getLoginName(), toolContentId, chatMessage.toString()); } else { - auditService.logShowEntry(ChatConstants.TOOL_SIGNATURE, chatMessage.getFromUser().getUserId(), - chatMessage.getFromUser().getLoginName(), chatMessage.toString()); + logEventService.logShowLearnerContent(chatMessage.getFromUser().getUserId(), + chatMessage.getFromUser().getLoginName(), toolContentId, chatMessage.toString()); } } Index: lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/service/DokumaranService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/service/DokumaranService.java (.../DokumaranService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/service/DokumaranService.java (.../DokumaranService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -47,6 +47,7 @@ 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; @@ -71,7 +72,6 @@ import org.lamsfoundation.lams.tool.dokumaran.model.DokumaranSession; import org.lamsfoundation.lams.tool.dokumaran.model.DokumaranUser; import org.lamsfoundation.lams.tool.dokumaran.util.DokumaranToolContentHandler; -import org.lamsfoundation.lams.tool.dokumaran.web.action.LearningWebsocketServer; import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.service.ILamsToolService; @@ -80,7 +80,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 net.gjerull.etherpad.client.EPLiteClient; import net.gjerull.etherpad.client.EPLiteException; @@ -110,7 +109,7 @@ private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private IUserManagementService userManagementService; @@ -1055,8 +1054,8 @@ // ***************************************************************************** // set methods for Spring Bean // ***************************************************************************** - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setLearnerService(ILearnerService learnerService) { Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -65,6 +65,7 @@ import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; import org.lamsfoundation.lams.lesson.service.ILessonService; +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; @@ -113,7 +114,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; /** * @@ -150,7 +150,7 @@ private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private MessageService messageService; @@ -175,13 +175,13 @@ // --------------------------------------------------------------------- // Inversion of Control Methods - Method injection // --------------------------------------------------------------------- - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } @Override - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } public void setMessageService(MessageService messageService) { @@ -300,14 +300,18 @@ if (message != null) { Long userId = 0L; String loginName = "Default"; + Long toolContentId = null; if (message.getCreatedBy() != null) { userId = message.getCreatedBy().getUserId(); loginName = message.getCreatedBy().getLoginName(); } + if ( message.getToolSession() != null && message.getToolSession().getForum() != null ) { + toolContentId = message.getToolSession().getForum().getContentId(); + } if (hideFlag) { - auditService.logHideEntry(ForumConstants.TOOL_SIGNATURE, userId, loginName, message.toString()); + logEventService.logHideLearnerContent(userId, loginName, toolContentId, message.toString()); } else { - auditService.logShowEntry(ForumConstants.TOOL_SIGNATURE, userId, loginName, message.toString()); + logEventService.logShowLearnerContent(userId, loginName, toolContentId, message.toString()); } message.setHideFlag(hideFlag); Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java =================================================================== diff -u -rd71c8a085fb0ea3c341f2cf46df958c356d88ec7 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java (.../IForumService.java) (revision d71c8a085fb0ea3c341f2cf46df958c356d88ec7) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java (.../IForumService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -28,6 +28,7 @@ import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.events.IEventNotificationService; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.forum.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.forum.dto.MessageDTO; @@ -40,7 +41,6 @@ import org.lamsfoundation.lams.tool.forum.persistence.Message; import org.lamsfoundation.lams.tool.forum.persistence.MessageSeq; import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * User: conradb Date: 8/06/2005 Time: 14:49:59 @@ -359,7 +359,7 @@ void releaseMarksForSession(Long sessionID); /** The topic updates (for monitoring) are done in the web layer, so need the audit service to log the updates */ - IAuditService getAuditService(); + ILogEventService getLogEventService(); /** * Mark user completing a session. Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java =================================================================== diff -u -r0e9302b16c5c660442417c396fa5cf25f8a81a4f -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision 0e9302b16c5c660442417c396fa5cf25f8a81a4f) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -991,11 +991,15 @@ if (makeAuditEntry) { Long userId = 0L; String loginName = "Default"; - if (message.getCreatedBy() != null) { - userId = message.getCreatedBy().getUserId(); - loginName = message.getCreatedBy().getLoginName(); + Long toolContentId = null; + if (messagePO.getCreatedBy() != null) { + userId = messagePO.getCreatedBy().getUserId(); + loginName = messagePO.getCreatedBy().getLoginName(); } - forumService.getAuditService().logChange(ForumConstants.TOOL_SIGNATURE, userId, loginName, oldMessageString, + if ( messagePO.getToolSession() != null && messagePO.getToolSession().getForum() != null ) { + toolContentId = messagePO.getToolSession().getForum().getContentId(); + } + forumService.getLogEventService().logChangeLearnerContent(userId, loginName, toolContentId, oldMessageString, messagePO.toString()); } Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java =================================================================== diff -u -rc0799c23f6d6b6be5ca5b740b85c72e3cc89a5b1 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java (.../ImageGalleryItem.java) (revision c0799c23f6d6b6be5ca5b740b85c72e3cc89a5b1) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java (.../ImageGalleryItem.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -25,6 +25,7 @@ import java.util.Date; +import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; /** @@ -366,4 +367,9 @@ public void setDescriptionEscaped(String descriptionEscaped) { this.descriptionEscaped = descriptionEscaped; } + + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", uid).append(" title", title).toString(); + } } Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java =================================================================== diff -u -r942b2a5bf6dac160bf9e00bac22e6232ae65ef98 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision 942b2a5bf6dac160bf9e00bac22e6232ae65ef98) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -235,7 +235,7 @@ * * @param itemUid */ - void toggleImageVisibility(Long itemUid); + void toggleImageVisibility(Long itemUid, Long toolContentId); /** * Create refection entry into notebook tool. Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== diff -u -r1783f39beaef59b68da9b1f1fe51004326254e16 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 1783f39beaef59b68da9b1f1fe51004326254e16) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -55,6 +55,7 @@ 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; @@ -97,7 +98,6 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.imgscalr.ResizePictureUtil; /** @@ -138,7 +138,7 @@ private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private IUserManagementService userManagementService; @@ -304,7 +304,7 @@ } @Override - public void toggleImageVisibility(Long itemUid) { + public void toggleImageVisibility(Long itemUid, Long toolContentId) { ImageGalleryItem image = imageGalleryItemDao.getByUid(itemUid); if (image != null) { boolean isHidden = image.isHide(); @@ -315,9 +315,9 @@ Long userId = image.getCreateBy() == null ? 0L : image.getCreateBy().getUserId(); String loginName = image.getCreateBy() == null ? "No user" : image.getCreateBy().getLoginName(); if (isHidden) { - auditService.logShowEntry(ImageGalleryConstants.TOOL_SIGNATURE, userId, loginName, image.toString()); + logEventService.logShowLearnerContent(userId, loginName, toolContentId, image.toString()); } else { - auditService.logHideEntry(ImageGalleryConstants.TOOL_SIGNATURE, userId, loginName, image.toString()); + logEventService.logHideLearnerContent(userId, loginName, toolContentId, image.toString()); } } } @@ -654,8 +654,8 @@ // ***************************************************************************** // set methods for Spring Bean // ***************************************************************************** - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setLearnerService(ILearnerService learnerService) { Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java =================================================================== diff -u -r729f1d10a1efd78ec420b373a7af23ee66ec3454 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 729f1d10a1efd78ec420b373a7af23ee66ec3454) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -212,8 +212,11 @@ HttpServletResponse response) { Long itemUid = WebUtil.readLongParam(request, ImageGalleryConstants.PARAM_IMAGE_UID); + String sessionMapID = WebUtil.readStrParam(request, ImageGalleryConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + Long contentId = (Long) sessionMap.get(ImageGalleryConstants.ATTR_TOOL_CONTENT_ID); IImageGalleryService service = getImageGalleryService(); - service.toggleImageVisibility(itemUid); + service.toggleImageVisibility(itemUid, contentId); return null; } Index: lams_tool_images/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r4583983b64efe1d91fbb47cdde6a759a6a30e859 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_images/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 4583983b64efe1d91fbb47cdde6a759a6a30e859) +++ lams_tool_images/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -115,14 +115,16 @@ }); $(".toggle-image-visibility").click(function() { + debugger; var imageToggleLink = $(this); var imageUid = $(this).data("image-uid"); $.ajax({ type: 'POST', url: "", data : { - 'imageUid' : imageUid + 'imageUid' : imageUid, + 'sessionMapID' : '${sessionMapID}' }, success: function(data) { var isHidden = imageToggleLink.data("is-hidden"); Index: lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/model/CommonCartridgeItem.java =================================================================== diff -u -r2bef59c032438311b6dfadac874b0a7ee4cb72de -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/model/CommonCartridgeItem.java (.../CommonCartridgeItem.java) (revision 2bef59c032438311b6dfadac874b0a7ee4cb72de) +++ lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/model/CommonCartridgeItem.java (.../CommonCartridgeItem.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.Set; +import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; /** @@ -429,4 +430,11 @@ public boolean isComplete() { return complete; } + + @Override + public String toString() { + return new ToStringBuilder(this).append(" uid", uid).append(" type", type).append(" title", title).toString(); + } + + } Index: lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/CommonCartridgeServiceImpl.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/CommonCartridgeServiceImpl.java (.../CommonCartridgeServiceImpl.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/CommonCartridgeServiceImpl.java (.../CommonCartridgeServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -56,6 +56,7 @@ import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; import org.lamsfoundation.lams.lesson.service.ILessonService; +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; @@ -90,7 +91,6 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.zipfile.ZipFileUtil; import org.lamsfoundation.lams.util.zipfile.ZipFileUtilException; @@ -126,7 +126,7 @@ private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private IUserManagementService userManagementService; @@ -476,7 +476,7 @@ } @Override - public void setItemVisible(Long itemUid, boolean visible) { + public void setItemVisible(Long itemUid, Long toolContentId, boolean visible) { CommonCartridgeItem item = commonCartridgeItemDao.getByUid(itemUid); if (item != null) { // createBy should be null for system default value. @@ -487,9 +487,9 @@ loginName = item.getCreateBy().getLoginName(); } if (visible) { - auditService.logShowEntry(CommonCartridgeConstants.TOOL_SIGNATURE, userId, loginName, item.toString()); + logEventService.logShowLearnerContent(userId, loginName, toolContentId, item.toString()); } else { - auditService.logHideEntry(CommonCartridgeConstants.TOOL_SIGNATURE, userId, loginName, item.toString()); + logEventService.logHideLearnerContent(userId, loginName, toolContentId, item.toString()); } item.setHide(!visible); commonCartridgeItemDao.saveObject(item); @@ -604,8 +604,8 @@ // ***************************************************************************** // set methods for Spring Bean // ***************************************************************************** - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setLearnerService(ILearnerService learnerService) { Index: lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/ICommonCartridgeService.java =================================================================== diff -u -r2abc3485dc2d24ea02044a64271f3ee0d3b8c11b -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/ICommonCartridgeService.java (.../ICommonCartridgeService.java) (revision 2abc3485dc2d24ea02044a64271f3ee0d3b8c11b) +++ lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/service/ICommonCartridgeService.java (.../ICommonCartridgeService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -204,7 +204,7 @@ * @param visible * true, item is visible. False, item is invisible. */ - void setItemVisible(Long itemUid, boolean visible); + void setItemVisible(Long itemUid, Long toolContentId, boolean visible); /** * Create refection entry into notebook tool. Index: lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/web/action/MonitoringAction.java =================================================================== diff -u -r2bef59c032438311b6dfadac874b0a7ee4cb72de -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 2bef59c032438311b6dfadac874b0a7ee4cb72de) +++ lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -85,15 +85,16 @@ private ActionForward hideitem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - Long itemUid = WebUtil.readLongParam(request, CommonCartridgeConstants.PARAM_RESOURCE_ITEM_UID); - ICommonCartridgeService service = getCommonCartridgeService(); - service.setItemVisible(itemUid, false); - // get back SessionMap String sessionMapID = request.getParameter(CommonCartridgeConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); request.setAttribute(CommonCartridgeConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + Long toolContentId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_CONTENT_ID); + Long itemUid = WebUtil.readLongParam(request, CommonCartridgeConstants.PARAM_RESOURCE_ITEM_UID); + ICommonCartridgeService service = getCommonCartridgeService(); + service.setItemVisible(itemUid, toolContentId, false); + // update session value List groupList = (List) sessionMap.get(CommonCartridgeConstants.ATTR_SUMMARY_LIST); if (groupList != null) { @@ -112,14 +113,16 @@ private ActionForward showitem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - Long itemUid = WebUtil.readLongParam(request, CommonCartridgeConstants.PARAM_RESOURCE_ITEM_UID); - ICommonCartridgeService service = getCommonCartridgeService(); - service.setItemVisible(itemUid, true); // get back SessionMap String sessionMapID = request.getParameter(CommonCartridgeConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); request.setAttribute(CommonCartridgeConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + Long toolContentId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_CONTENT_ID); + + Long itemUid = WebUtil.readLongParam(request, CommonCartridgeConstants.PARAM_RESOURCE_ITEM_UID); + ICommonCartridgeService service = getCommonCartridgeService(); + service.setItemVisible(itemUid, toolContentId, true); // update session value List groupList = (List) sessionMap.get(CommonCartridgeConstants.ATTR_SUMMARY_LIST); Index: lams_tool_kaltura/src/java/org/lamsfoundation/lams/tool/kaltura/service/KalturaService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_kaltura/src/java/org/lamsfoundation/lams/tool/kaltura/service/KalturaService.java (.../KalturaService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_kaltura/src/java/org/lamsfoundation/lams/tool/kaltura/service/KalturaService.java (.../KalturaService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -41,6 +41,7 @@ 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; @@ -77,7 +78,6 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * An implementation of the IKalturaService interface. @@ -113,7 +113,7 @@ private IToolContentHandler kalturaToolContentHandler = null; - private IAuditService auditService = null; + private ILogEventService logEventService = null; private IExportToolContentService exportContentService; @@ -650,12 +650,12 @@ return kalturaUser; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } @Override Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java =================================================================== diff -u -r5e36aad06f5b9c4fe8551ddc8af5a734ba8058bf -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 5e36aad06f5b9c4fe8551ddc8af5a734ba8058bf) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McService.java (.../McService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -61,6 +61,7 @@ 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; @@ -108,7 +109,6 @@ import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.NumberUtil; -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; @@ -131,7 +131,7 @@ private IMcUsrAttemptDAO mcUsrAttemptDAO; private MCOutputFactory mcOutputFactory; - private IAuditService auditService; + private ILogEventService logEventService; private IUserManagementService userManagementService; private ILearnerService learnerService; private ILamsToolService toolService; @@ -781,8 +781,12 @@ mcSession.getMcSessionId(), false); // record mark change with audit service - auditService.logMarkChange(McAppConstants.TOOL_SIGNATURE, user.getQueUsrId(), - user.getUsername(), "" + oldMark, "" + totalMark); + Long toolContentId = null; + if (mcSession.getMcContent() != null) { + toolContentId = mcSession.getMcContent().getMcContentId(); + } + logEventService.logMarkChange(user.getQueUsrId(), user.getUsername(), toolContentId, "" + oldMark, + "" + totalMark); } } @@ -1773,18 +1777,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; } /** Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java =================================================================== diff -u -r2abc3485dc2d24ea02044a64271f3ee0d3b8c11b -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision 2abc3485dc2d24ea02044a64271f3ee0d3b8c11b) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -28,6 +28,7 @@ import java.util.Set; import java.util.SortedSet; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.rating.ToolRatingManager; import org.lamsfoundation.lams.tool.IToolVO; @@ -43,7 +44,6 @@ import org.lamsfoundation.lams.tool.qa.QaWizardCategory; import org.lamsfoundation.lams.tool.qa.dto.QaQuestionDTO; import org.lamsfoundation.lams.tool.qa.util.QaApplicationException; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * This interface define the contract that all Q/A service provider must follow. @@ -225,7 +225,7 @@ * Get the LAMS audit service. Needed as the web layer controls the staff updating of an answer, so the log entry * must be made by the web layer. */ - IAuditService getAuditService(); + ILogEventService getLogEventService(); void updateEntry(NotebookEntry notebookEntry); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaService.java (.../QaService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaService.java (.../QaService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -49,6 +49,7 @@ 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; @@ -91,7 +92,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; @@ -116,7 +116,7 @@ private IUserManagementService userManagementService; private ILamsToolService toolService; private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private IExportToolContentService exportContentService; private QaOutputFactory qaOutputFactory; private IQaConfigItemDAO qaConfigItemDAO; @@ -382,8 +382,12 @@ @Override public void removeUserResponse(QaUsrResp resp) { - auditService.logChange(QaAppConstants.MY_SIGNATURE, resp.getQaQueUser().getQueUsrId(), - resp.getQaQueUser().getUsername(), resp.getAnswer(), null); + Long toolContentId = null; + if (resp.getQaQuestion() != null && resp.getQaQuestion().getQaContent() != null) { + toolContentId = resp.getQaQuestion().getQaContent().getQaContentId(); + } + logEventService.logChangeLearnerContent(resp.getQaQueUser().getQueUsrId(), resp.getQaQueUser().getUsername(), + toolContentId, resp.getAnswer(), null); qaUsrRespDAO.removeUserResponse(resp); } @@ -399,10 +403,14 @@ userId = response.getQaQueUser().getQueUsrId(); loginName = response.getQaQueUser().getUsername(); } + Long toolContentId = null; + if (response.getQaQuestion() != null && response.getQaQuestion().getQaContent() != null) { + toolContentId = response.getQaQuestion().getQaContent().getQaContentId(); + } if (isHideItem) { - auditService.logHideEntry(QaAppConstants.MY_SIGNATURE, userId, loginName, response.getAnswer()); + logEventService.logHideLearnerContent(userId, loginName, toolContentId, response.getAnswer()); } else { - auditService.logShowEntry(QaAppConstants.MY_SIGNATURE, userId, loginName, response.getAnswer()); + logEventService.logShowLearnerContent(userId, loginName, toolContentId, response.getAnswer()); } response.setVisible(!isHideItem); updateUserResponse(response); @@ -1046,12 +1054,12 @@ } @Override - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public IExportToolContentService getExportContentService() { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/action/QaMonitoringAction.java =================================================================== diff -u -r51f3b0856ffbb784386faf0ccb30a75bff8a98b5 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/action/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 51f3b0856ffbb784386faf0ccb30a75bff8a98b5) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/action/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -90,8 +90,12 @@ * write out the audit log entry. If you move this after the update of the response, then make sure you update * the audit call to use a copy of the original answer */ - qaService.getAuditService().logChange(QaAppConstants.MY_SIGNATURE, qaUsrResp.getQaQueUser().getQueUsrId(), - qaUsrResp.getQaQueUser().getUsername(), qaUsrResp.getAnswer(), updatedResponse); + Long toolContentId = null; + if (qaUsrResp.getQaQuestion() != null && qaUsrResp.getQaQuestion().getQaContent() != null) { + toolContentId = qaUsrResp.getQaQuestion().getQaContent().getQaContentId(); + } + qaService.getLogEventService().logChangeLearnerContent(qaUsrResp.getQaQueUser().getQueUsrId(), + qaUsrResp.getQaQueUser().getUsername(), toolContentId, qaUsrResp.getAnswer(), updatedResponse); qaUsrResp.setAnswer(updatedResponse); qaService.updateUserResponse(qaUsrResp); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java (.../ResourceItem.java) (revision 1bf70a335f5b30a1907ccae506908b05374c6c8c) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.java (.../ResourceItem.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.Set; +import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; import org.lamsfoundation.lams.rating.dto.ItemRatingDTO; @@ -386,5 +387,9 @@ this.allowComments = allowComments; } + @Override + public String toString() { + return new ToStringBuilder(this).append("uid", uid).append(" type", type).append(" title", title).toString(); + } } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== diff -u -r942b2a5bf6dac160bf9e00bac22e6232ae65ef98 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 942b2a5bf6dac160bf9e00bac22e6232ae65ef98) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -214,7 +214,7 @@ * @param visible * true, item is visible. False, item is invisible. */ - void setItemVisible(Long itemUid, boolean visible); + void setItemVisible(Long itemUid, Long sessionId, boolean visible); /** * Create refection entry into notebook tool. Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 1bf70a335f5b30a1907ccae506908b05374c6c8c) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -65,6 +65,7 @@ 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; @@ -111,7 +112,6 @@ import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.zipfile.ZipFileUtil; import org.lamsfoundation.lams.util.zipfile.ZipFileUtilException; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -144,7 +144,7 @@ private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private IUserManagementService userManagementService; @@ -553,7 +553,7 @@ } @Override - public void setItemVisible(Long itemUid, boolean visible) { + public void setItemVisible(Long itemUid, Long sessionId, boolean visible) { ResourceItem item = resourceItemDao.getByUid(itemUid); if (item != null) { // createBy should be null for system default value. @@ -563,10 +563,17 @@ userId = item.getCreateBy().getUserId(); loginName = item.getCreateBy().getLoginName(); } + Long toolContentId = null; + ResourceSession session = resourceSessionDao.getSessionBySessionId(sessionId); + if (session != null) { + toolContentId = session.getResource().getContentId(); + } else { + ResourceServiceImpl.log.error("setItemVisible: Failed get ResourceSession by ID [" + sessionId + "]. Audit log entry will be created but will be missing tool content id"); + } if (visible) { - auditService.logShowEntry(ResourceConstants.TOOL_SIGNATURE, userId, loginName, item.toString()); + logEventService.logShowLearnerContent(userId, loginName, toolContentId, item.toString()); } else { - auditService.logHideEntry(ResourceConstants.TOOL_SIGNATURE, userId, loginName, item.toString()); + logEventService.logHideLearnerContent(userId, loginName, toolContentId, item.toString()); } item.setHide(!visible); resourceItemDao.saveObject(item); @@ -1136,8 +1143,8 @@ // ***************************************************************************** // set methods for Spring Bean // ***************************************************************************** - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setLearnerService(ILearnerService learnerService) { Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java =================================================================== diff -u -rd383fad17aadef12e0382c9067713b4180b6a0d4 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (.../LearningAction.java) (revision d383fad17aadef12e0382c9067713b4180b6a0d4) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (.../LearningAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -708,11 +708,17 @@ HttpSession ss = SessionManager.getSession(); UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); Long itemUid = WebUtil.readLongParam(request, ResourceConstants.PARAM_RESOURCE_ITEM_UID); + + // get back sessionMap + String sessionMapID = request.getParameter(ResourceConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + Long sessionId = (Long) sessionMap.get(ResourceConstants.ATTR_TOOL_SESSION_ID); + IResourceService service = getResourceService(); ResourceItem resourceItem = service.getResourceItemByUid(itemUid); if (!resourceItem.isCreateByAuthor() && user.getUserID().longValue() == resourceItem.getCreateBy().getUserId()) { - service.setItemVisible(itemUid, false); + service.setItemVisible(itemUid, sessionId, false); //open session Map } else { response.sendError(HttpServletResponse.SC_FORBIDDEN, "You are not allowed to hide this item"); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 1bf70a335f5b30a1907ccae506908b05374c6c8c) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -214,8 +214,9 @@ HttpServletResponse response) { Long itemUid = WebUtil.readLongParam(request, ResourceConstants.PARAM_RESOURCE_ITEM_UID); boolean isHideItem = WebUtil.readBooleanParam(request, ResourceConstants.PARAM_IS_HIDE_ITEM); + Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); IResourceService service = getResourceService(); - service.setItemVisible(itemUid, !isHideItem); + service.setItemVisible(itemUid, sessionId, !isHideItem); return null; } Index: lams_tool_larsrc/web/pages/monitoring/summary.jsp =================================================================== diff -u -r1bf70a335f5b30a1907ccae506908b05374c6c8c -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_larsrc/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 1bf70a335f5b30a1907ccae506908b05374c6c8c) +++ lams_tool_larsrc/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -130,10 +130,10 @@ - + - + @@ -215,23 +215,23 @@ return definePortraitPopover(rowObject[5], rowObject[0], rowObject[1]); } - function changeItemVisibility(linkObject, itemUid, isHideItem) { + function changeItemVisibility(linkObject, itemUid, toolSessionId, isHideItem) { ?sessionMapID=${sessionMapID}&itemUid=${item.itemUid}' class='button'> $.ajax({ url: '', - data: 'sessionMapID=${sessionMapID}&itemUid=' + itemUid + '&isHideItem=' + isHideItem, + data: 'sessionMapID=${sessionMapID}&toolSessionID='+toolSessionId+'&itemUid=' + itemUid + '&isHideItem=' + isHideItem, type: 'post', success: function () { if (isHideItem) { linkObject.innerHTML = '' ; linkObject.onclick = function (){ - changeItemVisibility(this, itemUid, false); + changeItemVisibility(this, itemUid, toolSessionId, false); return false; } } else { linkObject.innerHTML = '' ; linkObject.onclick = function (){ - changeItemVisibility(this, itemUid, true); + changeItemVisibility(this, itemUid, toolSessionId, true); return false; } } Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -41,6 +41,7 @@ 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; @@ -77,7 +78,6 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider; @@ -101,7 +101,7 @@ private ILearnerService learnerService; private ILamsToolService toolService; private IToolContentHandler mindmapToolContentHandler = null; - private IAuditService auditService = null; + private ILogEventService logEventService = null; private IExportToolContentService exportContentService; private ICoreNotebookService coreNotebookService; private MindmapOutputFactory mindmapOutputFactory; @@ -777,12 +777,12 @@ return mindmapUser; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } // ========================================================================================= Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java (.../NotebookService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java (.../NotebookService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -42,6 +42,7 @@ 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; @@ -71,7 +72,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; /** * An implementation of the INotebookService interface. @@ -95,7 +95,7 @@ private IToolContentHandler notebookToolContentHandler = null; - private IAuditService auditService = null; + private ILogEventService logEventService = null; private IExportToolContentService exportContentService; @@ -566,12 +566,12 @@ this.exportContentService = exportContentService; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public IUserManagementService getUserManagementService() { Index: lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/service/PixlrService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/service/PixlrService.java (.../PixlrService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/service/PixlrService.java (.../PixlrService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -38,6 +38,7 @@ 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; @@ -66,7 +67,6 @@ import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.FileUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * An implementation of the IPixlrService interface. @@ -92,7 +92,7 @@ private IToolContentHandler pixlrToolContentHandler = null; - private IAuditService auditService = null; + private ILogEventService logEventService = null; private IExportToolContentService exportContentService; @@ -577,12 +577,12 @@ return pixlrUser; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } @Override Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== diff -u -r160dbb3543d48c28016c41a003d265b1195cad47 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 160dbb3543d48c28016c41a003d265b1195cad47) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -67,6 +67,7 @@ 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; @@ -103,7 +104,6 @@ import org.lamsfoundation.lams.usermanagement.util.LastNameAlphabeticComparator; import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.springframework.dao.DataAccessException; /** @@ -144,7 +144,7 @@ private IGradebookService gradebookService; - private IAuditService auditService; + private ILogEventService logEventService; private SubmitFilesOutputFactory submitFilesOutputFactory; @@ -848,17 +848,21 @@ private void auditRemoveRestore(UserDTO monitor, SubmissionDetails detail, String i18nKey) { SubmitUser learner = detail.getLearner(); - StringBuilder instructorTxt = new StringBuilder(monitor.getLogin()).append(" (").append(monitor.getUserID()).append(") ") - .append(monitor.getFirstName()).append(" ").append(monitor.getLastName()); - StringBuilder learnerTxt = new StringBuilder(learner.getLogin()).append(" (").append(learner.getUserID()).append(") ") - .append(learner.getFirstName()).append(" ").append(learner.getLastName()); + StringBuilder instructorTxt = new StringBuilder(monitor.getLogin()).append(" (").append(monitor.getUserID()) + .append(") "); + StringBuilder learnerTxt = new StringBuilder(learner.getLogin()).append(" (").append(learner.getUserID()) + .append(") "); - String auditMsg = getLocalisedMessage(i18nKey, new Object[] { instructorTxt.toString(), detail.getFilePath(), - learnerTxt.toString() }); - auditService.log(SbmtConstants.AUDIT_LOG_MODULE_NAME, auditMsg); + String auditMsg = getLocalisedMessage(i18nKey, + new Object[] { instructorTxt.toString(), detail.getFilePath(), learnerTxt.toString() }); + Long toolContentId = null; + if (detail.getSubmitFileSession() != null && detail.getSubmitFileSession().getContent() != null) { + toolContentId = detail.getSubmitFileSession().getContent().getContentID(); + } + logEventService.logChangeLearnerArbitraryChange(learner.getUserID().longValue(), learner.getLogin(), + toolContentId, auditMsg); } - @Override public IVersionedNode downloadFile(Long uuid, Long versionID) throws SubmitFilesException { ITicket ticket = getRepositoryLoginTicket(); @@ -1289,12 +1293,12 @@ this.messageService = messageService; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public void setGradebookService(IGradebookService gradebookService) { Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -re2f4b14e2d8f0ef1feef10abdc21f3d446fca2a5 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision e2f4b14e2d8f0ef1feef10abdc21f3d446fca2a5) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -57,6 +57,7 @@ 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; @@ -100,11 +101,9 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.ExcelCell; -import org.lamsfoundation.lams.util.HashUtil; import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.NumberUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * @author Andrey Balan @@ -148,7 +147,7 @@ private IGradebookService gradebookService; - private IAuditService auditService; + private ILogEventService logEventService; private ICoreNotebookService coreNotebookService; @@ -387,8 +386,12 @@ user.getSession().getSessionId(), false); // record mark change with audit service - auditService.logMarkChange(ScratchieConstants.TOOL_SIGNATURE, user.getUserId(), user.getLoginName(), - "" + oldMark, "" + newMark); + Long toolContentId = null; + if (session.getScratchie() != null) { + toolContentId = session.getScratchie().getContentId(); + } + + logEventService.logMarkChange(user.getUserId(), user.getLoginName(), toolContentId, "" + oldMark, "" + newMark); } } @@ -2144,8 +2147,8 @@ this.gradebookService = gradebookService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } public IUserManagementService getUserManagementService() { Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java =================================================================== diff -u -r64ee69765400783a3e284e7856aa91cdd01f4831 -r045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 64ee69765400783a3e284e7856aa91cdd01f4831) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteService.java (.../VoteService.java) (revision 045ebfd1d11d9ed0a1f81a00abb1a2ea373e8d93) @@ -54,6 +54,7 @@ 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; @@ -100,7 +101,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; @@ -123,7 +123,7 @@ private IUserManagementService userManagementService; private ILearnerService learnerService; - private IAuditService auditService; + private ILogEventService logEventService; private ILamsToolService toolService; private IExportToolContentService exportContentService; @@ -1162,17 +1162,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 @@ -1852,18 +1865,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() {