package com.psddev.cms.tool.page; import com.psddev.cms.tool.PageServlet; import com.psddev.cms.tool.SearchResultSelection; import com.psddev.cms.tool.ToolPageContext; import com.psddev.dari.db.Query; import com.psddev.dari.util.RoutingFilter; import javax.servlet.ServletException; import java.io.IOException; @RoutingFilter.Path(application = "cms", value = "toolUserSaveSelection") public class ToolUserSaveSelection extends PageServlet { private static final long serialVersionUID = 1L; @Override protected String getPermissionId() { return null; } @Override protected void doService(ToolPageContext page) throws IOException, ServletException { String selectionId = page.param(String.class, "selectionId"); if (selectionId == null) { throw new IllegalArgumentException("[selectionId] is required!"); } SearchResultSelection selection = (SearchResultSelection) Query.fromAll().where("_id = ?", selectionId).first(); if (selection == null) { throw new IllegalArgumentException("Could not find a Collection/SearchResultSelection for selectionId " + selectionId); } if (page.isFormPost()) { page.updateUsingParameters(selection); selection.save(); page.writeStart("div", "id", page.createId()); page.writeEnd(); page.writeStart("script", "type", "text/javascript"); page.writeRaw("$('#").writeRaw(page.getId()).writeRaw("').popup('close');"); page.writeRaw("$('#").writeRaw(page.getId()).writeRaw("').popup('source').closest('.frame').find('.reload').click();"); page.writeEnd(); return; } page.writeHeader(); page.writeStart("div", "class", "widget"); page.writeStart("h1", "class", "icon icon-action-search"); page.writeHtml(page.localize(ToolUserSaveSelection.class, "title")); page.writeEnd(); page.writeStart("form", "method", "post", "action", page.url("")); page.writeFormFields(selection); page.writeStart("div", "class", "actions"); page.writeStart("button", "class", "action icon icon-action-save"); page.writeHtml(page.localize(ToolUserSaveSelection.class, "action.save")); page.writeEnd(); page.writeEnd(); page.writeEnd(); page.writeFooter(); } }