Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rdc3b782e2ebfe50683d1041c95790e32f4fee528 -r3e663c2c75e25bd2f8609488f052c0b34a67d5db Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/outcome/OutcomeAction.java =================================================================== diff -u -r5637d8bff3d19e970c3c9aa92a5895b4897f9cef -r3e663c2c75e25bd2f8609488f052c0b34a67d5db --- lams_central/src/java/org/lamsfoundation/lams/web/outcome/OutcomeAction.java (.../OutcomeAction.java) (revision 5637d8bff3d19e970c3c9aa92a5895b4897f9cef) +++ lams_central/src/java/org/lamsfoundation/lams/web/outcome/OutcomeAction.java (.../OutcomeAction.java) (revision 3e663c2c75e25bd2f8609488f052c0b34a67d5db) @@ -460,7 +460,33 @@ response.getWriter().print("OK"); return null; } + + public ActionForward outcomeExport(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + UserDTO user = getUserDTO(); + getSecurityService().isSysadmin(user.getUserID(), "export outcomes", true); + LinkedHashMap dataToExport = getOutcomeService().exportOutcomes(); + + String fileName = "lams_outcomes.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); + + // Code to generate file and write file contents to response + ServletOutputStream out = response.getOutputStream(); + ExcelUtil.createExcel(out, dataToExport, getMessageService().getMessage("outcome.export.date"), true); + + return null; + } + public ActionForward scaleManage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Integer userId = getUserDTO().getUserID(); Index: lams_central/web/includes/javascript/outcome.js =================================================================== diff -u -r5637d8bff3d19e970c3c9aa92a5895b4897f9cef -r3e663c2c75e25bd2f8609488f052c0b34a67d5db --- lams_central/web/includes/javascript/outcome.js (.../outcome.js) (revision 5637d8bff3d19e970c3c9aa92a5895b4897f9cef) +++ lams_central/web/includes/javascript/outcome.js (.../outcome.js) (revision 3e663c2c75e25bd2f8609488f052c0b34a67d5db) @@ -68,7 +68,7 @@ document.getElementById("scaleForm"); } -function exportScale(){ +function exportOutcome(isScaleExport){ var exportButton = $('#exportButton').button('loading'), token = new Date().getTime(), fileDownloadCheckTimer = window.setInterval(function () { @@ -80,6 +80,6 @@ exportButton.button('reset'); } }, 1000); - document.location.href = LAMS_URL + 'outcome.do?method=scaleExport&downloadTokenValue=' + token; + document.location.href = LAMS_URL + 'outcome.do?method=' + (isScaleExport ? 'scaleExport' : 'outcomeExport') + '&downloadTokenValue=' + token; return false; } \ No newline at end of file Index: lams_central/web/outcome/outcomeManage.jsp =================================================================== diff -u -r846f7b4c76f01650ce4a2df946772bafc4228dcf -r3e663c2c75e25bd2f8609488f052c0b34a67d5db --- lams_central/web/outcome/outcomeManage.jsp (.../outcomeManage.jsp) (revision 846f7b4c76f01650ce4a2df946772bafc4228dcf) +++ lams_central/web/outcome/outcomeManage.jsp (.../outcomeManage.jsp) (revision 3e663c2c75e25bd2f8609488f052c0b34a67d5db) @@ -15,6 +15,7 @@ +