1 package de.tivsource.page.admin.actions.others.linkentry;
2
3 import java.util.Date;
4
5 import org.apache.logging.log4j.LogManager;
6 import org.apache.logging.log4j.Logger;
7 import org.apache.struts2.ServletActionContext;
8 import org.apache.struts2.convention.annotation.Action;
9 import org.apache.struts2.convention.annotation.Actions;
10 import org.apache.struts2.convention.annotation.Result;
11 import org.apache.struts2.tiles.annotation.TilesDefinition;
12 import org.apache.struts2.tiles.annotation.TilesDefinitions;
13 import org.apache.struts2.tiles.annotation.TilesPutAttribute;
14
15 import de.tivsource.ejb3plugin.InjectEJB;
16 import de.tivsource.page.admin.actions.EmptyAction;
17 import de.tivsource.page.common.menuentry.LinkEntry;
18 import de.tivsource.page.dao.linkentry.LinkEntryDaoLocal;
19 import de.tivsource.page.dao.property.PropertyDaoLocal;
20 import de.tivsource.page.entity.enumeration.Language;
21
22
23
24
25
26
27 @TilesDefinitions({
28 @TilesDefinition(name="linkEntryEditForm", extend = "adminTemplate", putAttributes = {
29 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
30 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
31 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/linkentry/edit_form.jsp")
32 }),
33 @TilesDefinition(name="linkEntryEditError", 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/linkentry/edit_error.jsp")
37 })
38 })
39 public class EditAction extends EmptyAction {
40
41
42
43
44 private static final long serialVersionUID = 2459909610299610689L;
45
46
47
48
49 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
50
51 @InjectEJB(name="LinkEntryDao")
52 private LinkEntryDaoLocal linkEntryDaoLocal;
53
54 @InjectEJB(name="PropertyDao")
55 private PropertyDaoLocal propertyDaoLocal;
56
57 private LinkEntry linkEntry;
58
59 public LinkEntry getLinkEntry() {
60 return linkEntry;
61 }
62
63 public void setLinkEntry(LinkEntry linkEntry) {
64 this.linkEntry = linkEntry;
65 }
66
67 @Override
68 @Actions({
69 @Action(
70 value = "edit",
71 results = {
72 @Result(name = "success", type = "redirectAction", location = "index.html"),
73 @Result(name = "input", type = "tiles", location = "linkEntryEditForm"),
74 @Result(name = "error", type = "tiles", location = "linkEntryEditError")
75 }
76 )
77 })
78 public String execute() throws Exception {
79 LOGGER.info("execute() aufgerufen.");
80
81 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
82 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
83
84 if(linkEntry != null) {
85 LOGGER.info(linkEntry.getTechnical());
86 LinkEntry dbLinkEntry = linkEntryDaoLocal.findByUuid(linkEntry.getUuid());
87 dbLinkEntry.setTechnical("LE_" + linkEntry.getUuid());
88
89 dbLinkEntry.getDescriptionMap().get(Language.DE).setName(linkEntry.getDescriptionMap().get(Language.DE).getName());
90 dbLinkEntry.getDescriptionMap().get(Language.DE).setDescription(linkEntry.getDescriptionMap().get(Language.DE).getDescription());
91 dbLinkEntry.getDescriptionMap().get(Language.DE).setKeywords(linkEntry.getDescriptionMap().get(Language.DE).getKeywords());
92
93 dbLinkEntry.getDescriptionMap().get(Language.EN).setName(linkEntry.getDescriptionMap().get(Language.EN).getName());
94 dbLinkEntry.getDescriptionMap().get(Language.EN).setDescription(linkEntry.getDescriptionMap().get(Language.EN).getDescription());
95 dbLinkEntry.getDescriptionMap().get(Language.EN).setKeywords(linkEntry.getDescriptionMap().get(Language.EN).getKeywords());
96
97 dbLinkEntry.setBottomNavigation(linkEntry.getBottomNavigation());
98 dbLinkEntry.setBottomNavigationOrder(linkEntry.getBottomNavigationOrder());
99 dbLinkEntry.setNavigation(linkEntry.getNavigation());
100 dbLinkEntry.setNavigationOrder(linkEntry.getNavigationOrder());
101 dbLinkEntry.setResponsiveNavigation(linkEntry.getResponsiveNavigation());
102 dbLinkEntry.setResponsiveNavigationOrder(linkEntry.getResponsiveNavigationOrder());
103 dbLinkEntry.setTopNavigation(linkEntry.getTopNavigation());
104 dbLinkEntry.setTopNavigationOrder(linkEntry.getTopNavigationOrder());
105
106 dbLinkEntry.setModified(new Date());
107 dbLinkEntry.setVisible(linkEntry.getVisible());
108 dbLinkEntry.setUrl(linkEntry.getUrl());
109 dbLinkEntry.setModifiedBy(remoteUser);
110 dbLinkEntry.setModifiedAddress(remoteAddress);
111 linkEntryDaoLocal.merge(dbLinkEntry);
112 return SUCCESS;
113 }
114 else {
115 return ERROR;
116 }
117
118 }
119
120 }