package com.psddev.cms.tool.page; import java.io.IOException; import java.util.UUID; import javax.servlet.ServletException; 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.PaginatedResult; import com.psddev.dari.util.RoutingFilter; @RoutingFilter.Path(application = "cms", value = "/adminTrash") @SuppressWarnings("serial") public class AdminTrash extends PageServlet { @Override protected String getPermissionId() { return "area/admin/trash"; } @Override protected void doService(ToolPageContext page) throws IOException, ServletException { Object trash = Query .from(Object.class) .where("_id = ?", page.param(UUID.class, "id")) .first(); if (page.tryStandardUpdate(trash)) { return; } PaginatedResult<Object> trashes = Query .from(Object.class) .where("cms.content.trashed = true") .sortDescending("cms.content.updateDate") .select(page.param(long.class, "offset"), page.paramOrDefault(int.class, "limit", 10)); page.writeHeader(); page.writeStart("div", "class", "withLeftNav"); page.writeStart("div", "class", "leftNav"); page.writeStart("div", "class", "widget"); page.writeStart("h1", "class", "icon icon-action-trash"); page.writeHtml(page.localize(AdminTrash.class, "title")); page.writeEnd(); if (trashes.getOffset() + trashes.getItems().size() <= 0) { page.writeStart("div", "class", "message message-info"); page.writeHtml(page.localize(AdminTrash.class, "message.noTrash")); page.writeEnd(); } else { if (trashes.hasPrevious() || trashes.hasNext()) { page.writeStart("ul", "class", "pagination"); if (trashes.hasPrevious()) { page.writeStart("li", "class", "paginationPrevious"); page.writeStart("a", "href", page.url("", "offset", trashes.getPreviousOffset())); page.writeHtml(page.localize(AdminTrash.class, "pagination.newer")); page.writeEnd(); page.writeEnd(); } if (trashes.hasNext()) { page.writeStart("li", "class", "paginationNext"); page.writeStart("a", "href", page.url("", "offset", trashes.getNextOffset())); page.writeHtml(page.localize(AdminTrash.class, "pagination.older")); page.writeEnd(); page.writeEnd(); } page.writeEnd(); } page.writeStart("ul", "class", "links"); for (Object item : trashes.getItems()) { State itemState = State.getInstance(item); page.writeStart("li", "class", item.equals(trash) ? "selected" : null); page.writeStart("a", "href", page.url(null, "id", itemState.getId())); page.writeHtml(page.getObjectLabelOrDefault( itemState, page.localize(AdminTrash.class, "label.untitled"))); page.writeEnd(); page.writeEnd(); } page.writeEnd(); } page.writeEnd(); page.writeEnd(); if (trash != null) { page.writeStart("div", "class", "main"); page.writeStart("div", "class", "widget"); page.writeStandardForm(trash); page.writeEnd(); page.writeEnd(); } page.writeEnd(); page.writeFooter(); } }