1 package de.tivsource.page.admin.actions.locations.reason;
2
3 import java.util.Date;
4 import java.util.UUID;
5
6 import org.apache.logging.log4j.LogManager;
7 import org.apache.logging.log4j.Logger;
8 import org.apache.struts2.ServletActionContext;
9 import org.apache.struts2.convention.annotation.Action;
10 import org.apache.struts2.convention.annotation.Actions;
11 import org.apache.struts2.convention.annotation.Result;
12 import org.apache.struts2.tiles.annotation.TilesDefinition;
13 import org.apache.struts2.tiles.annotation.TilesDefinitions;
14 import org.apache.struts2.tiles.annotation.TilesPutAttribute;
15
16 import de.tivsource.ejb3plugin.InjectEJB;
17 import de.tivsource.page.admin.actions.EmptyAction;
18 import de.tivsource.page.dao.reason.ReasonDaoLocal;
19 import de.tivsource.page.entity.enumeration.Language;
20 import de.tivsource.page.entity.namingitem.Description;
21 import de.tivsource.page.entity.request.Reason;
22
23
24
25
26
27
28 @TilesDefinitions({
29 @TilesDefinition(name="reasonAddForm", extend = "adminTemplate", putAttributes = {
30 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
31 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
32 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/reason/add_form.jsp")
33 }),
34 @TilesDefinition(name="reasonAddError", extend = "adminTemplate", putAttributes = {
35 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
36 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/reason/add_error.jsp")
37 })
38 })
39 public class AddAction extends EmptyAction {
40
41
42
43
44 private static final long serialVersionUID = 6475518811127973831L;
45
46
47
48
49 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
50
51 @InjectEJB(name="ReasonDao")
52 private ReasonDaoLocal reasonDaoLocal;
53
54 private Reason reason;
55
56
57
58
59 public Reason getReason() {
60 return reason;
61 }
62
63
64
65
66 public void setReason(Reason reason) {
67 this.reason = reason;
68 }
69
70 @Override
71 @Actions({
72 @Action(
73 value = "add",
74 results = {
75 @Result(name = "success", type = "redirectAction", location = "index.html"),
76 @Result(name = "input", type="tiles", location = "reasonAddForm"),
77 @Result(name = "error", type="tiles", location = "reasonAddError")
78 }
79 )
80 })
81 public String execute() throws Exception {
82 LOGGER.info("execute() aufgerufen.");
83
84 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
85 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
86
87 if(reason != null) {
88 reason.setUuid(UUID.randomUUID().toString());
89 reason.setModified(new Date());
90 reason.setCreated(new Date());
91 reason.setModifiedBy(remoteUser);
92 reason.setModifiedAddress(remoteAddress);
93
94 reason.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
95 reason.getDescriptionMap().get(Language.DE).setNamingItem(reason);
96 reason.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
97 String noLineBreaks = reason.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
98 reason.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
99
100
101 Description descriptionEN = new Description();
102 descriptionEN.setUuid(UUID.randomUUID().toString());
103 descriptionEN.setNamingItem(reason);
104 descriptionEN.setLanguage(Language.EN);
105 descriptionEN.setDescription(reason.getDescriptionMap().get(Language.DE).getDescription());
106 descriptionEN.setKeywords(reason.getDescriptionMap().get(Language.DE).getKeywords());
107 descriptionEN.setName(reason.getDescriptionMap().get(Language.DE).getName());
108 reason.getDescriptionMap().put(Language.EN, descriptionEN);
109
110 reasonDaoLocal.merge(reason);
111
112 return SUCCESS;
113 }
114 else {
115 return ERROR;
116 }
117
118
119 }
120
121 }