package com.psddev.cms.tool.page.content.edit;
import com.google.common.base.Preconditions;
import com.psddev.cms.db.Draft;
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.ObjectUtils;
import com.psddev.dari.util.RoutingFilter;
import com.psddev.dari.util.StringUtils;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.UUID;
@RoutingFilter.Path(application = "cms", value = "/content/edit/new-draft")
public class NewDraft extends PageServlet {
@Override
protected String getPermissionId() {
return null;
}
@Override
protected void doService(ToolPageContext page) throws IOException, ServletException {
State state = State.getInstance(Preconditions.checkNotNull(Query
.fromAll()
.where("_id = ?", page.param(UUID.class, "id"))
.first()));
String name = page.param(String.class, "name");
boolean error = false;
if (page.isFormPost()) {
if (!ObjectUtils.isBlank(name)) {
Draft draft = new Draft();
draft.setName(name);
draft.setOwner(page.getUser());
draft.setObjectType(state.getType());
draft.setObjectId(state.getId());
page.publish(draft);
page.writeStart("script", "type", "text/javascript");
page.writeRaw("window.location = '");
page.writeRaw(StringUtils.escapeJavaScript(page.cmsUrl(
"/content/edit.jsp",
"id", state.getId(),
"draftId", draft.getId())));
page.writeRaw("';");
page.writeEnd();
return;
} else {
error = true;
}
}
page.writeHeader();
page.writeStart("div", "class", "widget");
page.writeStart("h1");
page.writeHtml(page.localize(Draft.class, "action.newType"));
page.writeEnd();
if (error) {
page.writeStart("div", "class", "message message-error");
page.writeHtml("Name is required!");
page.writeEnd();
}
page.writeStart("form", "method", "post", "action", page.url(""));
page.writeStart("div", "class", "inputContainer");
page.writeStart("div", "class", "inputLabel");
page.writeStart("label", "for", page.createId());
page.writeHtml("Name");
page.writeEnd();
page.writeEnd();
page.writeStart("div", "class", "inputSmall");
page.writeElement("input",
"type", "text",
"id", page.getId(),
"name", "name",
"placeholder", "(Required)",
"value", name);
page.writeEnd();
page.writeEnd();
page.writeStart("div", "class", "actions");
page.writeStart("button");
page.writeHtml("Create");
page.writeEnd();
page.writeEnd();
page.writeEnd();
page.writeEnd();
page.writeFooter();
}
}