1 package de.tivsource.page.admin.actions.others.manual;
2
3 import java.util.Date;
4 import java.util.List;
5 import java.util.UUID;
6
7 import org.apache.logging.log4j.LogManager;
8 import org.apache.logging.log4j.Logger;
9 import org.apache.struts2.ServletActionContext;
10 import org.apache.struts2.convention.annotation.Action;
11 import org.apache.struts2.convention.annotation.Actions;
12 import org.apache.struts2.convention.annotation.Result;
13
14 import de.tivsource.ejb3plugin.InjectEJB;
15 import de.tivsource.page.admin.actions.EmptyAction;
16 import de.tivsource.page.common.css.CSSGroup;
17 import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
18 import de.tivsource.page.dao.manual.ManualDaoLocal;
19 import de.tivsource.page.dao.picture.PictureDaoLocal;
20 import de.tivsource.page.dao.property.PropertyDaoLocal;
21 import de.tivsource.page.entity.enumeration.Language;
22 import de.tivsource.page.entity.manual.Manual;
23 import de.tivsource.page.entity.picture.Picture;
24
25
26
27
28
29
30 public class AddAction extends EmptyAction {
31
32
33
34
35 private static final long serialVersionUID = -1439494906783805043L;
36
37
38
39
40 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
41
42 @InjectEJB(name = "CSSGroupDao")
43 private CSSGroupDaoLocal cssGroupDaoLocal;
44
45 @InjectEJB(name="ManualDao")
46 private ManualDaoLocal manualDaoLocal;
47
48 @InjectEJB(name="PictureDao")
49 private PictureDaoLocal pictureDaoLocal;
50
51 @InjectEJB(name="PropertyDao")
52 private PropertyDaoLocal propertyDaoLocal;
53
54 private Manual manual;
55
56 private List<Picture> pictureList;
57
58 private List<CSSGroup> cssGroupList;
59
60 public Manual getManual() {
61 return manual;
62 }
63
64 public void setManual(Manual manual) {
65 this.manual = manual;
66 }
67
68 @Override
69 public void prepare() {
70 super.prepare();
71 pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.manual.picture").getValue());
72 cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
73 }
74
75 @Override
76 @Actions({
77 @Action(
78 value = "add",
79 results = {
80 @Result(name = "success", type = "redirectAction", location = "index.html"),
81 @Result(name = "input", type="tiles", location = "manualAddForm"),
82 @Result(name = "error", type="tiles", location = "manualAddError")
83 }
84 )
85 })
86 public String execute() throws Exception {
87 LOGGER.info("execute() aufgerufen.");
88
89 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
90 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
91
92 if(manual != null) {
93 manual.setUuid(UUID.randomUUID().toString());
94 manual.setModified(new Date());
95 manual.setCreated(new Date());
96 manual.setModifiedBy(remoteUser);
97 manual.setModifiedAddress(remoteAddress);
98
99
100 manual.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
101 manual.getDescriptionMap().get(Language.DE).setNamingItem(manual);
102 manual.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
103 String noLineBreaks = manual.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
104 manual.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
105
106 manual.getContentMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
107 manual.getContentMap().get(Language.DE).setContentItem(manual);
108 manual.getContentMap().get(Language.DE).setLanguage(Language.DE);
109 manual.getContentMap().get(Language.DE).setCreated(new Date());
110 manual.getContentMap().get(Language.DE).setModified(new Date());
111
112
113 manual.getDescriptionMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
114 manual.getDescriptionMap().get(Language.EN).setNamingItem(manual);
115 manual.getDescriptionMap().get(Language.EN).setLanguage(Language.EN);
116
117 manual.getContentMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
118 manual.getContentMap().get(Language.EN).setContentItem(manual);
119 manual.getContentMap().get(Language.EN).setLanguage(Language.EN);
120 manual.getContentMap().get(Language.EN).setCreated(new Date());
121 manual.getContentMap().get(Language.EN).setModified(new Date());
122
123 manualDaoLocal.merge(manual);
124
125 return SUCCESS;
126 }
127 else {
128 return ERROR;
129 }
130
131
132 }
133
134 public List<Picture> getPictureList() {
135 return pictureList;
136 }
137
138 public List<CSSGroup> getCssGroupList() {
139 LOGGER.info("getCssGroupList() aufgerufen.");
140 LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
141 return cssGroupList;
142 }
143
144 }