1 package de.tivsource.page.admin.actions.others.linkentry;
2
3 import java.util.Date;
4 import java.util.UUID;
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.menuentry.LinkEntry;
19 import de.tivsource.page.dao.linkentry.LinkEntryDaoLocal;
20 import de.tivsource.page.dao.property.PropertyDaoLocal;
21 import de.tivsource.page.entity.enumeration.Language;
22
23
24
25
26
27
28 @TilesDefinitions({
29 @TilesDefinition(name="linkEntryAddForm", extend = "adminTemplate", putAttributes = {
30 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
31 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
32 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/linkentry/add_form.jsp")
33 }),
34 @TilesDefinition(name="linkEntryAddError", 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/linkentry/add_error.jsp")
38 })
39 })
40 public class AddAction extends EmptyAction {
41
42
43
44
45 private static final long serialVersionUID = -1043526042620901395L;
46
47
48
49
50 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
51
52 @InjectEJB(name="LinkEntryDao")
53 private LinkEntryDaoLocal linkEntryDaoLocal;
54
55 @InjectEJB(name="PropertyDao")
56 private PropertyDaoLocal propertyDaoLocal;
57
58 private LinkEntry linkEntry;
59
60 public LinkEntry getLinkEntry() {
61 return linkEntry;
62 }
63
64 public void setLinkEntry(LinkEntry linkEntry) {
65 this.linkEntry = linkEntry;
66 }
67
68 @Override
69 @Actions({
70 @Action(
71 value = "add",
72 results = {
73 @Result(name = "success", type = "redirectAction", location = "index.html"),
74 @Result(name = "input", type="tiles", location = "linkEntryAddForm"),
75 @Result(name = "error", type="tiles", location = "linkEntryAddError")
76 }
77 )
78 })
79 public String execute() throws Exception {
80 LOGGER.info("execute() aufgerufen.");
81
82 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
83 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
84
85 if(linkEntry != null) {
86 linkEntry.setUuid(UUID.randomUUID().toString());
87 linkEntry.setTechnical("LE_" + linkEntry.getUuid());
88 linkEntry.setModified(new Date());
89 linkEntry.setCreated(new Date());
90 linkEntry.setModifiedBy(remoteUser);
91 linkEntry.setModifiedAddress(remoteAddress);
92
93 linkEntry.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
94 linkEntry.getDescriptionMap().get(Language.DE).setNamingItem(linkEntry);
95 linkEntry.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
96 linkEntry.getDescriptionMap().get(Language.DE).setName(linkEntry.getDescriptionMap().get(Language.DE).getName());
97 linkEntry.getDescriptionMap().get(Language.DE).setDescription(linkEntry.getDescriptionMap().get(Language.DE).getDescription());
98 linkEntry.getDescriptionMap().get(Language.DE).setKeywords(linkEntry.getDescriptionMap().get(Language.DE).getKeywords());
99
100 linkEntry.getDescriptionMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
101 linkEntry.getDescriptionMap().get(Language.EN).setNamingItem(linkEntry);
102 linkEntry.getDescriptionMap().get(Language.EN).setLanguage(Language.EN);
103 linkEntry.getDescriptionMap().get(Language.EN).setName(linkEntry.getDescriptionMap().get(Language.DE).getName());
104 linkEntry.getDescriptionMap().get(Language.EN).setDescription(linkEntry.getDescriptionMap().get(Language.DE).getDescription());
105 linkEntry.getDescriptionMap().get(Language.EN).setKeywords(linkEntry.getDescriptionMap().get(Language.DE).getKeywords());
106
107 linkEntryDaoLocal.merge(linkEntry);
108
109 return SUCCESS;
110 }
111 else {
112 return ERROR;
113 }
114
115
116 }
117
118 }