1 package de.tivsource.page.admin.actions.others.manual;
2
3 import java.util.Date;
4 import java.util.List;
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
13 import de.tivsource.ejb3plugin.InjectEJB;
14 import de.tivsource.page.admin.actions.EmptyAction;
15 import de.tivsource.page.common.css.CSSGroup;
16 import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
17 import de.tivsource.page.dao.manual.ManualDaoLocal;
18 import de.tivsource.page.dao.picture.PictureDaoLocal;
19 import de.tivsource.page.dao.property.PropertyDaoLocal;
20 import de.tivsource.page.entity.enumeration.Language;
21 import de.tivsource.page.entity.manual.Manual;
22 import de.tivsource.page.entity.picture.Picture;
23
24
25
26
27
28
29 public class EditAction extends EmptyAction {
30
31
32
33
34 private static final long serialVersionUID = -8055397581589809541L;
35
36
37
38
39 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
40
41 @InjectEJB(name = "CSSGroupDao")
42 private CSSGroupDaoLocal cssGroupDaoLocal;
43
44 @InjectEJB(name="ManualDao")
45 private ManualDaoLocal manualDaoLocal;
46
47 @InjectEJB(name="PictureDao")
48 private PictureDaoLocal pictureDaoLocal;
49
50 @InjectEJB(name="PropertyDao")
51 private PropertyDaoLocal propertyDaoLocal;
52
53 private Manual manual;
54
55 private String lang;
56
57 private List<Picture> pictureList;
58
59 private List<CSSGroup> cssGroupList;
60
61 public Manual getManual() {
62 return manual;
63 }
64
65 public void setManual(Manual manual) {
66 this.manual = manual;
67 }
68
69 public String getLang() {
70 return lang;
71 }
72
73 public void setLang(String lang) {
74 this.lang = lang;
75 }
76
77 @Override
78 public void prepare() {
79 super.prepare();
80 pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.manual.picture").getValue());
81 cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
82 }
83
84 @Override
85 @Actions({
86 @Action(
87 value = "edit",
88 results = {
89 @Result(name = "success", type = "redirectAction", location = "index.html"),
90 @Result(name = "input", type = "tiles", location = "manualEditForm"),
91 @Result(name = "error", type = "tiles", location = "manualEditError")
92 }
93 )
94 })
95 public String execute() throws Exception {
96 LOGGER.info("execute() aufgerufen.");
97
98 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
99 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
100
101 if(manual != null) {
102 LOGGER.info("News UUID: " + manual.getUuid());
103 Manual dbManual = manualDaoLocal.findByUuid(manual.getUuid());
104
105
106 if(lang.contentEquals(new StringBuffer("EN"))) {
107 manual.getContentMap().put(Language.DE, dbManual.getContentObject(Language.DE));
108 dbManual.getContentMap().get(Language.EN).setContent(manual.getContent(Language.EN));
109 dbManual.getContentMap().get(Language.EN).setModified(new Date());
110
111 manual.getDescriptionMap().put(Language.DE, dbManual.getDescriptionObject(Language.DE));
112 String noLineBreaks = manual.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
113 dbManual.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
114 dbManual.getDescriptionMap().get(Language.EN).setKeywords(manual.getKeywords(Language.EN));
115 dbManual.getDescriptionMap().get(Language.EN).setName(manual.getName(Language.EN));
116 } else {
117 dbManual.getContentMap().get(Language.DE).setContent(manual.getContent(Language.DE));
118 dbManual.getContentMap().get(Language.DE).setModified(new Date());
119
120 String noLineBreaks = manual.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
121 dbManual.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
122 dbManual.getDescriptionMap().get(Language.DE).setKeywords(manual.getKeywords(Language.DE));;
123 dbManual.getDescriptionMap().get(Language.DE).setName(manual.getName(Language.DE));
124 }
125
126
127 dbManual.setModified(new Date());
128 dbManual.setVisible(manual.getVisible());
129 dbManual.setModifiedBy(remoteUser);
130 dbManual.setModifiedAddress(remoteAddress);
131 dbManual.setPicture(manual.getPicture());
132 dbManual.setPictureOnPage(manual.getPictureOnPage());
133 dbManual.setOrderNumber(manual.getOrderNumber());
134 dbManual.setCssGroup(manual.getCssGroup());
135
136
137 manualDaoLocal.merge(dbManual);
138 return SUCCESS;
139 }
140 else {
141 return ERROR;
142 }
143
144 }
145
146 public List<Picture> getPictureList() {
147 return pictureList;
148 }
149
150 public List<CSSGroup> getCssGroupList() {
151 LOGGER.info("getCssGroupList() aufgerufen.");
152 LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
153 return cssGroupList;
154 }
155
156 }