package com.psddev.cms.tool.page; import java.io.IOException; import java.util.Map; import java.util.UUID; import javax.servlet.ServletException; import com.psddev.cms.db.ImageTag; import com.psddev.cms.db.StandardImageSize; import com.psddev.cms.tool.PageServlet; import com.psddev.cms.tool.ToolPageContext; import com.psddev.dari.db.Query; import com.psddev.dari.db.State; import com.psddev.dari.util.ObjectMap; import com.psddev.dari.util.ObjectUtils; import com.psddev.dari.util.RoutingFilter; import com.psddev.dari.util.StorageItem; @RoutingFilter.Path(application = "cms", value = "contentImages") public class ContentImages extends PageServlet { private static final long serialVersionUID = 1L; @Override protected String getPermissionId() { return null; } @Override protected void doService(final ToolPageContext page) throws IOException, ServletException { String imageJsonString = page.param(String.class, "data"); StorageItem image; if (!ObjectUtils.isBlank(imageJsonString)) { Map<String, Object> imageJson = (Map<String, Object>) ObjectUtils.fromJson(imageJsonString); image = StorageItem.Static.createIn((String) imageJson.get("storage")); new ObjectMap(image).putAll(imageJson); } else { Object object = Query.fromAll().where("_id = ?", page.param(UUID.class, "id")).first(); image = (StorageItem) State.getInstance(object).get(page.param(String.class, "field")); } page.writeHeader(); page.writeStart("div", "class", "widget"); page.writeStart("h1", "class", "icon icon-crop"); page.writeHtml(page.localize(ContentImages.class, "title")); page.writeEnd(); page.writeStart("select", "class", "toggleable", "data-root", ".widget", "style", page.cssString( "margin-bottom", "10px")); for (StandardImageSize size : StandardImageSize.findAll()) { page.writeStart("option", "data-hide", ".resizedImage", "data-show", ".resizedImage-" + size.getInternalName()); page.writeHtml(size.getDisplayName()); page.writeEnd(); } page.writeEnd(); for (StandardImageSize size : StandardImageSize.findAll()) { String url = new ImageTag.Builder(image).setStandardImageSize(size).toUrl(); page.writeStart("div", "class", "resizedImage resizedImage-" + size.getInternalName()); page.writeElement("img", "src", url, "style", page.cssString( "max-width", "100%")); page.writeElement("br"); page.writeStart("textarea", "class", "code", "data-expandable-class", "code", "readonly", "readonly", "onclick", "this.select();"); page.writeHtml(url); page.writeEnd(); page.writeEnd(); } page.writeEnd(); page.writeFooter(); } }