package com.psddev.cms.tool.page; import java.io.IOException; import javax.servlet.ServletException; import com.psddev.cms.tool.PageServlet; import com.psddev.cms.tool.ToolPageContext; import com.psddev.dari.util.RoutingFilter; import com.psddev.dari.util.StringUtils; @RoutingFilter.Path(application = "cms", value = "/content/externalPreview") @SuppressWarnings("serial") public class ContentExternalPreview extends PageServlet { @Override protected String getPermissionId() { return null; } @Override protected void doService(final ToolPageContext page) throws IOException, ServletException { String frameId = page.createId(); page.writeHeader(); page.writeStart("div", "class", "widget"); page.writeStart("h1", "class", "icon icon-action-preview"); page.writeHtml(page.localize(ContentExternalPreview.class, "title")); page.writeEnd(); page.writeStart("iframe", "id", frameId, "scrolling", "no", "src", page.cmsUrl("/content/externalPreviewFrame", "url", page.param(String.class, "url")), "style", page.cssString( "border-style", "none", "width", "100%")); page.writeEnd(); page.writeStart("script", "type", "text/javascript"); page.writeRaw("(function(window, undefined) {"); page.writeRaw("setInterval(function() {"); page.writeRaw("var f = $('#"); page.writeRaw(StringUtils.escapeJavaScript(frameId)); page.writeRaw("')[0];"); page.writeRaw("f.style.height = f.contentDocument.body.scrollHeight + 'px';"); page.writeRaw("}, 500);"); page.writeRaw("})(window);"); page.writeEnd(); page.writeEnd(); page.writeFooter(); } }