1 package de.tivsource.page.admin.actions.others.subsumption;
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 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.common.css.CSSGroup;
19 import de.tivsource.page.dao.contentitem.ContentItemDaoLocal;
20 import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
21 import de.tivsource.page.dao.picture.PictureDaoLocal;
22 import de.tivsource.page.dao.property.PropertyDaoLocal;
23 import de.tivsource.page.dao.subsumption.SubsumptionDaoLocal;
24 import de.tivsource.page.entity.contentitem.ContentItem;
25 import de.tivsource.page.entity.enumeration.Language;
26 import de.tivsource.page.entity.picture.Picture;
27 import de.tivsource.page.entity.subsumption.Subsumption;
28
29
30
31
32
33
34 @TilesDefinitions({
35 @TilesDefinition(name="subsumptionEditForm", extend = "adminTemplate", putAttributes = {
36 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
37 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
38 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/subsumption/edit_form.jsp")
39 })
40 })
41 public class EditAction extends EmptyAction {
42
43
44
45
46 private static final long serialVersionUID = 7108534700587832664L;
47
48
49
50
51 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
52
53 @InjectEJB(name = "CSSGroupDao")
54 private CSSGroupDaoLocal cssGroupDaoLocal;
55
56 @InjectEJB(name="ContentItemDao")
57 private ContentItemDaoLocal contentItemDaoLocal;
58
59 @InjectEJB(name="SubsumptionDao")
60 private SubsumptionDaoLocal subsumptionDaoLocal;
61
62 @InjectEJB(name="PictureDao")
63 private PictureDaoLocal pictureDaoLocal;
64
65 @InjectEJB(name="PropertyDao")
66 private PropertyDaoLocal propertyDaoLocal;
67
68 private Subsumption subsumption;
69
70 private String lang = "DE";
71
72 private List<Picture> pictureList;
73
74 private List<CSSGroup> cssGroupList;
75
76 private List<ContentItem> contentItems;
77
78 public Subsumption getSubsumption() {
79 return subsumption;
80 }
81
82 public void setSubsumption(Subsumption subsumption) {
83 this.subsumption = subsumption;
84 }
85
86 public String getLang() {
87 return lang;
88 }
89
90 public void setLang(String lang) {
91 this.lang = lang;
92 }
93
94 @Override
95 public void prepare() {
96 super.prepare();
97 pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.page.picture").getValue());
98 cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
99 }
100
101 @Override
102 @Actions({
103 @Action(
104 value = "edit",
105 results = {
106 @Result(name = "success", type = "redirectAction", location = "index.html"),
107 @Result(name = "input", type = "tiles", location = "subsumptionEditForm"),
108 @Result(name = "error", type = "tiles", location = "subsumptionEditError")
109 }
110 )
111 })
112 public String execute() throws Exception {
113 LOGGER.info("execute() aufgerufen.");
114
115 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
116 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
117
118 if(subsumption != null) {
119 LOGGER.info(subsumption.getTechnical());
120 Subsumption dbSubsumption = subsumptionDaoLocal.findByUuid(subsumption.getUuid());
121 contentItems = contentItemDaoLocal.findAllVisible(dbSubsumption.getUuid(), 0, contentItemDaoLocal.countAllVisible(dbSubsumption.getUuid()));
122
123
124 if(lang.contentEquals(new StringBuffer("EN"))) {
125 subsumption.getContentMap().put(Language.DE, dbSubsumption.getContentObject(Language.DE));
126 dbSubsumption.getContentMap().get(Language.EN).setContent(subsumption.getContent(Language.EN));
127 dbSubsumption.getContentMap().get(Language.EN).setModified(new Date());
128
129 subsumption.getDescriptionMap().put(Language.DE, dbSubsumption.getDescriptionObject(Language.DE));
130 String noLineBreaks = subsumption.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
131 dbSubsumption.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
132 dbSubsumption.getDescriptionMap().get(Language.EN).setKeywords(subsumption.getKeywords(Language.EN));
133 dbSubsumption.getDescriptionMap().get(Language.EN).setName(subsumption.getName(Language.EN));
134 } else {
135 dbSubsumption.getContentMap().get(Language.DE).setContent(subsumption.getContent(Language.DE));
136 dbSubsumption.getContentMap().get(Language.DE).setModified(new Date());
137
138 String noLineBreaks = subsumption.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
139 dbSubsumption.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
140 dbSubsumption.getDescriptionMap().get(Language.DE).setKeywords(subsumption.getKeywords(Language.DE));;
141 dbSubsumption.getDescriptionMap().get(Language.DE).setName(subsumption.getName(Language.DE));
142 }
143
144
145 dbSubsumption.setModified(new Date());
146 dbSubsumption.setTechnical(subsumption.getTechnical());
147 dbSubsumption.setVisible(subsumption.getVisible());
148 dbSubsumption.setModifiedBy(remoteUser);
149 dbSubsumption.setModifiedAddress(remoteAddress);
150 dbSubsumption.setPicture(subsumption.getPicture());
151 dbSubsumption.setPictureOnPage(subsumption.getPictureOnPage());
152 dbSubsumption.setCssGroup(subsumption.getCssGroup());
153
154 LOGGER.info("Anzahl der ContentItems: " + subsumption.getContentItems().size());
155 dbSubsumption.setContentItems(subsumption.getContentItems());
156
157 dbSubsumption.setShowDates(subsumption.getShowDates());
158 dbSubsumption.setShowDescriptions(subsumption.getShowDescriptions());
159 dbSubsumption.setShowPictures(subsumption.getShowPictures());
160 dbSubsumption.setShowTitles(subsumption.getShowTitles());
161
162
163 subsumptionDaoLocal.merge(dbSubsumption);
164 return SUCCESS;
165 }
166 else {
167 return ERROR;
168 }
169
170 }
171
172 public List<Picture> getPictureList() {
173 return pictureList;
174 }
175
176 public List<CSSGroup> getCssGroupList() {
177 LOGGER.info("getCssGroupList() aufgerufen.");
178 LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
179 return cssGroupList;
180 }
181
182
183
184
185 public List<ContentItem> getContentItems() {
186 return contentItems;
187 }
188
189 }