Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java =================================================================== diff -u -rab215784681cde07a197bf4c94d349ffa8b4f751 -re0d5332ce37af3581780bd93b6a5730a32c97c31 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java (.../MainExportServlet.java) (revision ab215784681cde07a197bf4c94d349ffa8b4f751) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java (.../MainExportServlet.java) (revision e0d5332ce37af3581780bd93b6a5730a32c97c31) @@ -33,14 +33,18 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; +import java.io.FileOutputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.lang.StringBuffer; import java.net.MalformedURLException; +import java.util.Iterator; +import java.util.List; + import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -51,6 +55,7 @@ import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.CSSThemeUtil; import org.lamsfoundation.lams.util.HttpUrlConnectionUtil; import org.lamsfoundation.lams.util.FileUtil; import org.lamsfoundation.lams.util.FileUtilException; @@ -64,15 +69,20 @@ import org.lamsfoundation.lams.learning.export.service.IExportPortfolioService; import org.lamsfoundation.lams.learning.export.service.ExportPortfolioService; import org.lamsfoundation.lams.learning.export.service.ExportPortfolioServiceProxy; +import org.lamsfoundation.lams.learning.service.ILearnerService; +import org.lamsfoundation.lams.learning.service.LearnerServiceProxy; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.themes.CSSThemeVisualElement; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; +import org.apache.struts.util.MessageResources; + /** * @author mtruong * @@ -90,6 +100,7 @@ private static Logger log = Logger.getLogger(MainExportServlet.class); private String exportTmpDir; + private MessageResources resources = MessageResources.getMessageResources(ExportPortfolioConstants.MESSAGE_RESOURCE_CONFIG_PARAM); @@ -103,11 +114,14 @@ String htmlOutput=null; Portfolio portfolios = null; + Long lessonID = null; + String lessonDescription = null; /** Get the cookies that were sent along with this request, then pass it onto export service */ Cookie[] cookies = request.getCookies(); IExportPortfolioService exportService = ExportPortfolioServiceProxy.getExportPortfolioService(this.getServletContext()); + ILearnerService learnerService = LearnerServiceProxy.getLearnerService(this.getServletContext()); String mode = WebUtil.readStrParam(request, AttributeNames.PARAM_MODE); @@ -116,32 +130,37 @@ HttpSession session = SessionManager.getSession(); UserDTO userDto = (UserDTO)session.getAttribute(AttributeNames.USER); Integer userId = userDto.getUserID(); - - Long lessonID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID)); + lessonID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID)); portfolios = exportService.exportPortfolioForStudent(userId, lessonID, true, cookies); } else if(mode.equals(ToolAccessMode.TEACHER.toString())) { //done in the monitoring environment - Long lessonID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID)); - + lessonID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_LESSON_ID)); portfolios = exportService.exportPortfolioForTeacher(lessonID, cookies); } + Lesson lesson = learnerService.getLesson(lessonID); + if (lesson != null) + lessonDescription = lesson.getLessonDescription(); + if (portfolios!= null) { exportTmpDir = portfolios.getExportTmpDir(); String mainFileName = exportTmpDir+ File.separator + ExportPortfolioConstants.MAIN_EXPORT_FILENAME; - htmlOutput = generateMainPage(portfolios); + htmlOutput = generateMainPage(portfolios, lessonDescription); //writing the file to the temp export folder. BufferedWriter fileout = new BufferedWriter(new FileWriter(mainFileName)); fileout.write(htmlOutput); - fileout.close(); + fileout.close(); + //bundle the stylesheet with the package + bundleStylesheetWithExportPackage(exportTmpDir, request, cookies); + //zip up the contents of the temp export folder String zipFilename = exportService.zipPortfolio(ExportPortfolioConstants.ZIP_FILENAME, exportTmpDir); @@ -161,37 +180,30 @@ * @param portfolios * @return */ - private String generateMainPage(Portfolio portfolio) + private String generateMainPage(Portfolio portfolio, String lessonDescriptionToDisplay) { ToolPortfolio[] portfolios = portfolio.getToolPortfolios(); - StringBuffer htmlPage = new StringBuffer(); + String htmlPage; if (portfolios != null) { - - htmlPage.append("