Index: lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rcf7c19df5fdf4bcf72f5f26e09a87f72c1058726 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision cf7c19df5fdf4bcf72f5f26e09a87f72c1058726) +++ lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -6,7 +6,7 @@ label.authoring.heading.instructions =Instructions label.authoring.heading.basic.desc =Basic input information for scratchie tool label.authoring.heading.instructions.desc =Please input online and offline instructions -label.authoring.heading.advance.desc =Please input advance options for shared resources +label.authoring.heading.advance.desc =Please input advance options for Scratchie tool label.authoring.basic.title =Title label.authoring.maximum.answers.warning =Sorry, you can only have 10 answers at maximum. label.authoring.specify.correct.answer.warning =Please, specify which answer is correct one. @@ -69,16 +69,20 @@ label.authoring.up =Move up label.monitoring.summary.select.student =Select a student from the list to see his/her attempts/results label.monitoring.summary.user.name =Name +label.monitoring.summary.answer =Answer +label.monitoring.summary.choice =choice +label.monitoring.summary. = label.monitoring.summary.summary =Summary label.monitoring.summary.attempts =Attempts label.monitoring.summary.mark =Mark label.monitoring.summary.learners.summary =Learner's summary label.monitoring.summary.report.by.scratchie =Report by scratchie +label.monitoring.summary.report.by.user =Report by user label.monitoring.summary.attempt =Attempt label.monitoring.summary.attempt.number =Attempt # label.monitoring.summary.scratchie =Scratchie label.monitoring.summary.correct =Correct? -label.monitoring.item.summary.correct =Correct +label.monitoring.item.summary.correct =correct label.monitoring.summary.date =Date label.monitoring.summary.report.for =Report for {0} label.monitoring.summary.choose =Choose... Index: lams_tool_scratchie/conf/xdoclet/struts-actions.xml =================================================================== diff -u -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) +++ lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -228,10 +228,10 @@ parameter="summary" > - - + parameter="userSummary" > + getSummary(Long contentId); - public List getLogsBySessionAndUser(Long sessionId, Long userId); } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/hibernate/ScratchieAnswerVisitDAOHibernate.java =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/hibernate/ScratchieAnswerVisitDAOHibernate.java (.../ScratchieAnswerVisitDAOHibernate.java) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/hibernate/ScratchieAnswerVisitDAOHibernate.java (.../ScratchieAnswerVisitDAOHibernate.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -35,7 +35,7 @@ public class ScratchieAnswerVisitDAOHibernate extends BaseDAOHibernate implements ScratchieAnswerVisitDAO { - private static final String FIND_BY_ITEM_AND_USER = "from " + ScratchieAnswerVisitLog.class.getName() + private static final String FIND_BY_ANSWER_AND_USER = "from " + ScratchieAnswerVisitLog.class.getName() + " as r where r.user.userId = ? and r.scratchieAnswer.uid=?"; private static final String FIND_BY_SESSION_AND_USER = "from " + ScratchieAnswerVisitLog.class.getName() @@ -47,13 +47,8 @@ private static final String FIND_VIEW_COUNT_BY_USER_AND_ITEM = "select count(*) from " + ScratchieAnswerVisitLog.class.getName() + " as l where l.sessionId=? and l.user.userId =? and l.scratchieAnswer.scratchieItem.uid=?"; - private static final String FIND_SUMMARY = "select v.scratchieAnswer.uid, count(v.scratchieAnswer) from " - + ScratchieAnswerVisitLog.class.getName() + " as v , " + ScratchieSession.class.getName() + " as s, " - + Scratchie.class.getName() + " as r " + " where v.sessionId = s.sessionId " - + " and s.scratchie.uid = r.uid " + " and r.contentId =? " + " group by v.sessionId, v.scratchieAnswer.uid "; - public ScratchieAnswerVisitLog getScratchieAnswerLog(Long answerUid, Long userId) { - List list = getHibernateTemplate().find(FIND_BY_ITEM_AND_USER, new Object[] { userId, answerUid }); + List list = getHibernateTemplate().find(FIND_BY_ANSWER_AND_USER, new Object[] { userId, answerUid }); if (list == null || list.size() == 0) return null; return (ScratchieAnswerVisitLog) list.get(0); @@ -73,20 +68,6 @@ return ((Number) list.get(0)).intValue(); } - public Map getSummary(Long contentId) { - - // Note: Hibernate 3.1 query.uniqueResult() returns Integer, Hibernate 3.2 query.uniqueResult() returns Long - List result = getHibernateTemplate().find(FIND_SUMMARY, contentId); - Map summaryList = new HashMap(result.size()); - for (Object[] list : result) { - if (list[1] != null) { - summaryList.put((Long) list[0], new Integer(((Number) list[1]).intValue())); - } - } - return summaryList; - - } - public List getLogsBySessionAndUser(Long sessionId, Long userId) { return getHibernateTemplate().find(FIND_BY_SESSION_AND_USER, new Object[] { sessionId, userId }); } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/GroupSummary.java =================================================================== diff -u -r0ef117e7eca05b962210cb3b18eab1e39a6c57d1 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/GroupSummary.java (.../GroupSummary.java) (revision 0ef117e7eca05b962210cb3b18eab1e39a6c57d1) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/GroupSummary.java (.../GroupSummary.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -25,6 +25,8 @@ import java.util.Collection; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieAnswer; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser; public class GroupSummary { @@ -33,6 +35,7 @@ private String sessionName; private Collection users; + private Collection answers; /** * Contruction method for monitoring summary function. @@ -72,4 +75,11 @@ this.users = users; } + public Collection getAnswers() { + return answers; + } + + public void setAnswers(Collection answers) { + this.answers = answers; + } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java =================================================================== diff -u -rded32af47a9de99cb3319fdd7461906323f7e293 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java (.../ScratchieAnswer.java) (revision ded32af47a9de99cb3319fdd7461906323f7e293) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java (.../ScratchieAnswer.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -52,6 +52,7 @@ // DTO fields: private boolean scratched; private Date scratchedDate; + private int[] attempts; // ********************************************************** // Get/Set methods @@ -134,6 +135,14 @@ public void setScratchedDate(Date scratchedDate) { this.scratchedDate = scratchedDate; } + + public int[] getAttempts() { + return attempts; + } + + public void setAttempts(int[] attempts) { + this.attempts = attempts; + } @Override public Object clone() { Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java =================================================================== diff -u -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java (.../ScratchieUser.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java (.../ScratchieUser.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -26,6 +26,7 @@ import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; /** @@ -36,7 +37,7 @@ * @hibernate.class table="tl_lascrt11_user" * */ -public class ScratchieUser implements Cloneable { +public class ScratchieUser implements Cloneable, Comparable { private static final long serialVersionUID = -7043502180037866257L; private static Logger log = Logger.getLogger(ScratchieUser.class); @@ -52,10 +53,8 @@ private Scratchie scratchie; // =============== NON Persisit value: for display use =========== - // the user access some reousrce item date time. Use in monitoring summary page private int mark; private int totalAttempts; - private int attemptNumber; public ScratchieUser() { } @@ -97,6 +96,11 @@ return user; } + + public int compareTo(Object user) { + ScratchieUser u = (ScratchieUser) user; + return loginName.compareTo(u.getLoginName()); + } // ********************************************************** // Get/Set methods @@ -251,13 +255,5 @@ public void setTotalAttempts(int totalAttempts) { this.totalAttempts = totalAttempts; } - - public int getAttemptNumber() { - return attemptNumber; - } - public void setAttemptNumber(int attemptNumber) { - this.attemptNumber = attemptNumber; - } - } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java =================================================================== diff -u -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -195,8 +195,6 @@ List getMonitoringSummary(Long contentId); - List getUserMasterDetail(Long sessionId, Long userId); - List getQuestionSummary(Long contentId, Long itemUid); /** @@ -294,4 +292,12 @@ * @return */ Set populateItemsResults(Long sessionId, Long userId); + + /** + * Return all learners in activity + * + * @param contentId + * @return + */ + Set getAllLearners(Long contentId); } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java =================================================================== diff -u -r7f8e34f36196eb71f16ec1984091704d36682166 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision 7f8e34f36196eb71f16ec1984091704d36682166) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -82,10 +82,10 @@ */ private ToolOutput getUserMark(IScratchieService scratchieService, Long toolSessionId, Long learnerId) { - int numberAttempts = scratchieService.getUserMark(toolSessionId, learnerId); + int userMark = scratchieService.getUserMark(toolSessionId, learnerId); return new ToolOutput(ScratchieConstants.LEARNER_MARK, getI18NText( - ScratchieConstants.LEARNER_MARK, true), numberAttempts); + ScratchieConstants.LEARNER_MARK, true), userMark); } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -90,6 +90,8 @@ import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser; import org.lamsfoundation.lams.tool.scratchie.util.ReflectDTOComparator; +import org.lamsfoundation.lams.tool.scratchie.util.ScratchieAnswerComparator; +import org.lamsfoundation.lams.tool.scratchie.util.ScratchieItemComparator; import org.lamsfoundation.lams.tool.scratchie.util.ScratchieToolContentHandler; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.User; @@ -432,6 +434,22 @@ return scratchieItemDao.getByUid(itemUid); } + @Override + public Set getAllLearners(Long contentId) { + + Scratchie scratchie = scratchieDao.getByContentId(contentId); + Set users = new TreeSet(); + + List sessionList = scratchieSessionDao.getByContentId(contentId); + for (ScratchieSession session : sessionList) { + Long sessionId = session.getSessionId(); + List sessionUsers = scratchieUserDao.getBySessionID(sessionId); + users.addAll(sessionUsers); + } + + return users; + } + public List getMonitoringSummary(Long contentId) { List groupSummaryList = new ArrayList(); @@ -557,41 +575,48 @@ return items; } - public List getUserMasterDetail(Long sessionId, Long userId) { - List logs = scratchieAnswerVisitDao.getLogsBySessionAndUser(sessionId, userId); - - return logs; - } - public List getQuestionSummary(Long contentId, Long itemUid) { List groupSummaryList = new ArrayList(); Scratchie scratchie = scratchieDao.getByContentId(contentId); + ScratchieItem item = scratchieItemDao.getByUid(itemUid); + Collection answers = item.getAnswers(); List sessionList = scratchieSessionDao.getByContentId(contentId); for (ScratchieSession session : sessionList) { Long sessionId = session.getSessionId(); + // one new summary for one session. GroupSummary groupSummary = new GroupSummary(sessionId, session.getSessionName()); + + Map answerMap = new HashMap(); + for (ScratchieAnswer dbAnswer : (Set)answers) { + + //clone it so it doesn't interfere with values from other sessions + ScratchieAnswer answer = (ScratchieAnswer) dbAnswer.clone(); + int[] attempts = new int[answers.size()]; + answer.setAttempts(attempts); + answerMap.put(dbAnswer.getUid(), answer); + } List users = scratchieUserDao.getBySessionID(sessionId); + //calculate attempts table for (ScratchieUser user : users) { - - int attemptNumber; - ScratchieAnswerVisitLog log = scratchieAnswerVisitDao.getScratchieAnswerLog(itemUid, user.getUserId()); - if (log == null) { - //-1 if there is no log - attemptNumber = -1; - } else { - List allAttempts = scratchieAnswerVisitDao.getLogsBySessionAndUser(sessionId, user.getUserId()); - attemptNumber = allAttempts.indexOf(log); + + int attemptNumber = 0; + List userAttempts = scratchieAnswerVisitDao.getLogsBySessionAndUser(sessionId, user.getUserId()); + for (ScratchieAnswerVisitLog userAttempt : userAttempts) { + ScratchieAnswer answer = answerMap.get(userAttempt.getScratchieAnswer().getUid()); + int[] attempts = answer.getAttempts(); + //+1 for corresponding choice + attempts[attemptNumber++]++; } - - user.setAttemptNumber(attemptNumber); } - groupSummary.setUsers(users); + Collection sortedAnswers = new TreeSet(new ScratchieAnswerComparator()); + sortedAnswers.addAll(answerMap.values()); + groupSummary.setAnswers(sortedAnswers); groupSummaryList.add(groupSummary); } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java =================================================================== diff -u -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -151,6 +151,7 @@ // basic information sessionMap.put(ScratchieConstants.ATTR_TITLE, scratchie.getTitle()); sessionMap.put(ScratchieConstants.ATTR_RESOURCE_INSTRUCTION, scratchie.getInstructions()); + sessionMap.put(ScratchieConstants.ATTR_USER_ID, scratchieUser.getUserId()); boolean isUserFinished = scratchieUser != null && scratchieUser.isSessionFinished(); sessionMap.put(ScratchieConstants.ATTR_USER_FINISHED, isUserFinished); sessionMap.put(ScratchieConstants.ATTR_IS_SHOW_RESULTS_PAGE, scratchie.isShowResultsPage()); @@ -201,6 +202,7 @@ if (isScratchingFinished) { ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig("showResults")); redirect.addParameter(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + redirect.addParameter(AttributeNames.ATTR_MODE, mode); return redirect; } else { return mapping.findForward(ScratchieConstants.SUCCESS); @@ -269,13 +271,15 @@ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); request.setAttribute(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMapID); Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, true); IScratchieService service = getScratchieService(); - HttpSession ss = SessionManager.getSession(); - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - Long userId = new Long(user.getUserID().longValue()); + Long userId = (Long) sessionMap.get(ScratchieConstants.ATTR_USER_ID); + + if (mode == null || !mode.isTeacher()) { + service.setScratchingFinished(toolSessionId, userId); + } - service.setScratchingFinished(toolSessionId, userId); Set items = service.populateItemsResults(toolSessionId, userId); request.setAttribute(ScratchieConstants.ATTR_ITEM_LIST, items); Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java =================================================================== diff -u -r0ef117e7eca05b962210cb3b18eab1e39a6c57d1 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 0ef117e7eca05b962210cb3b18eab1e39a6c57d1) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -26,6 +26,7 @@ import java.io.IOException; import java.util.List; +import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -66,8 +67,8 @@ if (param.equals("summary")) { return summary(mapping, form, request, response); } - if (param.equals("userMasterDetail")) { - return userMasterDetail(mapping, form, request, response); + if (param.equals("userSummary")) { + return userSummary(mapping, form, request, response); } if (param.equals("itemSummary")) { return itemSummary(mapping, form, request, response); @@ -92,29 +93,45 @@ Scratchie scratchie = service.getScratchieByContentId(contentId); scratchie.toDTO(); + Set learners = service.getAllLearners(contentId); // cache into sessionMap boolean isGroupedActivity = service.isGroupedActivity(contentId); sessionMap.put(ScratchieConstants.ATTR_IS_GROUPED_ACTIVITY, isGroupedActivity); sessionMap.put(ScratchieConstants.ATTR_SUMMARY_LIST, summaryList); sessionMap.put(ScratchieConstants.PAGE_EDITABLE, scratchie.isContentInUse()); sessionMap.put(ScratchieConstants.ATTR_SCRATCHIE, scratchie); + sessionMap.put(ScratchieConstants.ATTR_LEARNERS, learners); sessionMap.put(ScratchieConstants.ATTR_TOOL_CONTENT_ID, contentId); sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID)); return mapping.findForward(ScratchieConstants.SUCCESS); } - private ActionForward userMasterDetail(ActionMapping mapping, ActionForm form, HttpServletRequest request, + private ActionForward userSummary(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + Long itemUid = WebUtil.readLongParam(request, ScratchieConstants.ATTR_ITEM_UID); + if (itemUid.equals(-1)) { + return null; + } + + String sessionMapID = request.getParameter(ScratchieConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + request.setAttribute(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + Long userId = WebUtil.readLongParam(request, AttributeNames.PARAM_USER_ID); - Long sessionId = WebUtil.readLongParam(request, ScratchieConstants.PARAM_SESSION_ID); - List logs = getScratchieService().getUserMasterDetail(sessionId, userId); + if (userId.equals(-1)) { + return null; + } + ScratchieItem item = getScratchieService().getScratchieItemByUid(itemUid); + request.setAttribute(ScratchieConstants.ATTR_ITEM, item); + + Long contentId = (Long) sessionMap.get(ScratchieConstants.ATTR_TOOL_CONTENT_ID); + List summaryList = getScratchieService().getQuestionSummary(contentId, itemUid); - request.setAttribute(ScratchieConstants.ATTR_USER_SESSION_ID, sessionId); - request.setAttribute(ScratchieConstants.ATTR_VISIT_LOGS, logs); - return (logs.isEmpty()) ? null : mapping.findForward(ScratchieConstants.SUCCESS); + request.setAttribute(ScratchieConstants.ATTR_SUMMARY_LIST, summaryList); + return mapping.findForward(ScratchieConstants.SUCCESS); } private ActionForward itemSummary(ActionMapping mapping, ActionForm form, HttpServletRequest request, Index: lams_tool_scratchie/web/pages/learning/learning.jsp =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/web/pages/learning/learning.jsp (.../learning.jsp) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/web/pages/learning/learning.jsp (.../learning.jsp) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -105,7 +105,7 @@ - + Index: lams_tool_scratchie/web/pages/monitoring/parts/itemSummary.jsp =================================================================== diff -u -r6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/web/pages/monitoring/parts/itemSummary.jsp (.../itemSummary.jsp) (revision 6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18) +++ lams_tool_scratchie/web/pages/monitoring/parts/itemSummary.jsp (.../itemSummary.jsp) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -29,41 +29,31 @@ width: 500, shrinkToFit: true, - colNames:["", - ""], + colNames:["" + + ,"${i.index + 1} " + + ], colModel:[ - {name:'userName',index:'userName', width:100}, - {name:'attemptNumber', index:'attemptNumber', width:200, sorttype:"int"} + {name:'answer',index:'userName', width:100} + + ,{name:'choice${i.index}', index:'${i.index}choice', width:20, sorttype:"int"} + ], multiselect: false, - caption: "${summary.sessionName}" - /* resetSelection() doesn't work in this version - hope it'll be fixed in the next one - - , - onSelectRow: function (rowid){ - $("[id^='user']").resetSelection(); - }, - onCellSelect: function (rowid, iCol, cellcontent){ - jQuery("#session${session.sessionId}}").resetSelection(); - }*/ + caption: " ${summary.sessionName}" }); - - - - var attemptNumber = "-"; - - - var attemptNumber = ${user.attemptNumber}; - - - + jQuery("#session${summary.sessionId}").addRowData(${i.index + 1}, { - userName:"${user.lastName}, ${user.firstName}", - attemptNumber:attemptNumber + answer:"${answer.description} ()" + + + ,choice${j}:"${answer.attempts[j]}" + + }); @@ -84,33 +74,18 @@

