1 package de.tivsource.page.admin.actions.others.picture;
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.dao.gallery.GalleryDaoLocal;
19 import de.tivsource.page.dao.picture.PictureDaoLocal;
20 import de.tivsource.page.entity.enumeration.Language;
21 import de.tivsource.page.entity.gallery.Gallery;
22 import de.tivsource.page.entity.picture.Picture;
23
24
25
26
27
28
29 @TilesDefinitions({
30 @TilesDefinition(name="pictureEditForm", extend = "adminTemplate", putAttributes = {
31 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
32 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
33 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/picture/edit_form.jsp")
34 })
35 })
36 public class EditAction extends EmptyAction {
37
38
39
40
41 private static final long serialVersionUID = 4375251545367946812L;
42
43
44
45
46 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
47
48 @InjectEJB(name="PictureDao")
49 private PictureDaoLocal pictureDaoLocal;
50
51 @InjectEJB(name="GalleryDao")
52 private GalleryDaoLocal galleryDaoLocal;
53
54 private Picture picture;
55
56 private String lang;
57
58 public Picture getPicture() {
59 return picture;
60 }
61
62 public void setPicture(Picture picture) {
63 this.picture = picture;
64 }
65
66 public String getLang() {
67 return lang;
68 }
69
70 public void setLang(String lang) {
71 this.lang = lang;
72 }
73
74 @Override
75 @Actions({
76 @Action(
77 value = "edit",
78 results = {
79 @Result(name = "success", type = "redirectAction", location = "index.html"),
80 @Result(name = "input", type = "tiles", location = "pictureEditForm"),
81 @Result(name = "error", type = "tiles", location = "pictureEditError")
82 }
83 )
84 })
85 public String execute() throws Exception {
86 LOGGER.info("execute() aufgerufen.");
87
88 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
89 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
90
91 if(picture != null) {
92 LOGGER.info("UUID des Events: " + picture.getUuid());
93 Picture dbPicture = pictureDaoLocal.findByUuid(picture.getUuid());
94
95 if(lang.contentEquals(new StringBuffer("EN"))) {
96 picture.getDescriptionMap().put(Language.DE, dbPicture.getDescriptionMap().get(Language.DE));
97 String noLineBreaks = picture.getDescriptionMap().get(Language.EN).getDescription().replaceAll("(\\r|\\n)", "");
98 dbPicture.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
99 dbPicture.getDescriptionMap().get(Language.EN).setKeywords(picture.getDescriptionMap().get(Language.EN).getKeywords());
100 dbPicture.getDescriptionMap().get(Language.EN).setName(picture.getDescriptionMap().get(Language.EN).getName());
101 } else {
102 String noLineBreaks = picture.getDescriptionMap().get(Language.DE).getDescription().replaceAll("(\\r|\\n)", "");
103 dbPicture.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
104 dbPicture.getDescriptionMap().get(Language.DE).setKeywords(picture.getDescriptionMap().get(Language.DE).getKeywords());;
105 dbPicture.getDescriptionMap().get(Language.DE).setName(picture.getDescriptionMap().get(Language.DE).getName());
106 }
107
108 dbPicture.setOrderNumber(picture.getOrderNumber());
109 dbPicture.setVisible(picture.getVisible());
110 dbPicture.setGallery(picture.getGallery());
111
112 dbPicture.setModified(new Date());
113 dbPicture.setModifiedBy(remoteUser);
114 dbPicture.setModifiedAddress(remoteAddress);
115
116 pictureDaoLocal.merge(dbPicture);
117 return SUCCESS;
118 }
119 else {
120 return ERROR;
121 }
122
123 }
124
125 public List<Gallery> getGalleryList() {
126 return galleryDaoLocal.findAll(0, galleryDaoLocal.countAll());
127 }
128
129 }