/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.adminweb.handlers; import java.io.IOException; import javax.mail.MessagingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.xml.transform.TransformerException; import org.springframework.beans.factory.annotation.Autowired; import org.w3c.dom.Document; import com.enonic.esl.containers.ExtendedMap; import com.enonic.esl.xml.XMLTool; import com.enonic.vertical.adminweb.VerticalAdminException; import com.enonic.vertical.adminweb.handlers.xmlbuilders.ContentFileXMLBuilder; import com.enonic.vertical.adminweb.wizard.Wizard; import com.enonic.vertical.engine.VerticalEngineException; import com.enonic.cms.core.security.user.User; import com.enonic.cms.core.service.AdminService; public class ContentFileHandlerServlet extends ContentBaseHandlerServlet { private static final String WIZARD_IMPORT_FILES = "wizardconfig_import_files.xml"; public ContentFileHandlerServlet() { super(); FORM_XSL = "file_form.xsl"; } @Autowired public void setContentFileXMLBuilder( final ContentFileXMLBuilder builder ) { setContentXMLBuilder( builder ); } public void handlerCustom( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems, String operation, ExtendedMap parameters, User user, Document verticalDoc ) throws VerticalAdminException, VerticalEngineException, MessagingException, IOException { if ( operation.equals( "insert" ) ) { int categoryKey = formItems.getInt( "cat" ); int unitKey = admin.getUnitKey( categoryKey ); int page = formItems.getInt( "page" ); ExtendedMap xslParams = new ExtendedMap(); xslParams.put( "page", String.valueOf( page ) ); Document newDoc = admin.getContent( user, Integer.parseInt( formItems.getString( "key" ) ), 0, 1, 0 ).getAsDOMDocument(); if ( newDoc != null ) { String filename = XMLTool.getElementText( newDoc, "/contents/content/contentdata/name" ); int index = filename.lastIndexOf( "." ); if ( index != -1 ) { String filetype = filename.substring( index + 1 ).toLowerCase(); if ( "swf".equals( filetype ) ) { xslParams.put( "flash", "true" ); } else if ( "jpg".equals( filetype ) || "jpeg".equals( filetype ) || "png".equals( filetype ) || "gif".equals( filetype ) ) { xslParams.put( "image", "true" ); } } } Document xmlCategory = admin.getSuperCategoryNames( categoryKey, false, true ).getAsDOMDocument(); XMLTool.mergeDocuments( newDoc, xmlCategory, true ); addCommonParameters( admin, user, request, xslParams, unitKey, -1 ); if ( formItems.containsKey( "subop" ) ) { xslParams.put( "subop", formItems.getString( "subop" ) ); } transformXML( request, response, newDoc, "editor/" + "contentpopup_selected.xsl", xslParams ); } else { super.handlerCustom( request, response, session, admin, formItems, operation, parameters, user, verticalDoc ); } } public void handlerWizard( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems, ExtendedMap parameters, User user, String wizardName ) throws VerticalAdminException, VerticalEngineException, TransformerException, IOException, MessagingException { if ( "import".equals( wizardName ) ) { Wizard importFilesWizard = Wizard.getInstance( admin, applicationContext, this, session, formItems, WIZARD_IMPORT_FILES ); importFilesWizard.processRequest( request, response, session, admin, formItems, parameters, user ); } else { super.handlerWizard( request, response, session, admin, formItems, parameters, user, wizardName ); } } }