1 package de.tivsource.page.admin.actions.others.companiongroup;
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.companion.CompanionGroupDaoLocal;
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.entity.companion.CompanionGroup;
24 import de.tivsource.page.entity.enumeration.Language;
25 import de.tivsource.page.entity.picture.Picture;
26
27
28
29
30
31
32 @TilesDefinitions({
33 @TilesDefinition(name="companionGroupEditForm", extend = "adminTemplate", putAttributes = {
34 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
35 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
36 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/companiongroup/edit_form.jsp")
37 }),
38 @TilesDefinition(name="companionGroupEditError", extend = "adminTemplate", putAttributes = {
39 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
40 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/companiongroup/edit_error.jsp")
41 })
42 })
43 public class EditAction extends EmptyAction {
44
45
46
47
48 private static final long serialVersionUID = -8055397581589809541L;
49
50
51
52
53 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
54
55 @InjectEJB(name="CompanionGroupDao")
56 private CompanionGroupDaoLocal companionGroupDaoLocal;
57
58 @InjectEJB(name = "CSSGroupDao")
59 private CSSGroupDaoLocal cssGroupDaoLocal;
60
61 @InjectEJB(name="PictureDao")
62 private PictureDaoLocal pictureDaoLocal;
63
64 @InjectEJB(name="PropertyDao")
65 private PropertyDaoLocal propertyDaoLocal;
66
67 private CompanionGroup companionGroup;
68
69 private String lang;
70
71 private List<Picture> pictureList;
72
73 private List<CSSGroup> cssGroupList;
74
75 public CompanionGroup getCompanionGroup() {
76 return companionGroup;
77 }
78
79 public void setCompanionGroup(CompanionGroup companionGroup) {
80 this.companionGroup = companionGroup;
81 }
82
83 public String getLang() {
84 return lang;
85 }
86
87 public void setLang(String lang) {
88 this.lang = lang;
89 }
90
91 @Override
92 public void prepare() {
93 super.prepare();
94 pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.companion.group.picture").getValue());
95 cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
96 }
97
98 @Override
99 @Actions({
100 @Action(
101 value = "edit",
102 results = {
103 @Result(name = "success", type = "redirectAction", location = "index.html"),
104 @Result(name = "input", type = "tiles", location = "companionGroupEditForm"),
105 @Result(name = "error", type = "tiles", location = "companionGroupEditError")
106 }
107 )
108 })
109 public String execute() throws Exception {
110 LOGGER.info("execute() aufgerufen.");
111
112 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
113 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
114
115 if(companionGroup != null) {
116 LOGGER.info("News UUID: " + companionGroup.getUuid());
117 CompanionGroup dbCompanionGroup = companionGroupDaoLocal.findByUuid(companionGroup.getUuid());
118
119
120 if(lang.contentEquals(new StringBuffer("EN"))) {
121 companionGroup.getDescriptionMap().put(Language.DE, dbCompanionGroup.getDescriptionObject(Language.DE));
122 String noLineBreaks = companionGroup.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
123 dbCompanionGroup.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
124 dbCompanionGroup.getDescriptionMap().get(Language.EN).setKeywords(companionGroup.getKeywords(Language.EN));
125 dbCompanionGroup.getDescriptionMap().get(Language.EN).setName(companionGroup.getName(Language.EN));
126 } else {
127 String noLineBreaks = companionGroup.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
128 dbCompanionGroup.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
129 dbCompanionGroup.getDescriptionMap().get(Language.DE).setKeywords(companionGroup.getKeywords(Language.DE));;
130 dbCompanionGroup.getDescriptionMap().get(Language.DE).setName(companionGroup.getName(Language.DE));
131 }
132
133
134 dbCompanionGroup.setOrderNumber(companionGroup.getOrderNumber());
135 dbCompanionGroup.setTechnical(companionGroup.getTechnical());
136 dbCompanionGroup.setModified(new Date());
137 dbCompanionGroup.setVisible(companionGroup.getVisible());
138 dbCompanionGroup.setModifiedBy(remoteUser);
139 dbCompanionGroup.setModifiedAddress(remoteAddress);
140 dbCompanionGroup.setPicture(companionGroup.getPicture());
141 dbCompanionGroup.setPictureOnPage(companionGroup.getPictureOnPage());
142 dbCompanionGroup.setCssGroup(companionGroup.getCssGroup());
143
144
145 companionGroupDaoLocal.merge(dbCompanionGroup);
146 return SUCCESS;
147 }
148 else {
149 return ERROR;
150 }
151
152 }
153
154 public List<Picture> getPictureList() {
155 return pictureList;
156 }
157
158 public List<CSSGroup> getCssGroupList() {
159 LOGGER.info("getCssGroupList() aufgerufen.");
160 LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
161 return cssGroupList;
162 }
163
164 }