1 package de.tivsource.page.admin.actions.others.contententry;
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 com.opensymphony.xwork2.Preparable;
18
19 import de.tivsource.ejb3plugin.InjectEJB;
20 import de.tivsource.page.admin.actions.EmptyAction;
21 import de.tivsource.page.common.menuentry.ContentEntry;
22 import de.tivsource.page.dao.contententry.ContentEntryDaoLocal;
23 import de.tivsource.page.dao.contentitem.ContentItemDaoLocal;
24 import de.tivsource.page.dao.property.PropertyDaoLocal;
25 import de.tivsource.page.entity.contentitem.ContentItem;
26 import de.tivsource.page.entity.enumeration.Language;
27
28
29
30
31
32
33 @TilesDefinitions({
34 @TilesDefinition(name="contentEntryAddForm", 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/contententry/add_form.jsp")
38 }),
39 @TilesDefinition(name="contentEntryAddError", extend = "adminTemplate", putAttributes = {
40 @TilesPutAttribute(name = "meta", value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
41 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
42 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/contententry/add_error.jsp")
43 })
44 })
45 public class AddAction extends EmptyAction implements Preparable {
46
47
48
49
50 private static final long serialVersionUID = 8805512413826287971L;
51
52
53
54
55 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
56
57 @InjectEJB(name="ContentEntryDao")
58 private ContentEntryDaoLocal contentEntryDaoLocal;
59
60 @InjectEJB(name="ContentItemDao")
61 private ContentItemDaoLocal contentItemDaoLocal;
62
63 @InjectEJB(name="PropertyDao")
64 private PropertyDaoLocal propertyDaoLocal;
65
66 private ContentEntry contentEntry;
67
68 private List<ContentItem> contentItems;
69
70 public ContentEntry getContentEntry() {
71 return contentEntry;
72 }
73
74 public void setContentEntry(ContentEntry contentEntry) {
75 this.contentEntry = contentEntry;
76 }
77
78 public List<ContentItem> getContentItems() {
79 return contentItems;
80 }
81
82 @Override
83 public void prepare() {
84 contentItems = contentItemDaoLocal.findAllUnassigned(0, contentItemDaoLocal.countAllUnassigned());
85 }
86
87 @Override
88 @Actions({
89 @Action(
90 value = "add",
91 results = {
92 @Result(name = "success", type = "redirectAction", location = "index.html"),
93 @Result(name = "input", type="tiles", location = "contentEntryAddForm"),
94 @Result(name = "error", type="tiles", location = "contentEntryAddError")
95 }
96 )
97 })
98 public String execute() throws Exception {
99 LOGGER.info("execute() aufgerufen.");
100
101 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
102 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
103
104 if(contentEntry != null) {
105
106 contentEntry.setUuid(UUID.randomUUID().toString());
107 contentEntry.setTechnical("CI_" + contentEntry.getContentItem().getTechnical());
108 contentEntry.setModified(new Date());
109 contentEntry.setCreated(new Date());
110 contentEntry.setModifiedBy(remoteUser);
111 contentEntry.setModifiedAddress(remoteAddress);
112
113 contentEntry.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
114 contentEntry.getDescriptionMap().get(Language.DE).setNamingItem(contentEntry);
115 contentEntry.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
116 contentEntry.getDescriptionMap().get(Language.DE).setName(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getName());
117 contentEntry.getDescriptionMap().get(Language.DE).setDescription(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getDescription());
118 contentEntry.getDescriptionMap().get(Language.DE).setKeywords(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getKeywords());
119
120 contentEntry.getDescriptionMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
121 contentEntry.getDescriptionMap().get(Language.EN).setNamingItem(contentEntry);
122 contentEntry.getDescriptionMap().get(Language.EN).setLanguage(Language.EN);
123 contentEntry.getDescriptionMap().get(Language.EN).setName(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getName());
124 contentEntry.getDescriptionMap().get(Language.EN).setDescription(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getDescription());
125 contentEntry.getDescriptionMap().get(Language.EN).setKeywords(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getKeywords());
126
127
128 contentEntryDaoLocal.merge(contentEntry);
129
130 return SUCCESS;
131 }
132 else {
133 return ERROR;
134 }
135
136
137 }
138
139 }