View Javadoc

1   package de.tivsource.page.admin.actions.locations.reason;
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.dao.property.PropertyDaoLocal;
18  import de.tivsource.page.dao.reason.ReasonDaoLocal;
19  import de.tivsource.page.entity.enumeration.Language;
20  import de.tivsource.page.entity.request.Reason;
21  
22  /**
23   * 
24   * @author Marc Michele
25   *
26   */
27  @TilesDefinitions({
28    @TilesDefinition(name="reasonEditForm", 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/locations.jsp"),
31      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reason/edit_form.jsp")
32    }),
33    @TilesDefinition(name="reasonEditError", extend = "adminTemplate", putAttributes = {
34      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
35      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reason/edit_error.jsp")
36    })
37  })
38  public class EditAction extends EmptyAction {
39  
40  	/**
41  	 * Serial Version UID.
42  	 */
43      private static final long serialVersionUID = 3868709731406017338L;
44  
45      /**
46       * Statischer Logger der Klasse.
47       */
48      private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
49  
50      @InjectEJB(name="ReasonDao")
51      private ReasonDaoLocal reasonDaoLocal;
52  
53      @InjectEJB(name="PropertyDao")
54      private PropertyDaoLocal propertyDaoLocal;
55  
56      private Reason reason;
57  
58      private String lang;
59  
60      /**
61       * @return the reason
62       */
63      public Reason getReason() {
64          return reason;
65      }
66  
67      /**
68       * @param reason the reason to set
69       */
70      public void setReason(Reason reason) {
71          this.reason = reason;
72      }
73  
74      public String getLang() {
75          return lang;
76      }
77  
78      public void setLang(String lang) {
79          this.lang = lang;
80      }
81  
82      @Override
83      public void prepare() {
84          super.prepare();
85      }
86  
87      @Override
88      @Actions({
89          @Action(
90          		value = "edit", 
91          		results = { 
92          				@Result(name = "success", type = "redirectAction", location = "index.html"),
93          				@Result(name = "input",   type = "tiles", location = "reasonEditForm"),
94          				@Result(name = "error",   type = "tiles", location = "reasonEditError")
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(reason != null) {
105     		LOGGER.info("UUID der FeedbackOption: " + reason.getUuid());
106     		Reason dbReason = reasonDaoLocal.findByUuid(reason.getUuid());
107 
108             if(lang.contentEquals(new StringBuffer("EN"))) {
109                 reason.getDescriptionMap().put(Language.DE, dbReason.getDescriptionObject(Language.DE));
110                 String noLineBreaks = reason.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
111                 dbReason.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
112                 dbReason.getDescriptionMap().get(Language.EN).setKeywords(reason.getDescriptionObject(Language.EN).getKeywords());
113                 dbReason.getDescriptionMap().get(Language.EN).setName(reason.getDescriptionObject(Language.EN).getName());
114             } else {
115         	    String noLineBreaks = reason.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
116         	    dbReason.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
117                 dbReason.getDescriptionMap().get(Language.DE).setKeywords(reason.getDescriptionObject(Language.DE).getKeywords());;
118                 dbReason.getDescriptionMap().get(Language.DE).setName(reason.getDescriptionObject(Language.DE).getName());
119             }
120 
121             dbReason.setOrderNumber(reason.getOrderNumber());
122             dbReason.setModifiedAddress(remoteAddress);
123     		dbReason.setModified(new Date());
124     		dbReason.setModifiedBy(remoteUser);
125     		dbReason.setVisible(reason.getVisible());
126     		dbReason.setTechnical(reason.getTechnical());
127 
128     		reasonDaoLocal.merge(dbReason);
129             return SUCCESS;
130     	}
131     	else {
132     		return ERROR;
133     	}
134 
135     }// Ende execute()
136 
137 }// Ende class