1 package de.tivsource.page.admin.actions.others.subsumption;
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 import org.apache.struts2.tiles.annotation.TilesDefinition;
14 import org.apache.struts2.tiles.annotation.TilesDefinitions;
15 import org.apache.struts2.tiles.annotation.TilesPutAttribute;
16
17 import de.tivsource.ejb3plugin.InjectEJB;
18 import de.tivsource.page.admin.actions.EmptyAction;
19 import de.tivsource.page.common.css.CSSGroup;
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.enumeration.Language;
25 import de.tivsource.page.entity.picture.Picture;
26 import de.tivsource.page.entity.subsumption.Subsumption;
27
28
29
30
31
32
33 @TilesDefinitions({
34 @TilesDefinition(name="subsumptionAddForm", extend = "adminTemplate", putAttributes = {
35 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
36 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
37 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/subsumption/add_form.jsp")
38 })
39 })
40 public class AddAction extends EmptyAction {
41
42
43
44
45 private static final long serialVersionUID = 4585178769978663997L;
46
47
48
49
50 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
51
52 @InjectEJB(name = "CSSGroupDao")
53 private CSSGroupDaoLocal cssGroupDaoLocal;
54
55 @InjectEJB(name="SubsumptionDao")
56 private SubsumptionDaoLocal subsumptionDaoLocal;
57
58 @InjectEJB(name="PictureDao")
59 private PictureDaoLocal pictureDaoLocal;
60
61 @InjectEJB(name="PropertyDao")
62 private PropertyDaoLocal propertyDaoLocal;
63
64 private Subsumption subsumption;
65
66 private List<Picture> pictureList;
67
68 private List<CSSGroup> cssGroupList;
69
70 public Subsumption getSubsumption() {
71 return subsumption;
72 }
73
74 public void setSubsumption(Subsumption subsumption) {
75 this.subsumption = subsumption;
76 }
77
78 @Override
79 public void prepare() {
80 super.prepare();
81 pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.page.picture").getValue());
82 cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
83 }
84
85 @Override
86 @Actions({
87 @Action(
88 value = "add",
89 results = {
90 @Result(name = "success", type = "redirectAction", location = "index.html"),
91 @Result(name = "input", type="tiles", location = "subsumptionAddForm"),
92 @Result(name = "error", type="tiles", location = "subsumptionAddError")
93 }
94 )
95 })
96 public String execute() throws Exception {
97 LOGGER.info("execute() aufgerufen.");
98
99 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
100 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
101
102 if(subsumption != null) {
103 subsumption.setUuid(UUID.randomUUID().toString());
104 subsumption.setModified(new Date());
105 subsumption.setCreated(new Date());
106 subsumption.setModifiedBy(remoteUser);
107 subsumption.setModifiedAddress(remoteAddress);
108
109
110 subsumption.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
111 subsumption.getDescriptionMap().get(Language.DE).setNamingItem(subsumption);
112 subsumption.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
113 String noLineBreaks = subsumption.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
114 subsumption.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
115
116 subsumption.getContentMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
117 subsumption.getContentMap().get(Language.DE).setContentItem(subsumption);
118 subsumption.getContentMap().get(Language.DE).setLanguage(Language.DE);
119 subsumption.getContentMap().get(Language.DE).setCreated(new Date());
120 subsumption.getContentMap().get(Language.DE).setModified(new Date());
121
122
123 subsumption.getDescriptionMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
124 subsumption.getDescriptionMap().get(Language.EN).setNamingItem(subsumption);
125 subsumption.getDescriptionMap().get(Language.EN).setLanguage(Language.EN);
126
127 subsumption.getContentMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
128 subsumption.getContentMap().get(Language.EN).setContentItem(subsumption);
129 subsumption.getContentMap().get(Language.EN).setLanguage(Language.EN);
130 subsumption.getContentMap().get(Language.EN).setCreated(new Date());
131 subsumption.getContentMap().get(Language.EN).setModified(new Date());
132
133 subsumptionDaoLocal.merge(subsumption);
134
135 return SUCCESS;
136 }
137 else {
138 return ERROR;
139 }
140
141
142 }
143
144 public List<Picture> getPictureList() {
145 return pictureList;
146 }
147
148 public List<CSSGroup> getCssGroupList() {
149 LOGGER.info("getCssGroupList() aufgerufen.");
150 LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
151 return cssGroupList;
152 }
153
154 }