1 package de.tivsource.page.admin.actions.maintenance.cssgroup;
2
3 import java.util.Arrays;
4 import java.util.Date;
5 import java.util.Iterator;
6 import java.util.List;
7 import java.util.UUID;
8
9 import org.apache.logging.log4j.LogManager;
10 import org.apache.logging.log4j.Logger;
11 import org.apache.struts2.ServletActionContext;
12 import org.apache.struts2.convention.annotation.Action;
13 import org.apache.struts2.convention.annotation.Actions;
14 import org.apache.struts2.convention.annotation.Result;
15 import org.apache.struts2.tiles.annotation.TilesDefinition;
16 import org.apache.struts2.tiles.annotation.TilesDefinitions;
17 import org.apache.struts2.tiles.annotation.TilesPutAttribute;
18
19 import de.tivsource.ejb3plugin.InjectEJB;
20 import de.tivsource.page.admin.actions.EmptyAction;
21 import de.tivsource.page.common.css.CSSFile;
22 import de.tivsource.page.common.css.CSSGroup;
23 import de.tivsource.page.dao.cssfile.CSSFileDaoLocal;
24 import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
25 import de.tivsource.page.entity.enumeration.Language;
26
27
28
29
30
31
32 @TilesDefinitions({
33 @TilesDefinition(name="cssGroupAddForm", 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/maintenance.jsp"),
36 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/cssgroup/add_form.jsp")
37 }),
38 @TilesDefinition(name="cssGroupAddError", extend = "adminTemplate", putAttributes = {
39 @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/maintenance.jsp"),
40 @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/cssgroup/add_error.jsp")
41 })
42 })
43 public class AddAction extends EmptyAction {
44
45
46
47
48 private static final long serialVersionUID = 3442711359941308571L;
49
50
51
52
53 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
54
55 @InjectEJB(name="CSSFileDao")
56 private CSSFileDaoLocal cssFileDaoLocal;
57
58 @InjectEJB(name="CSSGroupDao")
59 private CSSGroupDaoLocal cssGroupDaoLocal;
60
61 private CSSGroup cssGroup;
62
63 public CSSGroup getCssGroup() {
64 return cssGroup;
65 }
66
67 public void setCssGroup(CSSGroup cssGroup) {
68 this.cssGroup = cssGroup;
69 }
70
71 @Override
72 @Actions({
73 @Action(
74 value = "add",
75 results = {
76 @Result(name = "success", type = "redirectAction", location = "index.html"),
77 @Result(name = "input", type="tiles", location = "cssGroupAddForm"),
78 @Result(name = "error", type="tiles", location = "cssGroupAddError")
79 }
80 )
81 })
82 public String execute() throws Exception {
83 LOGGER.info("execute() aufgerufen.");
84
85 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
86 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
87
88 if (cssGroup != null) {
89
90 Iterator<CSSFile> cssFiles = cssGroup.getFiles().iterator();
91 while (cssFiles.hasNext()) {
92 CSSFile next = cssFiles.next();
93 next.getGroups().add(cssGroup);
94 }
95 cssGroup.setUuid(UUID.randomUUID().toString());
96 cssGroup.setModified(new Date());
97 cssGroup.setCreated(new Date());
98 cssGroup.setModifiedBy(remoteUser);
99 cssGroup.setModifiedAddress(remoteAddress);
100 cssGroupDaoLocal.merge(cssGroup);
101 return SUCCESS;
102 } else {
103 return ERROR;
104 }
105
106 }
107
108 public List<CSSFile> getCssFileList() {
109 return cssFileDaoLocal.findAll(0, cssFileDaoLocal.countAll());
110 }
111
112 public List<Language> getLanguageList() {
113 return Arrays.asList(Language.values());
114 }
115
116 }