Index: lams_tool_spreadsheet/conf/xdoclet/struts-actions.xml =================================================================== diff -u -rbe07c35c372d904a65581d98660e73f3b13b69db -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision be07c35c372d904a65581d98660e73f3b13b69db) +++ lams_tool_spreadsheet/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -102,6 +102,10 @@ parameter="summary" > + + @@ -135,13 +139,8 @@ validate="false" scope="request"> - + - - - getBySessionID(Long sessionId); + + List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting, String searchString, + boolean getNotebookEntries, ICoreNotebookService coreNotebookService ); + + int getCountUsersBySession(final Long sessionId, String searchString); } Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/SpreadsheetUserDAOHibernate.java =================================================================== diff -u -r48eb475d4a5aaaaae7128498c850b6cd7fb880cd -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/SpreadsheetUserDAOHibernate.java (.../SpreadsheetUserDAOHibernate.java) (revision 48eb475d4a5aaaaae7128498c850b6cd7fb880cd) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/SpreadsheetUserDAOHibernate.java (.../SpreadsheetUserDAOHibernate.java) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -25,7 +25,14 @@ import java.util.List; +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.StringUtils; +import org.hibernate.Hibernate; +import org.hibernate.SQLQuery; +import org.hibernate.type.StringType; import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; +import org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants; import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetUserDAO; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; import org.springframework.stereotype.Repository; @@ -56,5 +63,92 @@ return (List) this.doFind(FIND_BY_SESSION_ID,sessionId); } + @SuppressWarnings("unchecked") + /** Will return List<[SpreadsheetUser, String], [SpreadsheetUser, String], ... , [SpreadsheetUser, String]> + * where the String is the notebook entry. No notebook entries needed? Will return in their place. + */ + public List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting, String searchString, + boolean getNotebookEntries, ICoreNotebookService coreNotebookService) { + String sortingOrder; + switch (sorting) { + case SpreadsheetConstants.SORT_BY_USERNAME_ASC: + sortingOrder = "user.last_name ASC, user.first_name ASC"; + break; + case SpreadsheetConstants.SORT_BY_USERNAME_DESC: + sortingOrder = "user.last_name DESC, user.first_name DESC"; + break; + case SpreadsheetConstants.SORT_BY_MARKED_ASC: + sortingOrder = " mark.marks ASC"; + break; + case SpreadsheetConstants.SORT_BY_MARKED_DESC: + sortingOrder = " mark.marks DESC"; + break; + default: + sortingOrder = "user.last_name, user.first_name"; + } + // If the session uses notebook, then get the sql to join across to get the entries + String[] notebookEntryStrings = null; + if ( getNotebookEntries ) { + notebookEntryStrings = coreNotebookService.getNotebookEntrySQLStrings(sessionId.toString(),SpreadsheetConstants.TOOL_SIGNATURE,"user.user_id" ); + } + + // Basic select for the user records + StringBuilder queryText = new StringBuilder(); + queryText.append("SELECT user.* "); + queryText.append(notebookEntryStrings != null ? notebookEntryStrings[0] : ", NULL notebookEntry"); + queryText.append(" FROM tl_lasprd10_user user "); + queryText.append(" JOIN tl_lasprd10_session session ON user.session_uid = session.uid and session.session_id = :sessionId"); + + // If sorting by mark then join to mark + if (sorting == SpreadsheetConstants.SORT_BY_MARKED_ASC + || sorting == SpreadsheetConstants.SORT_BY_MARKED_DESC) { + queryText.append(" LEFT JOIN tl_lasprd10_user_modified_spreadsheet ms on user.user_modified_spreadsheet_uid=ms.uid "); + queryText.append(" LEFT JOIN tl_lasprd10_spreadsheet_mark mark on ms.mark_id = mark.uid "); + } + + // If using notebook, add the notebook join + if ( notebookEntryStrings != null ) + queryText.append(notebookEntryStrings[1]); + + // If filtering by name add a name based where clause + buildNameSearch(searchString, queryText); + + // Now specify the sort based on the switch statement above. + queryText.append(" ORDER BY " + sortingOrder); + + SQLQuery query = getSession().createSQLQuery(queryText.toString()); + query.addEntity("user", SpreadsheetUser.class) + .addScalar("notebookEntry", StringType.INSTANCE) + .setLong("sessionId", sessionId.longValue()); + return query.list(); + } + + private void buildNameSearch(String searchString, StringBuilder sqlBuilder) { + if (!StringUtils.isBlank(searchString)) { + String[] tokens = searchString.trim().split("\\s+"); + for (String token : tokens) { + String escToken = StringEscapeUtils.escapeSql(token); + sqlBuilder.append(" WHERE (user.first_name LIKE '%").append(escToken) + .append("%' OR user.last_name LIKE '%").append(escToken) + .append("%' OR user.login_name LIKE '%").append(escToken).append("%') "); + } + } + } + + @SuppressWarnings("rawtypes") + public int getCountUsersBySession(final Long sessionId, String searchString) { + + StringBuilder queryText = new StringBuilder("SELECT count(*) FROM tl_lasprd10_user user "); + queryText.append(" JOIN tl_lasprd10_session session ON user.session_uid = session.uid and session.session_id = :sessionId"); + buildNameSearch(searchString, queryText); + + List list = getSession().createSQLQuery(queryText.toString()).setLong("sessionId", sessionId.longValue()).list(); + if (list == null || list.size() == 0) { + return 0; + } + return ((Number) list.get(0)).intValue(); + } + + } Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/ISpreadsheetService.java =================================================================== diff -u -rbe07c35c372d904a65581d98660e73f3b13b69db -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/ISpreadsheetService.java (.../ISpreadsheetService.java) (revision be07c35c372d904a65581d98660e73f3b13b69db) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/ISpreadsheetService.java (.../ISpreadsheetService.java) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -139,12 +139,25 @@ /** * Return monitoring summary list. The return value is list of spreadsheet summaries for each groups. + * It does not return the users in each session as we now use paging. * @param contentId * @return */ List getSummary(Long contentId); + + /** + * Get a paged, optionally sorted and filtered, list of users. + * @return + */ + List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting, String searchString, boolean getNotebookEntries); /** + * Get the number of users that would be returned by getUsersForTablesorter() if it was not paged. Supports filtering. + * @return + */ + int getCountUsersBySession(Long sessionId, String searchString); + + /** * Return monitoring statistic list. The return value is list of statistics for each groups. * @param contentId * @return Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java =================================================================== diff -u -r0aae4208886026f429f05b458b79c14f8d7030d4 -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java (.../SpreadsheetServiceImpl.java) (revision 0aae4208886026f429f05b458b79c14f8d7030d4) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java (.../SpreadsheetServiceImpl.java) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -23,10 +23,6 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.spreadsheet.service; -import java.io.File; -import java.io.FileFilter; -import java.io.FileNotFoundException; -import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -39,20 +35,7 @@ import java.util.TreeMap; import java.util.TreeSet; -import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.contentrepository.AccessDeniedException; -import org.lamsfoundation.lams.contentrepository.ICredentials; -import org.lamsfoundation.lams.contentrepository.ITicket; -import org.lamsfoundation.lams.contentrepository.IVersionedNode; -import org.lamsfoundation.lams.contentrepository.InvalidParameterException; -import org.lamsfoundation.lams.contentrepository.LoginException; -import org.lamsfoundation.lams.contentrepository.NodeKey; -import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; -import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException; -import org.lamsfoundation.lams.contentrepository.service.IRepositoryService; -import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials; import org.lamsfoundation.lams.learning.service.ILearnerService; import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; @@ -90,7 +73,6 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; /** * @@ -293,22 +275,34 @@ } public List getSummary(Long contentId) { + Spreadsheet spreadsheet = spreadsheetDao.getByContentId(contentId); List sessionList = spreadsheetSessionDao.getByContentId(contentId); List summaryList = new ArrayList(); // create the user list of all whom were started this task for (SpreadsheetSession session : sessionList) { - List userList = spreadsheetUserDao.getBySessionID(session.getSessionId()); - - Summary summary = new Summary(session, spreadsheet, userList); + // LDEV-3590 Monitoring is now paged so don't get the list of users + // List userList = spreadsheetUserDao.getBySessionID(session.getSessionId()); + Summary summary = new Summary(session, spreadsheet, null); summaryList.add(summary); } return summaryList; } + @Override + public List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting, String searchString, boolean getNotebookEntries) { + return spreadsheetUserDao.getUsersForTablesorter(sessionId, page, size, sorting, searchString, getNotebookEntries, coreNotebookService); + } + + @Override + public int getCountUsersBySession(Long sessionId, String searchString) { + return spreadsheetUserDao.getCountUsersBySession(sessionId, searchString); + } + + public List getStatistics(Long contentId) { List sessionList = spreadsheetSessionDao.getByContentId(contentId); Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java =================================================================== diff -u -rbe07c35c372d904a65581d98660e73f3b13b69db -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision be07c35c372d904a65581d98660e73f3b13b69db) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -27,15 +27,20 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintWriter; +import java.text.DateFormat; import java.text.NumberFormat; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; @@ -50,6 +55,9 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +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.spreadsheet.SpreadsheetConstants; @@ -60,8 +68,10 @@ import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetMark; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetSession; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; +import org.lamsfoundation.lams.tool.spreadsheet.model.UserModifiedSpreadsheet; import org.lamsfoundation.lams.tool.spreadsheet.service.ISpreadsheetService; import org.lamsfoundation.lams.tool.spreadsheet.web.form.MarkForm; +import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -73,14 +83,17 @@ @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { + throws IOException, ServletException, JSONException { String param = mapping.getParameter(); request.setAttribute("initialTabId", WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true)); if (param.equals("summary")) { return summary(mapping, form, request, response); } + if (param.equals("getUsers")) { + return getUsers(mapping, form, request, response); + } if (param.equals("doStatistic")) { return doStatistic(mapping, form, request, response); } @@ -99,11 +112,6 @@ if (param.equals("saveMark")) { return saveMark(mapping, form, request, response); } - - if (param.equals("viewReflection")) { - return viewReflection(mapping, form, request, response); - } - return mapping.findForward(SpreadsheetConstants.ERROR); } @@ -122,21 +130,74 @@ Spreadsheet spreadsheet = service.getSpreadsheetByContentId(contentId); - Map> reflectList = service.getReflectList(contentId, false); - //cache into sessionMap sessionMap.put(SpreadsheetConstants.ATTR_SUMMARY_LIST, summaryList); sessionMap.put(SpreadsheetConstants.PAGE_EDITABLE, spreadsheet.isContentInUse()); sessionMap.put(SpreadsheetConstants.ATTR_RESOURCE, spreadsheet); sessionMap.put(SpreadsheetConstants.ATTR_TOOL_CONTENT_ID, contentId); - sessionMap.put(SpreadsheetConstants.ATTR_REFLECT_LIST, reflectList); sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID)); sessionMap.put(SpreadsheetConstants.ATTR_IS_GROUPED_ACTIVITY, service.isGroupedActivity(contentId)); return mapping.findForward(SpreadsheetConstants.SUCCESS); } + + private ActionForward getUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) + throws JSONException, IOException { + + Long sessionID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID)); + Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + + // paging parameters of tablesorter + int size = WebUtil.readIntParam(request, "size"); + int page = WebUtil.readIntParam(request, "page"); + Integer sortByName = WebUtil.readIntParam(request, "column[0]", true); + Integer sortByMarked = WebUtil.readIntParam(request, "column[1]", true); + String searchString = request.getParameter("fcol[0]"); + + int sorting = SpreadsheetConstants.SORT_BY_NO; + if ( sortByName != null ) { + sorting = sortByName.equals(0) ? SpreadsheetConstants.SORT_BY_USERNAME_ASC : SpreadsheetConstants.SORT_BY_USERNAME_DESC; + } else if ( sortByMarked !=null ) { + sorting = sortByMarked.equals(0) ? SpreadsheetConstants.SORT_BY_MARKED_ASC : SpreadsheetConstants.SORT_BY_MARKED_DESC; + } + + //return user list according to the given sessionID + ISpreadsheetService service = getSpreadsheetService(); + Spreadsheet spreadsheet = service.getSpreadsheetByContentId(contentId); + List users = service.getUsersForTablesorter(sessionID, page, size, sorting, searchString, spreadsheet.isReflectOnActivity()); + + JSONArray rows = new JSONArray(); + JSONObject responsedata = new JSONObject(); + responsedata.put("total_rows", service.getCountUsersBySession(sessionID, searchString)); + + for (Object[] userAndReflection : users) { + + JSONObject responseRow = new JSONObject(); + + SpreadsheetUser user = (SpreadsheetUser) userAndReflection[0]; + responseRow.put(SpreadsheetConstants.ATTR_USER_UID, user.getUid()); + responseRow.put(SpreadsheetConstants.ATTR_USER_NAME, StringEscapeUtils.escapeHtml(user.getLastName() + " " + user.getFirstName())); + if ( user.getUserModifiedSpreadsheet() != null ) { + responseRow.put("userModifiedSpreadsheet", "true"); + if ( user.getUserModifiedSpreadsheet().getMark() != null ) { + responseRow.put("mark", user.getUserModifiedSpreadsheet().getMark().getMarks()); + } + } + + if ( userAndReflection.length > 1 && userAndReflection[1] != null) { + responseRow.put("reflection", userAndReflection[1]); + } + + rows.put(responseRow); + } + responsedata.put("rows", rows); + response.setContentType("application/json;charset=utf-8"); + response.getWriter().print(new String(responsedata.toString())); + return null; + } + /** * AJAX call to refresh statistic page. * @param mapping @@ -367,67 +428,16 @@ getSpreadsheetService().saveOrUpdateUserModifiedSpreadsheet(user.getUserModifiedSpreadsheet()); } - //update user data in sessionMap - String sessionMapID = markForm.getSessionMapID(); - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - List summaryList = (List) sessionMap.get(SpreadsheetConstants.ATTR_SUMMARY_LIST); - for (Summary summary : summaryList) { - for (SpreadsheetUser sessionUser : summary.getUsers()) { - if (sessionUser.getUid().equals(user.getUid())) { - sessionUser.setUserModifiedSpreadsheet(user.getUserModifiedSpreadsheet()); - } - } - } - + request.setAttribute("mark",markForm.getMarks()); + request.setAttribute("userUid",userUid); + //set session map ID so that itemlist.jsp can get sessionMAP request.setAttribute(SpreadsheetConstants.ATTR_SESSION_MAP_ID, markForm.getSessionMapID()); return mapping.findForward(SpreadsheetConstants.SUCCESS); } - // private ActionForward listuser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - // Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); - // Long itemUid = WebUtil.readLongParam(request, SpreadsheetConstants.PARAM_RESOURCE_ITEM_UID); - //// - //// //get user list by given item uid - // ISpreadsheetService service = getSpreadsheetService(); - // //TODO - // List list = null; - //// List list = service.getUserListBySessionItem(sessionId, itemUid); - // - // //set to request - // request.setAttribute(SpreadsheetConstants.ATTR_USER_LIST, list); - // return mapping.findForward(SpreadsheetConstants.SUCCESS); - // } - private ActionForward viewReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - - Long uid = WebUtil.readLongParam(request, SpreadsheetConstants.ATTR_USER_UID); - - ISpreadsheetService service = getSpreadsheetService(); - SpreadsheetUser user = service.getUser(uid); - Long sessionID = user.getSession().getSessionId(); - NotebookEntry notebookEntry = service.getEntry(sessionID, CoreNotebookConstants.NOTEBOOK_TOOL, - SpreadsheetConstants.TOOL_SIGNATURE, user.getUserId().intValue()); - - SpreadsheetSession session = service.getSessionBySessionId(sessionID); - - ReflectDTO refDTO = new ReflectDTO(user); - if (notebookEntry == null) { - refDTO.setFinishReflection(false); - refDTO.setReflect(null); - } - else { - refDTO.setFinishReflection(true); - refDTO.setReflect(notebookEntry.getEntry()); - } - refDTO.setReflectInstructions(session.getSpreadsheet().getReflectInstructions()); - - request.setAttribute("userDTO", refDTO); - return mapping.findForward("success"); - } - // ************************************************************************************* // Private method // ************************************************************************************* Fisheye: Tag 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 refers to a dead (removed) revision in file `lams_tool_spreadsheet/web/pages/monitoring/parts/notebook.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_spreadsheet/web/pages/monitoring/parts/summarylist.jsp =================================================================== diff -u -r21ce4d0194e8b81e613f4f6e14eb4e8bf53bdf59 -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/web/pages/monitoring/parts/summarylist.jsp (.../summarylist.jsp) (revision 21ce4d0194e8b81e613f4f6e14eb4e8bf53bdf59) +++ lams_tool_spreadsheet/web/pages/monitoring/parts/summarylist.jsp (.../summarylist.jsp) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -1,4 +1,116 @@ <%@ include file="/common/taglibs.jsp"%> + + + +
+ + + + + + + + + + + @@ -9,8 +121,7 @@
-
- +

${summary.sessionName} @@ -19,82 +130,52 @@

- - - - - - - - - - +
+
- - - - -
+ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - + + +
- - - - - - - ${user.loginName} - - - - ${user.loginName} - - - - - - tick - - - - cross - - - - - - - - - + + + + + +
+ + +
+
+ + + + + + +
+
+

+ + -
+
@@ -109,62 +190,5 @@
- - <%-- Reflection list --%> - - - -

- - - - - - - - - - - - - - -
- - - -
- ${user.loginName} - - - - - - - -
-
-
- - - -
- -<%-- This script will works when a new resoruce Condition submit in order to refresh "TaskList List" panel. --%> - + + \ No newline at end of file Index: lams_tool_spreadsheet/web/pages/monitoring/parts/updatemarkaftersave.jsp =================================================================== diff -u --- lams_tool_spreadsheet/web/pages/monitoring/parts/updatemarkaftersave.jsp (revision 0) +++ lams_tool_spreadsheet/web/pages/monitoring/parts/updatemarkaftersave.jsp (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -0,0 +1,24 @@ + +<%@ include file="/common/taglibs.jsp"%> + + + + <%@ include file="/common/header.jsp"%> + + + + +

Mark Updated to ${mark}

+ +
\ No newline at end of file Index: lams_tool_spreadsheet/web/pages/monitoring/summary.jsp =================================================================== diff -u -rfb099c65e1987ef8ff8f8aa4a0d987fd77247750 -r0d10b0f6afaf65b7d04a5c2fa54688962f4b9379 --- lams_tool_spreadsheet/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision fb099c65e1987ef8ff8f8aa4a0d987fd77247750) +++ lams_tool_spreadsheet/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 0d10b0f6afaf65b7d04a5c2fa54688962f4b9379) @@ -29,6 +29,14 @@ showMessage(url); } + function updateMarkAfterSaving(userUid, mark) { + var span = document.getElementById('mark'+userUid); + while( span.firstChild ) { + span.removeChild( span.firstChild ); + } + span.appendChild( document.createTextNode(mark) ); + } + function downloadMarks(sessionId){ var url = ""; var reqIDVar = new Date();