1 package de.tivsource.page.admin.actions.locations.reason;
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.property.PropertyDaoLocal;
18 import de.tivsource.page.dao.reason.ReasonDaoLocal;
19 import de.tivsource.page.entity.enumeration.Language;
20 import de.tivsource.page.entity.request.Reason;
21
22
23
24
25
26
27 @TilesDefinitions({
28 @TilesDefinition(name="reasonEditForm", extend = "adminTemplate", putAttributes = {
29 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
30 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
31 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/reason/edit_form.jsp")
32 }),
33 @TilesDefinition(name="reasonEditError", extend = "adminTemplate", putAttributes = {
34 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
35 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/reason/edit_error.jsp")
36 })
37 })
38 public class EditAction extends EmptyAction {
39
40
41
42
43 private static final long serialVersionUID = 3868709731406017338L;
44
45
46
47
48 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
49
50 @InjectEJB(name="ReasonDao")
51 private ReasonDaoLocal reasonDaoLocal;
52
53 @InjectEJB(name="PropertyDao")
54 private PropertyDaoLocal propertyDaoLocal;
55
56 private Reason reason;
57
58 private String lang;
59
60
61
62
63 public Reason getReason() {
64 return reason;
65 }
66
67
68
69
70 public void setReason(Reason reason) {
71 this.reason = reason;
72 }
73
74 public String getLang() {
75 return lang;
76 }
77
78 public void setLang(String lang) {
79 this.lang = lang;
80 }
81
82 @Override
83 public void prepare() {
84 super.prepare();
85 }
86
87 @Override
88 @Actions({
89 @Action(
90 value = "edit",
91 results = {
92 @Result(name = "success", type = "redirectAction", location = "index.html"),
93 @Result(name = "input", type = "tiles", location = "reasonEditForm"),
94 @Result(name = "error", type = "tiles", location = "reasonEditError")
95 }
96 )
97 })
98 public String execute() throws Exception {
99 LOGGER.info("execute() aufgerufen.");
100
101 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
102 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
103
104 if(reason != null) {
105 LOGGER.info("UUID der FeedbackOption: " + reason.getUuid());
106 Reason dbReason = reasonDaoLocal.findByUuid(reason.getUuid());
107
108 if(lang.contentEquals(new StringBuffer("EN"))) {
109 reason.getDescriptionMap().put(Language.DE, dbReason.getDescriptionObject(Language.DE));
110 String noLineBreaks = reason.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
111 dbReason.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
112 dbReason.getDescriptionMap().get(Language.EN).setKeywords(reason.getDescriptionObject(Language.EN).getKeywords());
113 dbReason.getDescriptionMap().get(Language.EN).setName(reason.getDescriptionObject(Language.EN).getName());
114 } else {
115 String noLineBreaks = reason.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
116 dbReason.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
117 dbReason.getDescriptionMap().get(Language.DE).setKeywords(reason.getDescriptionObject(Language.DE).getKeywords());;
118 dbReason.getDescriptionMap().get(Language.DE).setName(reason.getDescriptionObject(Language.DE).getName());
119 }
120
121 dbReason.setOrderNumber(reason.getOrderNumber());
122 dbReason.setModifiedAddress(remoteAddress);
123 dbReason.setModified(new Date());
124 dbReason.setModifiedBy(remoteUser);
125 dbReason.setVisible(reason.getVisible());
126 dbReason.setTechnical(reason.getTechnical());
127
128 reasonDaoLocal.merge(dbReason);
129 return SUCCESS;
130 }
131 else {
132 return ERROR;
133 }
134
135 }
136
137 }