Package com.psddev.cms.tool.page

Source Code of com.psddev.cms.tool.page.InlineEditor

package com.psddev.cms.tool.page;

import java.io.IOException;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.psddev.cms.db.PageFilter;
import com.psddev.cms.db.ToolUser;
import com.psddev.cms.tool.AuthenticationFilter;
import com.psddev.cms.tool.CmsTool;
import com.psddev.cms.tool.ToolPageContext;
import com.psddev.dari.db.Query;
import com.psddev.dari.util.RoutingFilter;

@RoutingFilter.Path(application = "cms", value = "inlineEditor")
public class InlineEditor extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        ToolUser user = AuthenticationFilter.Static.getInsecureToolUser(request);

        if (user == null) {
            throw new IllegalStateException();
        }

        @SuppressWarnings("resource")
        ToolPageContext page = new ToolPageContext(getServletContext(), request, response);
        UUID mainId = page.param(UUID.class, "id");
        Object mainObject = Query.
                fromAll().
                where("_id = ?", mainId).
                first();

        if (mainObject == null) {
            throw new IllegalArgumentException(String.format(
                    "No object with ID! [%s]",
                    mainId));
        }

        page.getResponse().setContentType("text/html");

        page.writeHeader(null, false);
            page.writeStart("script", "type", "text/javascript");
                page.writeRaw("var CONTEXT_PATH = '");
                page.writeRaw(page.js(page.fullyQualifiedToolUrl(CmsTool.class, "/")));
                page.writeRaw("';");
            page.writeEnd();

            page.writeStart("style", "type", "text/css");
                page.writeCss(".toolBroadcast, .toolHeader, .toolBackground, .toolFooter", "display", "none");
                page.writeCss("body, .toolContent", "background", "transparent");
                page.writeCss("body", "margin-top", "75px !important");
                page.writeCss(".toolContent", "position", "static");
            page.writeEnd();

            if (PageFilter.Static.isInlineEditingAllContents(page.getRequest())) {
                page.writeStart("script",
                        "type", "text/javascript",
                        "src", page.cmsUrl("/script/inlineeditor.js"));
                page.writeEnd();
            }
        page.writeFooter();
    }
}
TOP

Related Classes of com.psddev.cms.tool.page.InlineEditor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.