1 package de.tivsource.page.admin.actions.others.subsumption;
2
3 import java.util.Date;
4
5 import org.apache.logging.log4j.LogManager;
6 import org.apache.logging.log4j.Logger;
7 import org.apache.struts2.ServletActionContext;
8 import org.apache.struts2.convention.annotation.Action;
9 import org.apache.struts2.convention.annotation.Actions;
10 import org.apache.struts2.convention.annotation.Result;
11 import org.apache.struts2.tiles.annotation.TilesDefinition;
12 import org.apache.struts2.tiles.annotation.TilesDefinitions;
13 import org.apache.struts2.tiles.annotation.TilesPutAttribute;
14
15 import de.tivsource.ejb3plugin.InjectEJB;
16 import de.tivsource.page.admin.actions.EmptyAction;
17 import de.tivsource.page.dao.subsumption.SubsumptionDaoLocal;
18 import de.tivsource.page.entity.subsumption.Subsumption;
19
20
21
22
23
24
25 @TilesDefinitions({
26 @TilesDefinition(name="subsumptionDeleteForm", extend = "adminTemplate", putAttributes = {
27 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
28 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
29 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/subsumption/delete_form.jsp")
30 }),
31 @TilesDefinition(name="subsumptionDeleteError", extend = "adminTemplate", putAttributes = {
32 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
33 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
34 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/subsumption/delete_error.jsp")
35 }),
36 @TilesDefinition(name="subsumptionDatabaseError", extend = "adminTemplate", putAttributes = {
37 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
38 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
39 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/subsumption/database_error.jsp")
40 })
41 })
42 public class DeleteAction extends EmptyAction {
43
44
45
46
47 private static final long serialVersionUID = -6684036086884671212L;
48
49
50
51
52 private static final Logger LOGGER = LogManager.getLogger(DeleteAction.class);
53
54 @InjectEJB(name="SubsumptionDao")
55 private SubsumptionDaoLocal subsumptionDaoLocal;
56
57 private Subsumption subsumption;
58
59 public Subsumption getSubsumption() {
60 return subsumption;
61 }
62
63 public void setSubsumption(Subsumption subsumption) {
64 this.subsumption = subsumption;
65 }
66
67 @Override
68 @Actions({
69 @Action(
70 value = "delete",
71 results = {
72 @Result(name = "success", type = "redirectAction", location = "index.html"),
73 @Result(name = "input", type="tiles", location = "subsumptionDeleteForm"),
74 @Result(name = "error", type="tiles", location = "subsumptionDeleteError"),
75 @Result(name = "database", type="tiles", location = "subsumptionDatabaseError")
76 }
77 )
78 })
79 public String execute() throws Exception {
80 LOGGER.info("execute() aufgerufen.");
81
82 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
83 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
84
85 if(subsumption != null) {
86 Subsumption dbSubsumption = subsumptionDaoLocal.findByUuid(subsumption.getUuid());
87 if(!subsumptionDaoLocal.hasMenuEntry(dbSubsumption.getUuid())) {
88 dbSubsumption.setModified(new Date());
89 dbSubsumption.setModifiedBy(remoteUser);
90 dbSubsumption.setModifiedAddress(remoteAddress);
91 subsumptionDaoLocal.merge(dbSubsumption);
92 subsumptionDaoLocal.delete(dbSubsumption);
93 return SUCCESS;
94 } else {
95 return "database";
96 }
97 }
98 return ERROR;
99
100 }
101
102 }