package cms.controller.admin.template; import cms.controller.admin.AdminController; import cms.model.meta.TemplateEntityMeta; import cms.model.model.TemplateEntity; import cms.model.model.dto.TemplateDTO; import cms.model.service.ServiceException; import cms.model.service.TemplateService; import cms.util.GuiceUtil; import cms.util.Message; import cms.util.Messages; import com.google.appengine.api.datastore.Key; import org.slim3.controller.Navigation; public class DeleteController extends AdminController { private TemplateService templateService = GuiceUtil.getService(TemplateService.class); private TemplateEntityMeta templateMeta = TemplateEntityMeta.get(); @Override public Navigation run() throws Exception { requestScope("pageTitle", "Smazat šablonu"); if (param("submit") != null) { Key key = asKey(templateMeta.key); Long version = asLong(templateMeta.version); if (key == null || version == null) { Messages.setSessionMessage("Šablona neexistuje.", Message.ERROR); return redirect("/admin/template/"); } try { templateService.delete(key, version); } catch (ServiceException e) { Messages.setSessionMessage(e.getMessage(), Message.ERROR); return redirect("/admin/template/"); } Messages.setSessionMessage("Šablona byla smazána."); return redirect("/admin/template/"); } Key key = asKey(templateMeta.key); if (key == null) { Messages.setSessionMessage("Šablona neexistuje.", Message.ERROR); return redirect("/admin/template/"); } TemplateEntity templateEntity = templateService.getTemplate(key); TemplateDTO templateDTO = new TemplateDTO(templateEntity); requestScope("entity", templateDTO); requestScope("version", templateEntity.getVersion()); return forward("/cms/admin/template/delete.jsp"); } }