Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java =================================================================== diff -u -rdd67faab130f90be03ee1067cfecbdc550f8342b -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision dd67faab130f90be03ee1067cfecbdc550f8342b) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -264,6 +264,7 @@ public static final String LIST_GROUPING_DATA = "listGroupingData"; public static final String LEARNER_NAME = "learnerName"; public static final String LIST_MONITORED_MARKS_CONTAINER_DTO = "listMonitoredMarksContainerDto"; + public static final String SESSION_DTOS = "sessionDtos"; public static final String TIMEZONE = "timeZone"; public static final String QUESTION_LISTING_MODE = "questionListingMode"; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java =================================================================== diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java (.../McOptionDTO.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptionDTO.java (.../McOptionDTO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -22,7 +22,6 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.mc; -import org.apache.commons.lang.builder.ToStringBuilder; import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; /** Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java =================================================================== diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java (.../McQuestionDTO.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQuestionDTO.java (.../McQuestionDTO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -25,8 +25,6 @@ import java.util.List; -import org.apache.commons.lang.builder.ToStringBuilder; - /** * DTO that holds users attempt history data for jsp purposes * Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java =================================================================== diff -u -r4ec3dc2b1fbb913b43418958d45d5eb34842e933 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java (.../McUtils.java) (revision 4ec3dc2b1fbb913b43418958d45d5eb34842e933) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McUtils.java (.../McUtils.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -24,10 +24,7 @@ import javax.servlet.http.HttpServletRequest; -import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.web.McAuthoringForm; -import org.lamsfoundation.lams.web.util.SessionMap; /** * Common MCQ utility functions live here. @@ -67,6 +64,7 @@ request.getSession().removeAttribute(MAP_QUESTIONS_CONTENT); request.getSession().removeAttribute(IS_REMOVE_CONTENT); request.getSession().removeAttribute(IS_REVISITING_USER); + request.getSession().removeAttribute(USER); request.getSession().removeAttribute(TOOL_CONTENT_UID); request.getSession().removeAttribute(TOOL_SESSION_ID); request.getSession().removeAttribute(USER_ID); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java =================================================================== diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (.../IMcUserDAO.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (.../IMcUserDAO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -22,6 +22,9 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.mc.dao; +import java.util.List; + +import org.lamsfoundation.lams.tool.mc.McUserMarkDTO; import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; /** @@ -42,11 +45,11 @@ * an identifier for the McQueUsr. * @return the persistent instance of a McQueUsr or null if not found */ - public McQueUsr getMcUserByUID(Long uid); + McQueUsr getMcUserByUID(Long uid); - public McQueUsr getMcUserBySession(Long userId, Long sessionUid); + McQueUsr getMcUserBySession(Long userId, Long sessionUid); - public void saveMcUser(McQueUsr mcUser); + void saveMcUser(McQueUsr mcUser); /** *

@@ -56,7 +59,7 @@ * @param nbUser * The instance of McQueUsr to persist. */ - public void updateMcUser(McQueUsr mcUser); + void updateMcUser(McQueUsr mcUser); /** *

@@ -66,8 +69,13 @@ * @param nbUser * The instance of McQueUsr to delete. */ - public void removeMcUser(McQueUsr mcUser); + void removeMcUser(McQueUsr mcUser); /** Get the max, min and average mark (in that order) for a session */ - public Integer[] getMarkStatisticsForSession(Long sessionUid); + Integer[] getMarkStatisticsForSession(Long sessionUid); + + List getPagedUsersBySession(Long sessionId, int page, int size, String sortBy, String sortOrder, + String searchString); + + int getCountPagedUsersBySession(Long sessionId, String searchString); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java =================================================================== diff -u -r961f7b9e1f0d4e83ac360e6625dcc6248b9d936b -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (.../McUserDAO.java) (revision 961f7b9e1f0d4e83ac360e6625dcc6248b9d936b) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (.../McUserDAO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -22,9 +22,12 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.mc.dao.hibernate; +import java.util.ArrayList; import java.util.List; import org.hibernate.FlushMode; +import org.hibernate.Query; +import org.lamsfoundation.lams.tool.mc.McUserMarkDTO; import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO; import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; @@ -92,4 +95,69 @@ } + public List getPagedUsersBySession(Long sessionId, int page, int size, String sortBy, + String sortOrder, String searchString) { + + + final String LOAD_USERS = "SELECT DISTINCT user.uid, user.fullname, user.lastAttemptTotalMark " + + "FROM "+ McQueUsr.class.getName() + " user " + + "WHERE user.mcSession.mcSessionId = :sessionId " + + " AND (user.fullname LIKE CONCAT('%', :searchString, '%')) " + + " ORDER BY " + + " CASE " + + " WHEN :sortBy='userName' THEN user.fullname " + + " WHEN :sortBy='total' THEN user.lastAttemptTotalMark " + + " END " + sortOrder; + + Query query = getSession().createQuery(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(); + + ArrayList userDtos = new ArrayList(); + if (list != null && list.size() > 0) { + for (Object[] element : list) { + + Long userId = ((Number) element[0]).longValue(); + String fullName = (String) element[1]; + Integer totalMark = element[2] == null ? 0 : ((Number) element[2]).intValue(); + + McUserMarkDTO userDto = new McUserMarkDTO(); + userDto.setQueUsrId(userId.toString()); + userDto.setFullName(fullName); + userDto.setTotalMark(new Long(totalMark)); + userDtos.add(userDto); + } + + } + + return userDtos; + } + + @Override + public int getCountPagedUsersBySession(Long sessionId, String searchString) { + + String LOAD_USERS_ORDERED_BY_NAME = "SELECT COUNT(*) FROM " + McQueUsr.class.getName() + " user" + + " WHERE user.mcSession.mcSessionId = :sessionId " + + " AND (user.fullname LIKE CONCAT('%', :searchString, '%')) "; + + Query query = getSession().createQuery(LOAD_USERS_ORDERED_BY_NAME); + query.setLong("sessionId", sessionId); + // support for custom search from a toolbar + searchString = searchString == null ? "" : searchString; + query.setString("searchString", searchString); + List list = query.list(); + + if ((list == null) || (list.size() == 0)) { + return 0; + } else { + return ((Number) list.get(0)).intValue(); + } + } + } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/SessionDTO.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/SessionDTO.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/SessionDTO.java (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -0,0 +1,26 @@ +package org.lamsfoundation.lams.tool.mc.dto; + +public class SessionDTO { + + private Long sessionId; + private String sessionName; + + public SessionDTO () { + } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } + + public String getSessionName() { + return sessionName; + } + + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java =================================================================== diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java (.../McContent.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java (.../McContent.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -30,9 +30,6 @@ import java.util.TreeSet; import org.apache.commons.lang.builder.ToStringBuilder; -import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; -import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; -import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; /** *

Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== diff -u -r708bd4d049ae0a59d70c964ef2f864d2b7a352e6 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision 708bd4d049ae0a59d70c964ef2f864d2b7a352e6) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -30,13 +30,13 @@ import org.lamsfoundation.lams.tool.IToolVO; import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; import org.lamsfoundation.lams.tool.exception.DataMissingException; -import org.lamsfoundation.lams.tool.exception.SessionDataExistsException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.mc.McApplicationException; -import org.lamsfoundation.lams.tool.mc.McOptionDTO; import org.lamsfoundation.lams.tool.mc.McLearnerAnswersDTO; +import org.lamsfoundation.lams.tool.mc.McOptionDTO; import org.lamsfoundation.lams.tool.mc.McQuestionDTO; import org.lamsfoundation.lams.tool.mc.McSessionMarkDTO; +import org.lamsfoundation.lams.tool.mc.McUserMarkDTO; import org.lamsfoundation.lams.tool.mc.ReflectionDTO; import org.lamsfoundation.lams.tool.mc.pojos.McContent; import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; @@ -106,7 +106,14 @@ McQueContent getQuestionByUid(Long uid); McQueUsr getMcUserByUID(Long uid) throws McApplicationException; + + List getPagedUsersBySession(Long sessionId, int page, int size, String sortBy, String sortOrder, + String searchString); + int getCountPagedUsersBySession(Long sessionId, String searchString); + + String getLocalizedMessage(String key); + List getQuestionsByContentUid(final Long mcContentId) throws McApplicationException; McSession getMcSessionById(Long mcSessionId) throws McApplicationException; @@ -175,7 +182,7 @@ List buildLearnerAnswersDTOList(McContent mcContent, McQueUsr user); /** - * Returns userMarksDtos grouped by sessions. + * Returns userMarksDtos grouped by sessions. Used *only* for export portfolio. * * @param mcContent * @param isFullAttemptDetailsRequired Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== diff -u -r3a8db4d285f139b561793d47320c27274213d58e -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 3a8db4d285f139b561793d47320c27274213d58e) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -416,8 +416,24 @@ "Exception occured when lams is getting the mc QueUsr by uid." + e.getMessage(), e); } } + + @Override + public List getPagedUsersBySession(Long sessionId, int page, int size, String sortBy, String sortOrder, + String searchString) { + return mcUserDAO.getPagedUsersBySession(sessionId, page, size, sortBy, sortOrder, searchString); + } @Override + public int getCountPagedUsersBySession(Long sessionId, String searchString) { + return mcUserDAO.getCountPagedUsersBySession(sessionId, searchString); + } + + @Override + public String getLocalizedMessage(String key) { + return messageService.getMessage(key); + } + + @Override public void saveUserAttempt(McQueUsr user, List selectedQuestionAndCandidateAnswersDTO) { Date attemptTime = new Date(System.currentTimeMillis()); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java =================================================================== diff -u -r1a02559e19419af9991eaeb9363f809355b39bc7 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java (.../AuthoringUtil.java) (revision 1a02559e19419af9991eaeb9363f809355b39bc7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java (.../AuthoringUtil.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -23,7 +23,6 @@ package org.lamsfoundation.lams.tool.mc.web; import java.util.Date; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -45,7 +44,6 @@ import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; -import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== diff -u -r1a02559e19419af9991eaeb9363f809355b39bc7 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision 1a02559e19419af9991eaeb9363f809355b39bc7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -31,8 +31,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeMap; -import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -53,15 +51,12 @@ import org.lamsfoundation.lams.questions.QuestionParser; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.mc.McAppConstants; -import org.lamsfoundation.lams.tool.mc.McComparator; -import org.lamsfoundation.lams.tool.mc.McOptionDTO; import org.lamsfoundation.lams.tool.mc.McGeneralAuthoringDTO; +import org.lamsfoundation.lams.tool.mc.McOptionDTO; import org.lamsfoundation.lams.tool.mc.McQuestionDTO; import org.lamsfoundation.lams.tool.mc.McUtils; import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.service.McServiceProxy; import org.lamsfoundation.lams.util.WebUtil; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java =================================================================== diff -u -rdd67faab130f90be03ee1067cfecbdc550f8342b -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java (.../McLearningAction.java) (revision dd67faab130f90be03ee1067cfecbdc550f8342b) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java (.../McLearningAction.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -31,7 +31,6 @@ import java.util.TreeMap; import java.util.regex.Pattern; -import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java =================================================================== diff -u -r1a02559e19419af9991eaeb9363f809355b39bc7 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java (.../McMonitoringAction.java) (revision 1a02559e19419af9991eaeb9363f809355b39bc7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java (.../McMonitoringAction.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -36,11 +36,15 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.apache.tomcat.util.json.JSONArray; +import org.apache.tomcat.util.json.JSONException; +import org.apache.tomcat.util.json.JSONObject; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.exception.ToolException; @@ -49,10 +53,12 @@ import org.lamsfoundation.lams.tool.mc.McGeneralAuthoringDTO; import org.lamsfoundation.lams.tool.mc.McGeneralLearnerFlowDTO; import org.lamsfoundation.lams.tool.mc.McGeneralMonitoringDTO; +import org.lamsfoundation.lams.tool.mc.McUserMarkDTO; import org.lamsfoundation.lams.tool.mc.ReflectionDTO; import org.lamsfoundation.lams.tool.mc.pojos.McContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; +import org.lamsfoundation.lams.tool.mc.pojos.McSession; import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.service.McServiceProxy; @@ -93,8 +99,6 @@ repopulateRequestParameters(request, mcMonitoringForm, mcGeneralMonitoringDTO); - String toolContentID = mcMonitoringForm.getToolContentID(); - // generate DTO for All sessions MonitoringUtil.setupAllSessionsData(request, mcContent, mcService); @@ -276,6 +280,69 @@ return (userAttempts == null || userAttempts.isEmpty()) ? null : mapping.findForward(McAppConstants.USER_MASTER_DETAIL); } + /** + * Return paged users for jqGrid. + */ + public ActionForward getPagedUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws JSONException, IOException { + IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); + + Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + McSession session = mcService.getMcSessionById(sessionId); + //find group leader, if any + McQueUsr groupLeader = session.getGroupLeader(); + + // Getting the params passed in from the jqGrid + int page = WebUtil.readIntParam(request, AttributeNames.PARAM_PAGE); + int rowLimit = WebUtil.readIntParam(request, AttributeNames.PARAM_ROWS); + String sortOrder = WebUtil.readStrParam(request, AttributeNames.PARAM_SORD); + String sortBy = WebUtil.readStrParam(request, AttributeNames.PARAM_SIDX, true); + if (sortBy == "") { + sortBy = "userName"; + } + String searchString = WebUtil.readStrParam(request, "userName", true); + + List userDtos = mcService.getPagedUsersBySession(sessionId, page - 1, rowLimit, sortBy, sortOrder, + searchString); + int countVisitLogs = mcService.getCountPagedUsersBySession(sessionId, searchString); + + int totalPages = new Double(Math.ceil(new Integer(countVisitLogs).doubleValue() + / new Integer(rowLimit).doubleValue())).intValue(); + + JSONArray rows = new JSONArray(); + int i = 1; + for (McUserMarkDTO userDto : userDtos) { + + JSONArray visitLogData = new JSONArray(); + Long userUid = Long.parseLong(userDto.getQueUsrId()); + visitLogData.put(userUid); + String fullName = StringEscapeUtils.escapeHtml(userDto.getFullName()); + if (groupLeader != null && groupLeader.getUid().equals(userUid)) { + fullName += " (" + mcService.getLocalizedMessage("label.monitoring.group.leader") + ")"; + } + + visitLogData.put(fullName); + Long totalMark = (userDto.getTotalMark() == null) ? 0 : userDto.getTotalMark(); + visitLogData.put(totalMark); + + JSONObject userRow = new JSONObject(); + userRow.put("id", i++); + userRow.put("cell", visitLogData); + + rows.put(userRow); + } + + JSONObject responseJSON = new JSONObject(); + responseJSON.put("total", totalPages); + responseJSON.put("page", page); + responseJSON.put("records", countVisitLogs); + responseJSON.put("rows", rows); + + response.setContentType("application/json;charset=utf-8"); + response.getWriter().write(responseJSON.toString()); + return null; + } + public ActionForward saveUserMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java =================================================================== diff -u -r1a02559e19419af9991eaeb9363f809355b39bc7 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java (.../McMonitoringStarterAction.java) (revision 1a02559e19419af9991eaeb9363f809355b39bc7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java (.../McMonitoringStarterAction.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -25,9 +25,7 @@ import java.io.IOException; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.Set; -import java.util.TreeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -40,7 +38,6 @@ import org.apache.struts.action.ActionMapping; import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.McApplicationException; -import org.lamsfoundation.lams.tool.mc.McComparator; import org.lamsfoundation.lams.tool.mc.McGeneralAuthoringDTO; import org.lamsfoundation.lams.tool.mc.McGeneralMonitoringDTO; import org.lamsfoundation.lams.tool.mc.McQuestionDTO; @@ -85,7 +82,7 @@ } McContent mcContent = service.getMcContent(new Long(toolContentID)); - mcGeneralMonitoringDTO.setToolContentID(toolContentID.toString()); + mcGeneralMonitoringDTO.setToolContentID(toolContentID); mcGeneralMonitoringDTO.setActivityTitle(mcContent.getTitle()); mcGeneralMonitoringDTO.setActivityInstructions(mcContent.getInstructions()); mcGeneralMonitoringDTO.setCurrentMonitoringTab("summary"); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java =================================================================== diff -u -r1a02559e19419af9991eaeb9363f809355b39bc7 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java (.../McStarterAction.java) (revision 1a02559e19419af9991eaeb9363f809355b39bc7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java (.../McStarterAction.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -26,10 +26,8 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -51,8 +49,6 @@ import org.lamsfoundation.lams.tool.mc.McQuestionDTO; import org.lamsfoundation.lams.tool.mc.McUtils; import org.lamsfoundation.lams.tool.mc.pojos.McContent; -import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.service.McServiceProxy; import org.lamsfoundation.lams.util.WebUtil; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java =================================================================== diff -u -r9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java (.../MonitoringUtil.java) (revision 9db7a5bb39fecf9a0f1ae5cf2a9f701d2aa1532f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java (.../MonitoringUtil.java) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -30,25 +30,22 @@ import java.util.Set; import java.util.TimeZone; import java.util.TreeMap; +import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringEscapeUtils; import org.lamsfoundation.lams.tool.mc.McAppConstants; -import org.lamsfoundation.lams.tool.mc.McOptionDTO; import org.lamsfoundation.lams.tool.mc.McGeneralMonitoringDTO; -import org.lamsfoundation.lams.tool.mc.McMonitoredAnswersDTO; -import org.lamsfoundation.lams.tool.mc.McMonitoredUserDTO; -import org.lamsfoundation.lams.tool.mc.McSessionMarkDTO; -import org.lamsfoundation.lams.tool.mc.McStringComparator; +import org.lamsfoundation.lams.tool.mc.dto.SessionDTO; import org.lamsfoundation.lams.tool.mc.pojos.McContent; import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; -import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; import org.lamsfoundation.lams.tool.mc.pojos.McSession; import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; import org.lamsfoundation.lams.tool.mc.service.IMcService; +import org.lamsfoundation.lams.tool.mc.util.McSessionComparator; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.web.session.SessionManager; @@ -121,8 +118,19 @@ * @param mcService */ protected static void setupAllSessionsData(HttpServletRequest request, McContent content, IMcService mcService) { - List listMonitoredMarksContainerDTO = mcService.buildGroupsMarkData(content, false); - request.setAttribute(LIST_MONITORED_MARKS_CONTAINER_DTO, listMonitoredMarksContainerDTO); + + //set up sessionDTOs list + Set sessions = new TreeSet(new McSessionComparator()); + sessions.addAll(content.getMcSessions()); + List sessionDtos = new LinkedList(); + for (McSession session : sessions) { + SessionDTO sessionDto = new SessionDTO(); + sessionDto.setSessionId(session.getMcSessionId()); + sessionDto.setSessionName(session.getSession_name()); + + sessionDtos.add(sessionDto); + } + request.setAttribute(SESSION_DTOS, sessionDtos); request.setAttribute(HR_COLUMN_COUNT, new Integer(content.getMcQueContents().size() + 2).toString()); Index: lams_tool_lamc/web/monitoring/SummaryContent.jsp =================================================================== diff -u -rf26c6f4d1349866eb9b5962e04863ef5052dad55 -rbcca58d5b7597693db2f6d01764f29a9145876a7 --- lams_tool_lamc/web/monitoring/SummaryContent.jsp (.../SummaryContent.jsp) (revision f26c6f4d1349866eb9b5962e04863ef5052dad55) +++ lams_tool_lamc/web/monitoring/SummaryContent.jsp (.../SummaryContent.jsp) (revision bcca58d5b7597693db2f6d01764f29a9145876a7) @@ -35,36 +35,39 @@ -

+

+ +

+
- +
<%@ include file="parts/advanceQuestions.jsp"%> @@ -205,19 +205,20 @@ <%@ include file="masterDetailLoadUp.jsp"%> - +
- ${sessionMarkDto.sessionName} + ${sessionDto.sessionName}
-
+
+
-
+