Index: lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/util/GmapImageBundler.java =================================================================== diff -u --- lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/util/GmapImageBundler.java (revision 0) +++ lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/util/GmapImageBundler.java (revision 0aa67d8b53ae04b9389b95627dbb9608a2244ada) @@ -0,0 +1,85 @@ +package org.lamsfoundation.lams.tool.gmap.util; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.lamsfoundation.lams.learning.export.web.action.Bundler; +import org.lamsfoundation.lams.themes.CSSThemeVisualElement; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; + +import org.lamsfoundation.lams.themes.CSSThemeVisualElement; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.HttpUrlConnectionUtil; +import org.lamsfoundation.lams.web.filter.LocaleFilter; +import org.lamsfoundation.lams.tool.gmap.util.GmapConstants; + +/** + * Bundles the images for gmap in export portfolio + * @author lfoxton + * + */ +public class GmapImageBundler extends Bundler +{ + // list of images that need to be copied + static String[] GMAP_IMAGES = {"blue_Marker.png", "paleblue_Marker.png", + "red_Marker.png", "yellow_Marker.png", "tree_closed.gif", "tree_open.gif"}; + + public GmapImageBundler() {} + + public void bundle(HttpServletRequest request, Cookie[] cookies, String outputDirectory) throws GmapException + { + String gmapUrlPath = Configuration.get(ConfigurationKeys.SERVER_URL); + if ( gmapUrlPath == null ) { + log.error("Unable to get path to the LAMS Gmap URL from the configuration file - the exported portfolios will be missing parts of their Gmap images"); + } else { + gmapUrlPath = gmapUrlPath + "/tool/" + GmapConstants.TOOL_SIGNATURE + "/images/"; + try + { + bundleViaHTTP(request, cookies, outputDirectory, gmapUrlPath); + } + catch (Exception e) + { + log.error("Failed to copy gmap images for export portfolio", e); + throw new GmapException("Failed to copy gmap images for export portfolio", e); + } + + } + } + + + /** + * Bundles images by http + * + * @param outputDirectory + * @param request + * @param cookies + * @throws IOException + * @throws FileNotFoundException + * @throws MalformedURLException + */ + private void bundleViaHTTP(HttpServletRequest request, Cookie[] cookies, String outputDirectory, String gmapUrlPath) + throws MalformedURLException, FileNotFoundException, IOException { + + String gmapImagesDirStr = outputDirectory+File.separator+"gmap_images"; + File gmapImagesDir = new File(gmapImagesDirStr); + gmapImagesDir.mkdirs(); + + for (String image : GMAP_IMAGES) + { + String url = gmapUrlPath + image; + HttpUrlConnectionUtil.writeResponseToFile(url, gmapImagesDirStr, image , cookies); //cookies aren't really needed here. + + log.debug("Copying image from source: " + url + "to desitnation: " + gmapImagesDir.getAbsolutePath()); + } + } +} Index: lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/web/actions/ClearSessionAction.java =================================================================== diff -u -r9ed689d51b8f41ba820bd7e6be8e3253703096a8 -r0aa67d8b53ae04b9389b95627dbb9608a2244ada --- lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/web/actions/ClearSessionAction.java (.../ClearSessionAction.java) (revision 9ed689d51b8f41ba820bd7e6be8e3253703096a8) +++ lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/web/actions/ClearSessionAction.java (.../ClearSessionAction.java) (revision 0aa67d8b53ae04b9389b95627dbb9608a2244ada) @@ -31,7 +31,7 @@ /** * This class give a chance to clear HttpSession when user save/close authoring page. - * @author Steve.Ni + * @author lfoxton * ----------------XDoclet Tags-------------------- * * @struts:action path="/clearsession" validate="false" @@ -42,9 +42,14 @@ @Override public void clearSession(String customiseSessionID,HttpSession session, ToolAccessMode mode) { + if(mode.isAuthor()){ session.removeAttribute(customiseSessionID); } + + if (mode.isTeacher()){ + + } } Index: lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/web/servlets/ExportServlet.java =================================================================== diff -u -rfb0eec778efbbc27bfbd1fb926b91bc2f10e6860 -r0aa67d8b53ae04b9389b95627dbb9608a2244ada --- lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision fb0eec778efbbc27bfbd1fb926b91bc2f10e6860) +++ lams_tool_gmap/src/java/org/lamsfoundation/lams/tool/gmap/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 0aa67d8b53ae04b9389b95627dbb9608a2244ada) @@ -41,6 +41,7 @@ import org.lamsfoundation.lams.tool.gmap.service.IGmapService; import org.lamsfoundation.lams.tool.gmap.service.GmapServiceProxy; import org.lamsfoundation.lams.tool.gmap.util.GmapException; +import org.lamsfoundation.lams.tool.gmap.util.GmapImageBundler; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; import org.lamsfoundation.lams.web.session.SessionManager; @@ -81,8 +82,15 @@ logger.error("Cannot perform export for gmap tool."); } + + + String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath(); + + GmapImageBundler imageBundler = new GmapImageBundler(); + imageBundler.bundle(request, cookies, directoryName); + writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", directoryName, FILENAME, cookies); Index: lams_tool_gmap/web/pages/export/exportPortfolio.jsp =================================================================== diff -u -re9a8f2cad81f7c3ac4c25b19b53740237de3191a -r0aa67d8b53ae04b9389b95627dbb9608a2244ada --- lams_tool_gmap/web/pages/export/exportPortfolio.jsp (.../exportPortfolio.jsp) (revision e9a8f2cad81f7c3ac4c25b19b53740237de3191a) +++ lams_tool_gmap/web/pages/export/exportPortfolio.jsp (.../exportPortfolio.jsp) (revision 0aa67d8b53ae04b9389b95627dbb9608a2244ada) @@ -15,21 +15,13 @@