- ${item.description} + ${item.title}

-

- <%@ include file="/common/messages.jsp"%> -

${item.description} - - -
- ' border='0'> - -
-
-

- - ${item.description} + + <%@ include file="/common/messages.jsp"%>

-
- ${summary.sessionName} -
-
Fisheye: Tag ed23aef88626fa70acd34abbd3d044bec1b4a998 refers to a dead (removed) revision in file `lams_tool_scratchie/web/pages/monitoring/parts/masterDetailLoadUp.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_scratchie/web/pages/monitoring/parts/userSummary.jsp =================================================================== diff -u --- lams_tool_scratchie/web/pages/monitoring/parts/userSummary.jsp (revision 0) +++ lams_tool_scratchie/web/pages/monitoring/parts/userSummary.jsp (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -0,0 +1,108 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + <%@ include file="/common/header.jsp"%> + + + + + + + + + + + + + + +
+ +

+ + ${item.title} + +

+

+ ${item.description} +

+ <%@ include file="/common/messages.jsp"%> +
+
+ + +
+
+
+
+ + + + + + + + +
+ + + + + + +
Index: lams_tool_scratchie/web/pages/monitoring/summary.jsp =================================================================== diff -u -r6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18 -red23aef88626fa70acd34abbd3d044bec1b4a998 --- lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18) +++ lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision ed23aef88626fa70acd34abbd3d044bec1b4a998) @@ -30,24 +30,7 @@ {name:'totalAttempts',index:'totalAttempts', width:100,align:"right",sorttype:"int"}, {name:'mark',index:'mark', width:100,align:"right",sorttype:"int"} ], - caption: "${summary.sessionName}", - onSelectRow: function(rowid) { - if(rowid == null) { - rowid=0; - } - var userId = jQuery("#list${summary.sessionId}").getCell(rowid, 'userId'); - var sessionId = jQuery("#list${summary.sessionId}").getCell(rowid, 'sessionId'); - var userMasterDetailUrl = ''; - jQuery("#userSummary${summary.sessionId}").clearGridData().setGridParam({gridstate: "visible"}).trigger("reloadGrid"); - $("#masterDetailArea").load( - userMasterDetailUrl, - { - userID: userId, - sessionId: sessionId - } - ); - - } + caption: "${summary.sessionName}" }).hideCol("id").hideCol("userId").hideCol("sessionId"); @@ -60,35 +43,11 @@ mark:" - ${user.mark} " }); - - var oldValue = 0; - jQuery("#userSummary${summary.sessionId}").jqGrid({ - datatype: "local", - gridstate:"hidden", - //hiddengrid:true, - height: 90, - width: 630, - shrinkToFit: true, - scrollOffset: 0, - caption: "", - colNames:['', - '', - '', - ''], - - colModel:[ - {name:'attempt', index:'attempt', width:50, sorttype:"int"}, - {name:'scratchie', index:'scatchie', width: 300}, - {name:'correct', index:'correct', width:60, sortable:false, align:"center"}, - {name:'date', index:'date', width:120, sorttype:"date", datefmt:'Y-m-d' } - ], - multiselect: false - });
$("#itemUid").change(function() { - var itemUid = $("#itemUid").val(); + var itemUid = $(this).val(); if (itemUid != -1) { var itemSummaryUrl = ''; var itemSummaryHref = itemSummaryUrl + "&itemUid=" + itemUid + "&KeepThis=true&TB_iframe=true&height=400&width=650"; @@ -97,7 +56,18 @@ //return; $("#itemSummaryHref").click(); } - }); + }); + + $("#userIdDropdown").change(function() { + var userId = $(this).val(); + + if (userId != -1) { + var toolSessionId = $(this).find('option:selected').attr("alt"); + var userSummaryUrl = "?userID=" + userId + "&toolSessionID=" + toolSessionId + "&mode=teacher"; + + launchPopup(userSummaryUrl, "MonitoringReview"); + } + }); }); function resizeIframe() { @@ -135,10 +105,6 @@
- -
- <%@ include file="parts/masterDetailLoadUp.jsp"%> -
@@ -149,32 +115,44 @@
-
-
-
-
- - - -
+ + + +

- - -
+
+ + + +
+

+
+ +
+ + + + +