/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.adminweb; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.dom.DOMSource; import com.enonic.esl.containers.ExtendedMap; import com.enonic.esl.xml.XMLTool; import com.enonic.cms.core.content.ContentEntity; import com.enonic.cms.core.content.ContentKey; import com.enonic.cms.core.service.AdminService; public class FramesetServlet extends AdminHandlerBaseServlet { public void handlerCustom( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems, String operation ) throws VerticalAdminException { try { DOMSource xmlSource = new DOMSource( XMLTool.createDocument( "foo" ) ); Source xslSource = AdminStore.getStylesheet( session, "frameset.xsl" ); // Parameters ExtendedMap parameters = new ExtendedMap(); String mainframe = request.getParameter( "mainframe" ); if ( mainframe != null && mainframe.length() > 0 ) { parameters.put( "mainframe", mainframe ); } if ( formItems.containsKey( "selectedmenukey" ) ) { String selectedMenuKey = formItems.getString( "selectedmenukey" ); session.setAttribute( "selectedmenukey", selectedMenuKey ); parameters.put( "selectedmenukey", selectedMenuKey ); } parameters.put( "rightframe", formItems.getString( "rightframe", "" ) ); parameters.put( "referer", formItems.getString( "referer", "" ) ); parameters.put( "user-agent", request.getHeader( "user-agent" ) ); //ren: Lagt til for VS-1970 //legge editContent p� sesjon //fjerne editContent fra url //redirect Integer editContent = formItems.getInt( "editContent", -1 ); if ( editContent > -1 ) { session.setAttribute( "editContent", editContent ); formItems.remove( "editContent" ); redirectClientToAdminPath( "adminpage", formItems, request, response ); return; } //neste request //sjekke om editContent finnes p� sesjon //hente contentKey //hente categoryKey og selectedunitkey via api //fjerne fra sesjon //sende editContent inn i transformasjon som parameter editContent = (Integer) session.getAttribute( "editContent" ); if ( editContent != null && editContent > -1 ) { assert ( contentDao != null ); ContentEntity entity = contentDao.findByKey( new ContentKey( editContent ) ); int categoryKey = entity.getCategory().getKey().toInt(); int selectedUnitKey = entity.getCategory().getUnitExcludeDeleted().getKey().toInt(); int contentTypeKey = entity.getContentType().getKey(); parameters.put( "rightframe", "adminpage?page=" + ( contentTypeKey + 999 ) + "&op=form&key=" + editContent + "&cat=" + categoryKey + "&selectedunitkey=" + selectedUnitKey ); parameters.put( "referer", formItems.getString( "referer", "adminpage?mainmenu=true&op=browse&page=" + ( contentTypeKey + 999 ) + "&categorykey=" + categoryKey ) ); session.removeAttribute( "editContent" ); } //end: VS-1970 transformXML( session, response.getWriter(), xmlSource, xslSource, parameters ); } catch ( TransformerException e ) { VerticalAdminLogger.errorAdmin( "XSLT error.", e ); } catch ( IOException e ) { VerticalAdminLogger.errorAdmin( "I/O error.", e ); } } }