Index: lams_build/lib/lams/lams-learning.jar =================================================================== diff -u -r8f4be61ce9ac48ffc767138df8932b7f70427cdd -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f Binary files differ Index: lams_learning/.classpath =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/.classpath (.../.classpath) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_learning/.classpath (.../.classpath) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -2,7 +2,6 @@ - @@ -29,5 +28,6 @@ + Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/src/java/org/lamsfoundation/lams/learning/kumalive/KumaliveAction.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_learning/src/java/org/lamsfoundation/lams/learning/kumalive/KumaliveController.java =================================================================== diff -u --- lams_learning/src/java/org/lamsfoundation/lams/learning/kumalive/KumaliveController.java (revision 0) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/kumalive/KumaliveController.java (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -0,0 +1,331 @@ +package org.lamsfoundation.lams.learning.kumalive; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.gradebook.util.GradebookConstants; +import org.lamsfoundation.lams.learning.kumalive.model.Kumalive; +import org.lamsfoundation.lams.learning.kumalive.model.KumaliveRubric; +import org.lamsfoundation.lams.learning.kumalive.service.IKumaliveService; +import org.lamsfoundation.lams.security.ISecurityService; +import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.ExcelCell; +import org.lamsfoundation.lams.util.ExcelUtil; +import org.lamsfoundation.lams.util.FileUtil; +import org.lamsfoundation.lams.util.JsonUtil; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.ObjectNode; + +/** + * @author Marcin Cieslak + */ +@Controller +@RequestMapping("/kumalive") +public class KumaliveController { + + private static Logger log = Logger.getLogger(KumaliveController.class); + + private static IKumaliveService kumaliveService; + private static ISecurityService securityService; + + @RequestMapping("/getRubrics") + public String getRubrics(HttpServletRequest request, HttpServletResponse response) throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, false); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisationId, currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get rubrics", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + organisationId; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + + List rubrics = KumaliveController.getKumaliveService().getRubrics(organisationId); + ArrayNode rubricsJSON = JsonNodeFactory.instance.arrayNode(); + for (KumaliveRubric rubric : rubrics) { + rubricsJSON.add(rubric.getName()); + } + request.setAttribute("rubrics", rubricsJSON); + + return "kumalive/kumaliveRubrics"; + } + + @RequestMapping("/getReport") + public String getReport(HttpServletRequest request, HttpServletResponse response) throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, false); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisationId, currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get report", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + organisationId; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + + return "/kumalive/kumaliveReport"; + } + + @RequestMapping("/getReportOrganisationData") + @ResponseBody + public String getReportOrganisationData(HttpServletRequest request, HttpServletResponse response) + throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, false); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisationId, currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get report organisation data", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + organisationId; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + + int page = WebUtil.readIntParam(request, GradebookConstants.PARAM_PAGE); + int rowLimit = WebUtil.readIntParam(request, GradebookConstants.PARAM_ROWS); + String sortOrder = WebUtil.readStrParam(request, GradebookConstants.PARAM_SORD); + String sortColumn = WebUtil.readStrParam(request, GradebookConstants.PARAM_SIDX, true); + + ObjectNode resultJSON = KumaliveController.getKumaliveService().getReportOrganisationData(organisationId, + sortColumn, !"DESC".equalsIgnoreCase(sortOrder), rowLimit, page); + response.setContentType("text/xml;charset=utf-8"); + return resultJSON.toString(); + } + + @RequestMapping("/getReportKumaliveRubrics") + @ResponseBody + public String getReportKumaliveRubrics(HttpServletRequest request, HttpServletResponse response) + throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Long kumaliveId = WebUtil.readLongParam(request, "kumaliveId", false); + Kumalive kumalive = KumaliveController.getKumaliveService().getKumalive(kumaliveId); + Organisation organisation = kumalive.getOrganisation(); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisation.getOrganisationId(), currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get report kumalive rubrics", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + + organisation.getOrganisationId(); + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + + ArrayNode responseJSON = JsonNodeFactory.instance.arrayNode(); + for (KumaliveRubric rubric : kumalive.getRubrics()) { + ArrayNode rubricJSON = JsonNodeFactory.instance.arrayNode(); + rubricJSON.add(rubric.getRubricId()); + rubricJSON.add(rubric.getName() == null ? "" : rubric.getName()); + responseJSON.add(rubricJSON); + } + response.setContentType("text/json;charset=utf-8"); + return responseJSON.toString(); + } + + @RequestMapping("/getReportKumaliveData") + @ResponseBody + public String getReportKumaliveData(HttpServletRequest request, HttpServletResponse response) throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Long kumaliveId = WebUtil.readLongParam(request, "kumaliveId", false); + Kumalive kumalive = KumaliveController.getKumaliveService().getKumalive(kumaliveId); + Organisation organisation = kumalive.getOrganisation(); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisation.getOrganisationId(), currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get report kumalive data", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + + organisation.getOrganisationId(); + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + + String sortOrder = WebUtil.readStrParam(request, GradebookConstants.PARAM_SORD); + + ObjectNode responseJSON = KumaliveController.getKumaliveService().getReportKumaliveData(kumaliveId, + !"DESC".equalsIgnoreCase(sortOrder)); + response.setContentType("text/json;charset=utf-8"); + return responseJSON.toString(); + } + + @RequestMapping("/getReportUserData") + @ResponseBody + public String getReportUserData(HttpServletRequest request, HttpServletResponse response) throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Long kumaliveId = WebUtil.readLongParam(request, "kumaliveId", false); + Integer userId = WebUtil.readIntParam(request, "userId", false); + Kumalive kumalive = KumaliveController.getKumaliveService().getKumalive(kumaliveId); + Organisation organisation = kumalive.getOrganisation(); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisation.getOrganisationId(), currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get report user data", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + + organisation.getOrganisationId(); + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + return null; + } + + ObjectNode responseJSON = KumaliveController.getKumaliveService().getReportUserData(kumaliveId, userId); + response.setContentType("text/json;charset=utf-8"); + return responseJSON.toString(); + } + + @RequestMapping("/exportKumalives") + @ResponseBody + public void exportKumalives(HttpServletRequest request, HttpServletResponse response) throws IOException { + UserDTO userDTO = getUserDTO(); + Integer currentUserId = userDTO.getUserID(); + Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, true); + List kumaliveIds = null; + if (organisationId == null) { + String kumaliveIdsParam = WebUtil.readStrParam(request, "kumaliveIds", false); + + ArrayNode kumaliveIdsJSON = JsonUtil.readArray(kumaliveIdsParam); + kumaliveIds = new LinkedList<>(); + for (JsonNode kumaliveIdJSON : kumaliveIdsJSON) { + kumaliveIds.add(kumaliveIdJSON.asLong()); + } + + Kumalive kumalive = KumaliveController.getKumaliveService().getKumalive(kumaliveIds.get(0)); + organisationId = kumalive.getOrganisation().getOrganisationId(); + } + + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisationId, currentUserId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive export", false)) { + String warning = "User " + currentUserId + " is not a monitor of organisation " + organisationId; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + } + + LinkedHashMap dataToExport = null; + if (kumaliveIds == null) { + dataToExport = KumaliveController.getKumaliveService().exportKumalives(organisationId); + } else { + dataToExport = KumaliveController.getKumaliveService().exportKumalives(kumaliveIds); + } + String fileName = "kumalive_report.xlsx"; + fileName = FileUtil.encodeFilenameForDownload(request, fileName); + + response.setContentType("application/x-download"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + + // set cookie that will tell JS script that export has been finished + String downloadTokenValue = WebUtil.readStrParam(request, "downloadTokenValue"); + Cookie fileDownloadTokenCookie = new Cookie("fileDownloadToken", downloadTokenValue); + fileDownloadTokenCookie.setPath("/"); + response.addCookie(fileDownloadTokenCookie); + + ExcelUtil.createExcel(response.getOutputStream(), dataToExport, "Exported on:", true); + + } + + @RequestMapping("/saveRubrics") + @ResponseBody + public void saveRubrics(HttpServletRequest request, HttpServletResponse response) throws IOException { + UserDTO userDTO = getUserDTO(); + Integer userId = userDTO.getUserID(); + Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, false); + if (!Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE)) { + String warning = "Kumalives are disabled"; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + } + if (!KumaliveController.getSecurityService().hasOrgRole(organisationId, userId, + new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive get rubrics", false)) { + String warning = "User " + userId + " is not a monitor of organisation " + organisationId; + log.warn(warning); + response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); + } + + ArrayNode rubricsJSON = JsonUtil.readArray(WebUtil.readStrParam(request, "rubrics")); + KumaliveController.getKumaliveService().saveRubrics(organisationId, rubricsJSON); + + } + + private UserDTO getUserDTO() { + HttpSession ss = SessionManager.getSession(); + return (UserDTO) ss.getAttribute(AttributeNames.USER); + } + + private static IKumaliveService getKumaliveService() { + if (kumaliveService == null) { + WebApplicationContext ctx = WebApplicationContextUtils + .getWebApplicationContext(SessionManager.getServletContext()); + kumaliveService = (IKumaliveService) ctx.getBean("kumaliveService"); + } + return kumaliveService; + } + + private static ISecurityService getSecurityService() { + if (securityService == null) { + WebApplicationContext ctx = WebApplicationContextUtils + .getRequiredWebApplicationContext(SessionManager.getServletContext()); + securityService = (ISecurityService) ctx.getBean("securityService"); + } + return securityService; + } +} \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/ChooseActivityController.java =================================================================== diff -u -r1704c05d7e844f968d3700990957ff05f3611ba5 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/ChooseActivityController.java (.../ChooseActivityController.java) (revision 1704c05d7e844f968d3700990957ff05f3611ba5) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/ChooseActivityController.java (.../ChooseActivityController.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -27,14 +27,14 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; -import org.apache.struts.util.TokenProcessor; import org.lamsfoundation.lams.learning.service.ICoreLearnerService; import org.lamsfoundation.lams.learning.web.form.ActivityForm; import org.lamsfoundation.lams.learning.web.util.ActivityMapping; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.web.util.TokenProcessor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/DisplayOptionsActivityController.java =================================================================== diff -u -r1704c05d7e844f968d3700990957ff05f3611ba5 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/DisplayOptionsActivityController.java (.../DisplayOptionsActivityController.java) (revision 1704c05d7e844f968d3700990957ff05f3611ba5) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/DisplayOptionsActivityController.java (.../DisplayOptionsActivityController.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -32,7 +32,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; -import org.apache.struts.util.TokenProcessor; import org.lamsfoundation.lams.learning.service.ICoreLearnerService; import org.lamsfoundation.lams.learning.web.bean.ActivityURL; import org.lamsfoundation.lams.learning.web.form.OptionsActivityForm; @@ -42,6 +41,7 @@ import org.lamsfoundation.lams.learningdesign.OptionsActivity; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.web.util.AttributeNames; +import org.lamsfoundation.lams.web.util.TokenProcessor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GroupingController.java =================================================================== diff -u -r580d89078524d7f06eccd71feefc7e6f98717538 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GroupingController.java (.../GroupingController.java) (revision 580d89078524d7f06eccd71feefc7e6f98717538) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/GroupingController.java (.../GroupingController.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -144,7 +144,7 @@ request.setAttribute(AttributeNames.PARAM_LESSON_ID, lessonId); if (groupingDone) { request.setAttribute(GroupingController.FINISHED_BUTTON, Boolean.TRUE); - return viewGrouping(request, learnerProgress) ; + return viewGrouping(request, learnerProgress); } // forward to group choosing page if (((GroupingActivity) activity).getCreateGrouping().isLearnerChoiceGrouping()) { @@ -180,8 +180,8 @@ // } @RequestMapping("/viewGroup") - public String viewGrouping(HttpServletRequest request,@RequestParam (required = false)LearnerProgress learnerProgress) - throws IOException, ServletException { + public String viewGrouping(HttpServletRequest request, + @RequestParam(required = false) LearnerProgress learnerProgress) throws IOException, ServletException { prepareGroupData(request); request.setAttribute(GroupingController.LOCAL_FILES, Boolean.FALSE); ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, true); @@ -270,8 +270,7 @@ Long lessonId = learnerProgress.getLesson().getLessonId(); learnerService.learnerChooseGroup(lessonId, activity.getActivityId(), groupId, LearningWebUtil.getUserId()); - String redirectURL = "/grouping.do"; - redirectURL = WebUtil.appendParameterToURL(redirectURL, "method", "performGrouping"); + String redirectURL = "/grouping/performGrouping.do"; redirectURL = WebUtil.appendParameterToURL(redirectURL, "activityID", activity.getActivityId().toString()); return redirectURL; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LearnerController.java =================================================================== diff -u -r4e2c39e0ea14d5a8aa406327a16425e81b1e6702 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LearnerController.java (.../LearnerController.java) (revision 4e2c39e0ea14d5a8aa406327a16425e81b1e6702) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/LearnerController.java (.../LearnerController.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -392,7 +392,7 @@ if ((url != null) && (monitorId != null)) { // URL in monitor mode url = Configuration.get(ConfigurationKeys.SERVER_URL) - + "monitoring/monitoring.do?method=getLearnerActivityURL&lessonID=" + lessonId + "&activityID=" + + "monitoring/monitoring/getLearnerActivityURL.do?lessonID=" + lessonId + "&activityID=" + activity.getActivityId() + "&userID=" + learnerId; } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/NotebookController.java =================================================================== diff -u -r8f4be61ce9ac48ffc767138df8932b7f70427cdd -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/NotebookController.java (.../NotebookController.java) (revision 8f4be61ce9ac48ffc767138df8932b7f70427cdd) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/controller/NotebookController.java (.../NotebookController.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -47,7 +47,6 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.context.WebApplicationContext; /** @@ -210,7 +209,7 @@ return "notebook/view"; } - + @RequestMapping("/add") public String addNewEntry(@ModelAttribute("notebookForm") NotebookForm notebookForm) { return "notebook/addnew"; @@ -238,8 +237,8 @@ /** * */ - @RequestMapping(path="/updateEntry") - public String updateEntry(@ModelAttribute ("notebookForm") NotebookForm notebookForm, HttpServletRequest request) + @RequestMapping(path = "/updateEntry") + public String updateEntry(@ModelAttribute("notebookForm") NotebookForm notebookForm, HttpServletRequest request) throws IOException, ServletException { Long uid = notebookForm.getUid(); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/LogLessonMarkPushedToIntegrationsServlet.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/LogLessonMarkPushedToIntegrationsServlet.java (.../LogLessonMarkPushedToIntegrationsServlet.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/LogLessonMarkPushedToIntegrationsServlet.java (.../LogLessonMarkPushedToIntegrationsServlet.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -70,7 +70,8 @@ } //log mark has been successfullly pushed to the integrated server - logEventService.logEvent(LogEvent.TYPE_LEARNER_LESSON_MARK_SUBMIT, user.getUserID(), null, lessonID, null, "ADD COMMENT HERE"); + logEventService.logEvent(LogEvent.TYPE_LEARNER_LESSON_MARK_SUBMIT, user.getUserID(), null, lessonID, null, + "ADD COMMENT HERE"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/RepopulateProgressMarksServlet.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/RepopulateProgressMarksServlet.java (.../RepopulateProgressMarksServlet.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/servlet/RepopulateProgressMarksServlet.java (.../RepopulateProgressMarksServlet.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -146,7 +146,8 @@ msg = new StringBuilder(header).append("Successful run, no errors\n").append(auditLogBuilder.toString()) .toString(); } - logEventService.logEvent(LogEvent.TYPE_MARK_UPDATED, userDTO != null ? userDTO.getUserID() : null, null, lessonId, null, msg); + logEventService.logEvent(LogEvent.TYPE_MARK_UPDATED, userDTO != null ? userDTO.getUserID() : null, null, + lessonId, null, msg); out.println(msg); return; } @@ -182,7 +183,7 @@ public ActivitiesToCheckProcessor(LearningDesign design, IActivityDAO activityDAO) { super(design, activityDAO); - activityList = new ArrayList(); + activityList = new ArrayList<>(); } @Override Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java =================================================================== diff -u -r417b301a93d0e3b232370eef325b15a0642a8f8c -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 417b301a93d0e3b232370eef325b15a0642a8f8c) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -87,14 +87,7 @@ activity.getActivityId().toString()); } - if ((activity != null) && activity.isToolActivity()) { - // always use redirect false for a ToolActivity as ToolDisplayActivity - // does it's own redirect - forward = actionToForward(action, activity, false); - } else { - forward = actionToForward(action, activity, redirect); - } - + forward = actionToForward(action, activity, redirect); return forward; } @@ -243,8 +236,12 @@ * should the action be a client redirect * @return */ - protected String actionToForward(String action, Activity activity, boolean redirect) { - return redirect ? "redirect:" + ActivityMapping.actionToURL(action, activity, false) : "forward:" + action; +// protected String actionToForward(String action, Activity activity, boolean redirect) { +// return redirect ? "redirect:" + ActivityMapping.actionToURL(action, activity, false) : "forward:" + action; +// } + + protected String actionToForward(String action, Activity activity, boolean addParams) { + return "redirect:" + (addParams ? ActivityMapping.actionToURL(action, activity, false) : action); } /** @@ -353,4 +350,5 @@ return "DisplayActivity.do"; } } + } \ No newline at end of file Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java (.../ActivityMappingStrategy.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java (.../ActivityMappingStrategy.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -21,7 +21,6 @@ * **************************************************************** */ - package org.lamsfoundation.lams.learning.web.util; import java.io.Serializable; @@ -41,7 +40,7 @@ /** * Returns the struts action used to display the specified activity. - * + * * @param activity, * Activity to be displayed * @param progress, @@ -84,7 +83,7 @@ * Returns the struts action for triggering the window to close. */ protected String getCloseWindowAction() { - return "/close.do"; + return "../close.jsp"; } /** Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ParallelActivityMappingStrategy.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ParallelActivityMappingStrategy.java (.../ParallelActivityMappingStrategy.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ParallelActivityMappingStrategy.java (.../ParallelActivityMappingStrategy.java) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -21,7 +21,6 @@ * **************************************************************** */ - package org.lamsfoundation.lams.learning.web.util; import org.lamsfoundation.lams.learningdesign.Activity; @@ -35,7 +34,7 @@ /** * Returns the struts action used to display the specified activity. - * + * * @param activity, * Activity to be displayed * @param progress, Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/struts-config.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tiles-defs.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_learning/web/WEB-INF/tlds/lams/lams.tld =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f --- lams_learning/web/WEB-INF/tlds/lams/lams.tld (.../lams.tld) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_learning/web/WEB-INF/tlds/lams/lams.tld (.../lams.tld) (revision 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f) @@ -212,191 +212,6 @@ - - STRUTS-textarea - org.lamsfoundation.lams.web.tag.MultiLinesTextareaTag - empty - - accesskey - false - true - - - alt - false - true - - - altKey - false - true - - - bundle - false - true - - - cols - false - true - - - disabled - false - true - - - errorKey - false - true - - - errorStyle - false - true - - - errorStyleClass - false - true - - - errorStyleId - false - true - - - index - false - true - - - indexed - false - true - - - name - false - true - - - onblur - false - true - - - onchange - false - true - - - onclick - false - true - - - ondblclick - false - true - - - onfocus - false - true - - - onkeydown - false - true - - - onkeypress - false - true - - - onkeyup - false - true - - - onmousedown - false - true - - - onmousemove - false - true - - - onmouseout - false - true - - - onmouseover - false - true - - - onmouseup - false - true - - - property - true - true - - - readonly - false - true - - - rows - false - true - - - style - false - true - - - styleClass - false - true - - - styleId - false - true - - - tabindex - false - true - - - title - false - true - - - titleKey - false - true - - - value - false - true - - Small portrait of a user @@ -555,6 +370,7 @@ true + head /WEB-INF/tags/Head.tag Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-bean-el.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-bean.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-html-el.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-html.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-logic-el.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-logic.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-nested.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-tiles-el.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/tlds/struts/struts-tiles.tld'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/validation.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7e05bfe2c334b0b3224bbbdd3d6b7f10b383ee9f refers to a dead (removed) revision in file `lams_learning/web/WEB-INF/validator-rules.xml'. Fisheye: No comparison available. Pass `N' to diff?