1 package de.tivsource.page.admin.actions.others.news;
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.news.NewsDaoLocal;
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.news.News;
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 = -6033997203518511979L;
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="NewsDao")
46 private NewsDaoLocal newsDaoLocal;
47
48 @InjectEJB(name="PictureDao")
49 private PictureDaoLocal pictureDaoLocal;
50
51 @InjectEJB(name="PropertyDao")
52 private PropertyDaoLocal propertyDaoLocal;
53
54 private News news;
55
56 private List<Picture> pictureList;
57
58 private List<CSSGroup> cssGroupList;
59
60 public News getNews() {
61 return news;
62 }
63
64 public void setNews(News news) {
65 this.news = news;
66 }
67
68 @Override
69 public void prepare() {
70 super.prepare();
71 pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.news.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 = "newsAddForm"),
82 @Result(name = "error", type="tiles", location = "newsAddError")
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(news != null) {
93 news.setUuid(UUID.randomUUID().toString());
94 news.setModified(new Date());
95 news.setCreated(new Date());
96 news.setModifiedBy(remoteUser);
97 news.setModifiedAddress(remoteAddress);
98
99
100 news.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
101 news.getDescriptionMap().get(Language.DE).setNamingItem(news);
102 news.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
103 String noLineBreaks = news.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
104 news.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
105
106 news.getContentMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
107 news.getContentMap().get(Language.DE).setContentItem(news);
108 news.getContentMap().get(Language.DE).setLanguage(Language.DE);
109 news.getContentMap().get(Language.DE).setCreated(new Date());
110 news.getContentMap().get(Language.DE).setModified(new Date());
111
112
113 news.getDescriptionMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
114 news.getDescriptionMap().get(Language.EN).setNamingItem(news);
115 news.getDescriptionMap().get(Language.EN).setLanguage(Language.EN);
116
117 news.getContentMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
118 news.getContentMap().get(Language.EN).setContentItem(news);
119 news.getContentMap().get(Language.EN).setLanguage(Language.EN);
120 news.getContentMap().get(Language.EN).setCreated(new Date());
121 news.getContentMap().get(Language.EN).setModified(new Date());
122
123 newsDaoLocal.merge(news);
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 }