Index: lams_tool_task/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -258,13 +258,10 @@ type="org.lamsfoundation.lams.tool.taskList.web.action.MonitoringAction" parameter="getPagedUsers" > - - - + parameter="getPagedUsersByItem" > - Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java (.../TaskListConstants.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java (.../TaskListConstants.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -25,7 +25,7 @@ public class TaskListConstants { public static final String TOOL_SIGNATURE = "latask10"; - public static final String RESOURCE_SERVICE = "lataskTaskListService"; + public static final String TASKLIST_SERVICE = "lataskTaskListService"; public static final String TOOL_CONTENT_HANDLER_NAME = "lataskTaskListToolContentHandler"; public static final int COMPLETED = 1; @@ -37,28 +37,22 @@ //for parameters' name public static final String PARAM_TOOL_CONTENT_ID = "toolContentID"; - public static final String PARAM_TOOL_SESSION_ID = "toolSessionID"; - public static final String PARAM_FILE_VERSION_ID = "fileVersionId"; - public static final String PARAM_FILE_UUID = "fileUuid"; + public static final String PARAM_TOOL_SESSION_ID = "toolSessionID"; public static final String PARAM_ITEM_INDEX = "itemIndex"; public static final String PARAM_SEQUENCE_ID = "sequenceId"; - public static final String PARAM_RESOURCE_ITEM_UID = "itemUid"; - public static final String PARAM_CURRENT_INSTRUCTION_INDEX = "insIdx"; - public static final String PARAM_OPEN_URL_POPUP = "popupUrl"; + public static final String PARAM_ITEM_UID = "itemUid"; public static final String PARAM_TITLE = "title"; //for request attribute name public static final String ATTR_TOOL_CONTENT_ID = "toolContentID"; public static final String ATTR_TOOL_SESSION_ID = "toolSessionID"; - public static final String ATTR_RESOURCE_ITEM_LIST = "taskListList"; + public static final String ATTR_TASKLIST_ITEM_LIST = "taskListList"; public static final String ATTR_CONDITION_LIST = "conditionList"; - public static final String ATTR_DELETED_RESOURCE_ITEM_LIST = "deleteTaskListList"; + public static final String ATTR_DELETED_TASKLIST_ITEM_LIST = "deleteTaskListList"; public static final String ATTR_DELETED_CONDITION_LIST = "deleteConditionList"; - public static final String ATT_LEARNING_OBJECT = "cpPackage"; - public static final String ATTR_RESOURCE_REVIEW_URL = "taskListItemReviewUrl"; public static final String ATTR_TASKLIST = "taskList"; public static final String ATTR_RUN_AUTO = "runAuto"; - public static final String ATTR_RESOURCE_ITEM_UID = "itemUid"; + public static final String ATTR_ITEM_UID = "itemUid"; public static final String ATTR_NEXT_ACTIVITY_URL = "nextActivityUrl"; public static final String ATTR_MONITOR_VERIFICATION_REQUIRED = "monitorVerificationRequired"; public static final String ATTR_SESSION_DTOS = "sessionDtos"; @@ -67,9 +61,7 @@ public static final String ATTR_USER_LIST = "userList"; public static final String ATTR_FINISH_LOCK = "finishedLock"; public static final String ATTR_SESSION_MAP_ID = "sessionMapID"; - public static final String ATTR_RESOURCE_FORM = "taskListForm"; - public static final String ATTR_TASKLIST_FORM = "taskListItemForm"; - public static final String ATTR_FILE_TYPE_FLAG = "fileTypeFlag"; + public static final String ATTR_TASKLIST_FORM = "taskListForm"; public static final String ATTR_TITLE = "title"; public static final String ATTR_USER_FINISHED = "userFinished"; public static final String ATTR_USER_VERIFIED_BY_MONITOR = "userVerifiedByMonitor"; @@ -97,7 +89,6 @@ public static final String ERROR_MSG_UPLOAD_FAILED = "error.upload.failed"; public static final String PAGE_EDITABLE = "isPageEditable"; - public static final String MODE_AUTHOR_SESSION = "author_session"; public static final String ATTR_REFLECTION_ON = "reflectOn"; public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions"; public static final String ATTR_REFLECTION_ENTRY = "reflectEntry"; Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListUserDAOHibernate.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListUserDAOHibernate.java (.../TaskListUserDAOHibernate.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dao/hibernate/TaskListUserDAOHibernate.java (.../TaskListUserDAOHibernate.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -23,7 +23,9 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.taskList.dao.hibernate; +import java.sql.Timestamp; import java.util.Collection; +import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; @@ -86,18 +88,13 @@ " WHERE session.session_id = :sessionId " + " AND (CONCAT(user.last_name, ' ', user.first_name) LIKE CONCAT('%', :searchString, '%')) " + - " ORDER BY " + - " CASE " + - " WHEN :sortBy='userName' THEN CONCAT(user.last_name, ' ', user.first_name) " + - " WHEN :sortBy='grade' THEN visitLog.complete " + - " END " + sortOrder; + " ORDER BY CONCAT(user.last_name, ' ', user.first_name) " + sortOrder; SQLQuery query = getSession().createSQLQuery(LOAD_USERS); query.setLong("sessionId", sessionId); // support for custom search from a toolbar searchString = searchString == null ? "" : searchString; query.setString("searchString", searchString); - query.setString("sortBy", sortBy); query.setFirstResult(page * size); query.setMaxResults(size); List list = query.list(); @@ -130,7 +127,7 @@ public Collection getPagedUsersBySessionAndItem(Long sessionId, Long taskListItemUid, int page, int size, String sortBy, String sortOrder, String searchString) { - String LOAD_USERS = "SELECT user.user_id, CONCAT(user.last_name, ' ', user.first_name), visitLog.complete" + + String LOAD_USERS = "SELECT user.user_id, CONCAT(user.last_name, ' ', user.first_name), visitLog.complete, visitLog.access_date" + " FROM tl_latask10_user user" + " INNER JOIN tl_latask10_session session" + " ON user.session_uid=session.uid" + @@ -144,7 +141,8 @@ " ORDER BY " + " CASE " + " WHEN :sortBy='userName' THEN CONCAT(user.last_name, ' ', user.first_name) " + - " WHEN :sortBy='grade' THEN question_result.mark " + + " WHEN :sortBy='completed' THEN visitLog.complete " + + " WHEN :sortBy='accessDate' THEN visitLog.access_date " + " END " + sortOrder; SQLQuery query = getSession().createSQLQuery(LOAD_USERS); @@ -164,12 +162,14 @@ Long userId = ((Number) element[0]).longValue(); String fullName = (String) element[1]; - Integer isCompleted = element[2] == null ? 0 : ((Number) element[2]).intValue(); + boolean isCompleted = element[2] == null ? false : new Boolean(((Byte) element[2]).intValue() == 1); + Date accessDate = element[3] == null ? null : new Date(((Timestamp) element[3]).getTime()); TaskListUserDTO userDto = new TaskListUserDTO(); userDto.setUserId(userId); userDto.setFullName(fullName); - userDto.setCompleted(Boolean.parseBoolean(isCompleted.toString())); + userDto.setCompleted(isCompleted); + userDto.setAccessDate(accessDate);; userDtos.add(userDto); } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/SessionDTO.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/SessionDTO.java (.../SessionDTO.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/SessionDTO.java (.../SessionDTO.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -27,7 +27,7 @@ import java.util.List; import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; -import org.lamsfoundation.lams.tool.taskList.model.TaskListUser; +import org.lamsfoundation.lams.tool.taskList.model.TaskListSession; /** * List contains following element:
@@ -48,7 +48,9 @@ private int[] visitNumbers; - public SessionDTO() { + public SessionDTO(TaskListSession session) { + this.sessionId = session.getSessionId(); + this.sessionName = session.getSessionName(); } /** Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/TaskListUserDTO.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/TaskListUserDTO.java (.../TaskListUserDTO.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/TaskListUserDTO.java (.../TaskListUserDTO.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -1,5 +1,6 @@ package org.lamsfoundation.lams.tool.taskList.dto; +import java.util.Date; import java.util.LinkedHashSet; import java.util.Set; @@ -10,6 +11,8 @@ private Set completedTaskUids = new LinkedHashSet(); private boolean completed; + // item complete date. Used in monitoring summary page + private Date accessDate; public Long getUserId() { return userId; @@ -45,5 +48,12 @@ public void setCompleted(boolean completed) { this.completed = completed; } + + public Date getAccessDate() { + return accessDate; + } + public void setAccessDate(Date accessDate) { + this.accessDate = accessDate; + } } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java (.../ITaskListService.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/ITaskListService.java (.../ITaskListService.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -43,7 +43,6 @@ /** * Interface that defines the contract that all TaskLisk service providers must follow. * - * @author Dapeng.Ni * @author Andrey Balan */ public interface ITaskListService { @@ -239,21 +238,29 @@ * id of a session during which it occured */ void setItemAccess(Long taskListItemUid, Long userId, Long sessionId); + + /** + * Get all available sessions for contentId. + * + * @param contentId + * @return + */ + List getSessionsByContentId(Long contentId); /** * Get taskList toolSession by toolSessionId * * @param sessionId * @return */ - TaskListSession getTaskListSessionBySessionId(Long sessionId); + TaskListSession getSessionBySessionId(Long sessionId); /** * Save or update taskList session. * * @param resSession */ - void saveOrUpdateTaskListSession(TaskListSession resSession); + void saveOrUpdateSession(TaskListSession resSession); /** * If success return next activity's url, otherwise return null. @@ -359,19 +366,6 @@ * @return */ List getSummary(Long contentId); - - /** - * Return task summary for the specified TaskListItem. Used in monitoring. - * - * @param contentId - * toolContenId - * @param taskListItemUid - * specified TaskListItem uid - * @param isExportProcessing - * true if this method called for export, false otherwise - * @return - */ - ItemSummary getItemSummary(Long contentId, Long taskListItemUid, boolean isExportProcessing); NotebookEntry getEntry(Long sessionId, Integer userId); Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -220,14 +220,19 @@ public TaskListItem getTaskListItemByUid(Long itemUid) { return taskListItemDao.getByUid(itemUid); } + + @Override + public List getSessionsByContentId(Long contentId) { + return taskListSessionDao.getByContentId(contentId); + } @Override - public TaskListSession getTaskListSessionBySessionId(Long sessionId) { + public TaskListSession getSessionBySessionId(Long sessionId) { return taskListSessionDao.getSessionBySessionId(sessionId); } @Override - public void saveOrUpdateTaskListSession(TaskListSession resSession) { + public void saveOrUpdateSession(TaskListSession resSession) { taskListSessionDao.saveObject(resSession); } @@ -343,21 +348,27 @@ return summaryList; } - @Override - public ItemSummary getItemSummary(Long contentId, Long taskListItemUid, boolean isExportProcessing) { + /* + * Return task summary for the specified TaskListItem. Used in monitoring. + * + * @param contentId + * toolContenId + * @param item + * specified TaskListItem + * @return + */ + private ItemSummary exportItem(Long contentId, TaskListItem item) { - TaskListItem taskListItem = taskListItemDao.getByUid(taskListItemUid); - ItemSummary itemSummary = new ItemSummary(); - itemSummary.setTaskListItem(taskListItem); + itemSummary.setTaskListItem(item); List groupSummaries = itemSummary.getGroupSummaries(); - // create sessionList depending on if taskListItem created be author or created during learning + // create sessionList depending on if item created be author or created during learning List sessionList = new ArrayList(); - if (taskListItem.isCreateByAuthor()) { + if (item.isCreateByAuthor()) { sessionList = taskListSessionDao.getByContentId(contentId); } else { - TaskListSession userSession = taskListItem.getCreateBy().getSession(); + TaskListSession userSession = item.getCreateBy().getSession(); sessionList.add(userSession); } @@ -373,7 +384,7 @@ TaskListItemVisitLogSummary taskListItemVisitLogSummary = new TaskListItemVisitLogSummary(); taskListItemVisitLogSummary.setUser(user); - TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(taskListItem.getUid(), + TaskListItemVisitLog visitLog = taskListItemVisitDao.getTaskListItemLog(item.getUid(), user.getUserId()); // If TaskListItemVisitLog exists then fill up taskSummaryItem otherwise put false in a completed field if (visitLog != null) { @@ -383,14 +394,14 @@ } // fill up with comments and attachments made by this user - Set itemComments = taskListItem.getComments(); + Set itemComments = item.getComments(); for (TaskListItemComment comment : itemComments) { if (user.getUserId().equals(comment.getCreateBy().getUserId())) { taskListItemVisitLogSummary.getComments().add(comment); } } - Set itemAttachments = taskListItem.getAttachments(); + Set itemAttachments = item.getAttachments(); for (TaskListItemAttachment attachment : itemAttachments) { if (user.getUserId().equals(attachment.getCreateBy().getUserId())) { taskListItemVisitLogSummary.getAttachments().add(attachment); @@ -400,24 +411,19 @@ taskListItemVisitLogSummary.setCompleted(false); } - // if we're doing export then fill up all itemSummaries with reflection information - if (isExportProcessing) { - - NotebookEntry notebookEntry = getEntry(session.getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, - TaskListConstants.TOOL_SIGNATURE, user.getUserId().intValue()); - - ReflectDTO reflectDTO = new ReflectDTO(user); - if (notebookEntry == null) { - reflectDTO.setFinishReflection(false); - reflectDTO.setReflect(null); - } else { - reflectDTO.setFinishReflection(true); - reflectDTO.setReflect(notebookEntry.getEntry()); - } - reflectDTO.setReflectInstructions(session.getTaskList().getReflectInstructions()); - - taskListItemVisitLogSummary.setReflectDTO(reflectDTO); + // fill up all itemSummaries with reflection information + NotebookEntry notebookEntry = getEntry(session.getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, + TaskListConstants.TOOL_SIGNATURE, user.getUserId().intValue()); + ReflectDTO reflectDTO = new ReflectDTO(user); + if (notebookEntry == null) { + reflectDTO.setFinishReflection(false); + reflectDTO.setReflect(null); + } else { + reflectDTO.setFinishReflection(true); + reflectDTO.setReflect(notebookEntry.getEntry()); } + reflectDTO.setReflectInstructions(session.getTaskList().getReflectInstructions()); + taskListItemVisitLogSummary.setReflectDTO(reflectDTO); groupSummary.getTaskListItemVisitLogSummaries().add(taskListItemVisitLogSummary); } @@ -485,7 +491,7 @@ List itemSummaries = new ArrayList(); for (TaskListItem item : itemList) { - itemSummaries.add(getItemSummary(contentId, item.getUid(), true)); + itemSummaries.add(exportItem(contentId, item)); } return itemSummaries; @@ -500,7 +506,7 @@ List itemSummaries = new ArrayList(); for (TaskListItem item : itemList) { - itemSummaries.add(getItemSummary(contentId, item.getUid(), true)); + itemSummaries.add(exportItem(contentId, item)); } // get rid of information that doesn't belong to the current user Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceProxy.java =================================================================== diff -u -rf976c3bd40613835d2b5ac91a1eee6748afbe2c7 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceProxy.java (.../TaskListServiceProxy.java) (revision f976c3bd40613835d2b5ac91a1eee6748afbe2c7) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceProxy.java (.../TaskListServiceProxy.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -62,7 +62,7 @@ private static Object getTaskListDomainService(ServletContext servletContext) { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); - return wac.getBean(TaskListConstants.RESOURCE_SERVICE); + return wac.getBean(TaskListConstants.TASKLIST_SERVICE); } } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java =================================================================== diff -u -r8b97231e320c0c5b674f07c14da711f232ba9e1c -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 8b97231e320c0c5b674f07c14da711f232ba9e1c) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -235,7 +235,7 @@ taskListItemList.clear(); taskListItemList.addAll(items); - sessionMap.put(TaskListConstants.ATTR_RESOURCE_FORM, taskListForm); + sessionMap.put(TaskListConstants.ATTR_TASKLIST_FORM, taskListForm); request.getSession().setAttribute(AttributeNames.PARAM_NOTIFY_CLOSE_URL, request.getParameter(AttributeNames.PARAM_NOTIFY_CLOSE_URL)); return mapping.findForward(TaskListConstants.SUCCESS); @@ -255,7 +255,7 @@ HttpServletResponse response) throws ServletException { String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_RESOURCE_FORM); + TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_TASKLIST_FORM); TaskListForm taskListForm = (TaskListForm) form; try { @@ -619,7 +619,7 @@ private ITaskListService getTaskListService() { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet() .getServletContext()); - return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE); + return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE); } /** @@ -630,10 +630,10 @@ */ private SortedSet getTaskListItemList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap - .get(TaskListConstants.ATTR_RESOURCE_ITEM_LIST); + .get(TaskListConstants.ATTR_TASKLIST_ITEM_LIST); if (list == null) { list = new TreeSet(new TaskListItemComparator()); - sessionMap.put(TaskListConstants.ATTR_RESOURCE_ITEM_LIST, list); + sessionMap.put(TaskListConstants.ATTR_TASKLIST_ITEM_LIST, list); } return list; } @@ -671,7 +671,7 @@ * @return */ private List getDeletedTaskListItemList(SessionMap sessionMap) { - return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_RESOURCE_ITEM_LIST); + return getListFromSession(sessionMap, TaskListConstants.ATTR_DELETED_TASKLIST_ITEM_LIST); } /** Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java =================================================================== diff -u -rc80f5cfa126621b04cfe9254bc9fc6f1b487a288 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java (.../AuthoringTaskListConditionAction.java) (revision c80f5cfa126621b04cfe9254bc9fc6f1b487a288) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java (.../AuthoringTaskListConditionAction.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -114,7 +114,7 @@ HttpServletResponse response) throws ServletException { String sessionMapID = WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_RESOURCE_FORM); + TaskListForm existForm = (TaskListForm) sessionMap.get(TaskListConstants.ATTR_TASKLIST_FORM); TaskListForm taskListForm = (TaskListForm) form; try { @@ -328,7 +328,7 @@ private ITaskListService getTaskListService() { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet() .getServletContext()); - return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE); + return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE); } /** @@ -355,10 +355,10 @@ */ private SortedSet getTaskListItemList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap - .get(TaskListConstants.ATTR_RESOURCE_ITEM_LIST); + .get(TaskListConstants.ATTR_TASKLIST_ITEM_LIST); if (list == null) { list = new TreeSet(new TaskListItemComparator()); - sessionMap.put(TaskListConstants.ATTR_RESOURCE_ITEM_LIST, list); + sessionMap.put(TaskListConstants.ATTR_TASKLIST_ITEM_LIST, list); } return list; } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -399,7 +399,7 @@ // auto run mode, when use finish the only one taskList item, mark it as complete then finish this activity as // well. - String taskListItemUid = request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID); + String taskListItemUid = request.getParameter(TaskListConstants.PARAM_ITEM_UID); if (taskListItemUid != null) { doComplete(request); // NOTE:So far this flag is useless(31/08/2006). @@ -533,7 +533,7 @@ comment.setCreateDate(new Timestamp(new Date().getTime())); // persist TaskListItem changes in DB - Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID)); + Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_ITEM_UID)); TaskListItem dbItem = service.getTaskListItemByUid(itemUid); Set dbComments = dbItem.getComments(); dbComments.add(comment); @@ -589,7 +589,7 @@ TaskListItemAttachment att = service.uploadTaskListItemFile(file, taskListUser); // persist TaskListItem changes in DB - Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID)); + Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_ITEM_UID)); TaskListItem dbItem = service.getTaskListItemByUid(itemUid); Set dbAttachments = dbItem.getAttachments(); dbAttachments.add(att); @@ -690,7 +690,7 @@ private ITaskListService getTaskListService() { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet() .getServletContext()); - return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE); + return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE); } private TaskListUser getCurrentUser(ITaskListService service, Long sessionId) { @@ -701,7 +701,7 @@ TaskListUser taskListUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()), sessionId); if (taskListUser == null) { - TaskListSession session = service.getTaskListSessionBySessionId(sessionId); + TaskListSession session = service.getSessionBySessionId(sessionId); taskListUser = new TaskListUser(user, session); service.createUser(taskListUser); } @@ -764,7 +764,7 @@ String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - Long taskListItemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID)); + Long taskListItemUid = new Long(request.getParameter(TaskListConstants.PARAM_ITEM_UID)); ITaskListService service = getTaskListService(); HttpSession ss = SessionManager.getSession(); // get back login user DTO Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -26,6 +26,9 @@ import java.io.IOException; import java.io.PrintWriter; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; @@ -47,12 +50,14 @@ import org.apache.tomcat.util.json.JSONException; import org.apache.tomcat.util.json.JSONObject; import org.lamsfoundation.lams.tool.taskList.TaskListConstants; -import org.lamsfoundation.lams.tool.taskList.dto.ItemSummary; import org.lamsfoundation.lams.tool.taskList.dto.ReflectDTO; import org.lamsfoundation.lams.tool.taskList.dto.SessionDTO; import org.lamsfoundation.lams.tool.taskList.dto.TaskListUserDTO; import org.lamsfoundation.lams.tool.taskList.model.TaskList; import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; +import org.lamsfoundation.lams.tool.taskList.model.TaskListItemAttachment; +import org.lamsfoundation.lams.tool.taskList.model.TaskListItemComment; +import org.lamsfoundation.lams.tool.taskList.model.TaskListSession; import org.lamsfoundation.lams.tool.taskList.model.TaskListUser; import org.lamsfoundation.lams.tool.taskList.service.ITaskListService; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -68,6 +73,8 @@ public class MonitoringAction extends Action { public static Logger log = Logger.getLogger(MonitoringAction.class); + private static String TOOL_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + + TaskListConstants.TOOL_SIGNATURE + "/"; public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, JSONException { @@ -88,7 +95,6 @@ if (param.equals("setVerifiedByMonitor")) { return setVerifiedByMonitor(mapping, form, request, response); } - if (param.equals("setSubmissionDeadline")) { return setSubmissionDeadline(mapping, form, request, response); } @@ -121,6 +127,7 @@ sessionMap.put(TaskListConstants.ATTR_TOOL_CONTENT_ID, contentId); sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID)); + sessionMap.put(TaskListConstants.ATTR_IS_GROUPED_ACTIVITY, service.isGroupedActivity(contentId)); if (taskList.getSubmissionDeadline() != null) { Date submissionDeadline = taskList.getSubmissionDeadline(); @@ -144,13 +151,34 @@ private ActionForward itemSummary(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ITaskListService service = getTaskListService(); + String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession() + .getAttribute(sessionMapID); + request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMapID); Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); - Long taskListItemId = WebUtil.readLongParam(request, TaskListConstants.ATTR_TASK_LIST_ITEM_UID); - ItemSummary ItemSummary = service.getItemSummary(contentId, taskListItemId, false); + Long itemUid = WebUtil.readLongParam(request, TaskListConstants.PARAM_ITEM_UID); + + TaskListItem item = service.getTaskListItemByUid(itemUid); + + // create sessionList depending on whether the item was created by author or by learner + List sessionDtos = new ArrayList(); + if (item.isCreateByAuthor()) { + List sessionList = service.getSessionsByContentId(contentId); + for (TaskListSession session : sessionList) { + SessionDTO sessionDto = new SessionDTO(session); + sessionDtos.add(sessionDto); + } + + } else { + TaskListSession userSession = item.getCreateBy().getSession(); + SessionDTO sessionDto = new SessionDTO(userSession); + sessionDtos.add(sessionDto); + } - request.setAttribute(TaskListConstants.ATTR_ITEM_SUMMARY, ItemSummary); - request.setAttribute(TaskListConstants.ATTR_IS_GROUPED_ACTIVITY, service.isGroupedActivity(contentId)); + request.setAttribute(TaskListConstants.ATTR_SESSION_DTOS, sessionDtos); + request.setAttribute(TaskListConstants.ATTR_TASK_LIST_ITEM, item); + return mapping.findForward(TaskListConstants.SUCCESS); } @@ -160,7 +188,6 @@ public ActionForward getPagedUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException, JSONException { ITaskListService service = getTaskListService(); - String serverUrl = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/" + TaskListConstants.TOOL_SIGNATURE + "/"; String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession() @@ -203,23 +230,22 @@ JSONArray userData = new JSONArray(); userData.put(userDto.getUserId()); -// userData.put(sessionId); String fullName = StringEscapeUtils.escapeHtml(userDto.getFullName()); userData.put(fullName); Set completedTaskUids = userDto.getCompletedTaskUids(); for (TaskListItem item : items) { String completionImage = completedTaskUids.contains(item.getUid()) - ? "" - : ""; + ? "" + : ""; userData.put(completionImage); } if (tasklist.isMonitorVerificationRequired()) { String label = StringEscapeUtils.escapeHtml(service.getMessage("label.confirm")); String verificationStatus = userDto.isVerifiedByMonitor() - ? "" + ? "" : "" + label + ""; @@ -251,12 +277,8 @@ HttpServletResponse res) throws IOException, ServletException, JSONException { ITaskListService service = getTaskListService(); - String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession() - .getAttribute(sessionMapID); - TaskList tasklist = (TaskList) sessionMap.get(TaskListConstants.ATTR_TASKLIST); Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); - Long questionUid = WebUtil.readLongParam(request, "questionUid"); + Long itemUid = WebUtil.readLongParam(request, TaskListConstants.PARAM_ITEM_UID); // Getting the params passed in from the jqGrid int page = WebUtil.readIntParam(request, AttributeNames.PARAM_PAGE); @@ -269,46 +291,104 @@ String searchString = WebUtil.readStrParam(request, "userName", true); // Get the user list from the db - Collection userDtos = service.getPagedUsersBySessionAndItem(sessionId, questionUid, page - 1, + Collection userDtos = service.getPagedUsersBySessionAndItem(sessionId, itemUid, page - 1, rowLimit, sortBy, sortOrder, searchString); int countSessionUsers = service.getCountPagedUsersBySession(sessionId, searchString); int totalPages = new Double( Math.ceil(new Integer(countSessionUsers).doubleValue() / new Integer(rowLimit).doubleValue())) .intValue(); + + //date formatters + DateFormat dateFormatter = new SimpleDateFormat("d-MMM-yyyy h:mm a"); + HttpSession ss = SessionManager.getSession(); + UserDTO monitorDto = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone monitorTimeZone = monitorDto.getTimeZone(); + + //get all comments and attachments + TaskListItem item = service.getTaskListItemByUid(itemUid); + Set itemComments = item.getComments(); + Set itemAttachments = item.getAttachments(); + String label = StringEscapeUtils.escapeHtml(service.getMessage("label.download")); + int i = 0; JSONArray rows = new JSONArray(); - int i = 1; -// for (TaskListUserDTO userDto : userDtos) { + for (TaskListUserDTO userDto : userDtos) { + + JSONArray userData = new JSONArray(); + String fullName = StringEscapeUtils.escapeHtml(userDto.getFullName()); + userData.put(fullName); + + String completionImage = userDto.isCompleted() + ? "" + : ""; + userData.put(completionImage); + + String accessDate = (userDto.getAccessDate() == null) ? "" : dateFormatter.format(DateUtil + .convertToTimeZoneFromDefault(monitorTimeZone, userDto.getAccessDate())); + userData.put(accessDate); + + // fill up with comments and attachments made by this user + if (item.isCommentsAllowed() || item.isFilesAllowed()) { + String commentsFiles = "
    "; + + ArrayList userComments = new ArrayList(); + for (TaskListItemComment comment : itemComments) { + if (userDto.getUserId().equals(comment.getCreateBy().getUserId())) { + userComments.add(comment.getComment()); + } + } + if (!userComments.isEmpty()) { + commentsFiles += "
  • "; + for (String userComment : userComments) { + commentsFiles += StringEscapeUtils.escapeHtml(userComment); + } + commentsFiles += "
  • "; + } + + ArrayList userAttachments = new ArrayList(); + for (TaskListItemAttachment attachment : itemAttachments) { + if (userDto.getUserId().equals(attachment.getCreateBy().getUserId())) { + userAttachments.add(attachment); + } + } + if (!userAttachments.isEmpty()) { + commentsFiles += "
  • "; + for (TaskListItemAttachment userAttachment : userAttachments) { + commentsFiles += StringEscapeUtils.escapeHtml(userAttachment.getFileName()) + " "; + commentsFiles += "" + label + ""; + } + commentsFiles += "
  • "; + } + + commentsFiles += "
"; + + +// +// +//
  • +// // -// Long questionResultUid = userDto.getQuestionResultUid(); -// String fullName = StringEscapeUtils.escapeHtml(userDto.getFullName()); +// +// +// +// +// +// // -// JSONArray userData = new JSONArray(); -// if (questionResultUid != null) { -// AssessmentQuestionResult questionResult = service.getAssessmentQuestionResultByUid(questionResultUid); -// -// userData.put(questionResultUid); -// userData.put(questionResult.getMaxMark()); -// userData.put(fullName); -// userData.put(AssessmentEscapeUtils.printResponsesForJqgrid(questionResult)); -// userData.put(questionResult.getMark()); -// -// } else { -// userData.put(""); -// userData.put(""); -// userData.put(fullName); -// userData.put("-"); -// userData.put("-"); -// } -// -// JSONObject userRow = new JSONObject(); -// userRow.put("id", i++); -// userRow.put("cell", userData); -// -// rows.put(userRow); -// } +//
  • +//
    + userData.put(commentsFiles); + } + + JSONObject userRow = new JSONObject(); + userRow.put("id", i++); + userRow.put("cell", userData); + rows.put(userRow); + } + JSONObject responseJSON = new JSONObject(); responseJSON.put("total", totalPages); responseJSON.put("page", page); @@ -384,7 +464,7 @@ private ITaskListService getTaskListService() { WebApplicationContext wac = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); - return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE); + return (ITaskListService) wac.getBean(TaskListConstants.TASKLIST_SERVICE); } } Fisheye: Tag b41406c4167c7209080d0690b8836b1b87210ee4 refers to a dead (removed) revision in file `lams_tool_task/web/pages/monitoring/daterestriction.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/pages/monitoring/itemsummary.jsp =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/web/pages/monitoring/itemsummary.jsp (.../itemsummary.jsp) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/web/pages/monitoring/itemsummary.jsp (.../itemsummary.jsp) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -1,162 +1,179 @@ <%@ include file="/common/taglibs.jsp"%> - + + + + - - <fmt:message key="label.learning.title" /> - <%@ include file="/common/header.jsp"%> - + + <fmt:message key="label.learning.title" /> + <%@ include file="/common/header.jsp"%> + + + + + + + + + + + + - -
    + +
    -

    - -

    +

    + +

    -
    - +
    + - - () - -
    -
    + + () + +
    +
    - -
      - -
    • - (: ${item.parentTaskName}) -
    • + +
        + +
      • + (: ${item.parentTaskName}) +
      • - + +
      • + +
      • +
        + + +
        • - +
        • - +
        +
        - -
          -
        • - -
        • -
        -
        - - + +
      • + +
      • +
        + + +
        • - +
        • - - - -
            -
          • - -
          • -
          -
          -
        -
        -
        -
        +
      +
      +
    +
    +
    +
    - - + + +
    + +
    + ${sessionDto.sessionName} +
    +
    +

    ${groupSummary.sessionName}

    - - - - - - - - - - - - - - - +
    - - - ? - - - - -
    - -
    +
    +
    - - - - - - - - - - - - - - - - - - - -
      - -
    • - -
    • -
      - - -
    • - + + +
    + - - - - - - + + - - - - - - - - - - - -
    - - - - - - +
    Index: lams_tool_task/web/pages/monitoring/parts/daterestriction.jsp =================================================================== diff -u --- lams_tool_task/web/pages/monitoring/parts/daterestriction.jsp (revision 0) +++ lams_tool_task/web/pages/monitoring/parts/daterestriction.jsp (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -0,0 +1,43 @@ +<%@include file="/common/taglibs.jsp"%> + +

    + + + + + +

    +
    + + \ No newline at end of file Fisheye: Tag b41406c4167c7209080d0690b8836b1b87210ee4 refers to a dead (removed) revision in file `lams_tool_task/web/pages/monitoring/parts/notebook.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/pages/monitoring/summary.jsp =================================================================== diff -u -r091abac9dddc7312350403cbd0fec84bd38380c8 -rb41406c4167c7209080d0690b8836b1b87210ee4 --- lams_tool_task/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 091abac9dddc7312350403cbd0fec84bd38380c8) +++ lams_tool_task/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision b41406c4167c7209080d0690b8836b1b87210ee4) @@ -2,10 +2,10 @@ - - + +