View Javadoc

1   package de.tivsource.page.admin.actions.others.vacancy;
2   
3   import java.util.Date;
4   import java.util.List;
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.css.CSSGroup;
19  import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
20  import de.tivsource.page.dao.location.LocationDaoLocal;
21  import de.tivsource.page.dao.picture.PictureDaoLocal;
22  import de.tivsource.page.dao.property.PropertyDaoLocal;
23  import de.tivsource.page.dao.vacancy.VacancyDaoLocal;
24  import de.tivsource.page.entity.enumeration.Language;
25  import de.tivsource.page.entity.location.Location;
26  import de.tivsource.page.entity.picture.Picture;
27  import de.tivsource.page.entity.vacancy.Vacancy;
28  
29  /**
30   * 
31   * @author Marc Michele
32   *
33   */
34  @TilesDefinitions({
35    @TilesDefinition(name="vacancyEditForm", extend = "adminTemplate", putAttributes = {
36      @TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
37      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
38      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/vacancy/edit_form.jsp")
39    })
40  })
41  public class EditAction extends EmptyAction {
42  
43  	/**
44  	 * Serial Version UID.
45  	 */
46      private static final long serialVersionUID = -6472541996524122642L;
47  
48      /**
49       * Statischer Logger der Klasse.
50       */
51      private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
52  
53      @InjectEJB(name = "CSSGroupDao")
54      private CSSGroupDaoLocal cssGroupDaoLocal;
55  
56      @InjectEJB(name="VacancyDao")
57      private VacancyDaoLocal vacancyDaoLocal;
58  
59      @InjectEJB(name="LocationDao")
60      private LocationDaoLocal locationDaoLocal;
61  
62      @InjectEJB(name="PictureDao")
63      private PictureDaoLocal pictureDaoLocal;
64  
65      @InjectEJB(name="PropertyDao")
66      private PropertyDaoLocal propertyDaoLocal;
67  
68      private Vacancy vacancy;
69  
70      private String lang;
71  
72      private List<Picture> pictureList;
73  
74      private List<Location> locationList;
75  
76      private List<CSSGroup> cssGroupList;
77  
78      public Vacancy getVacancy() {
79          return vacancy;
80      }
81  
82      public void setVacancy(Vacancy vacancy) {
83          this.vacancy = vacancy;
84      }
85  
86      public String getLang() {
87          return lang;
88      }
89  
90      public void setLang(String lang) {
91          this.lang = lang;
92      }
93  
94      @Override
95      public void prepare() {
96          super.prepare();
97          pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.vacancy.picture").getValue());
98          locationList = locationDaoLocal.findAll(0, locationDaoLocal.countAll());
99          cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
100     }
101 
102     @Override
103     @Actions({
104         @Action(
105         		value = "edit", 
106         		results = { 
107         				@Result(name = "success", type = "redirectAction", location = "index.html"),
108         				@Result(name = "input",   type = "tiles", location = "vacancyEditForm"),
109         				@Result(name = "error",   type = "tiles", location = "vacancyEditError")
110         				}
111         )
112     })
113     public String execute() throws Exception {
114     	LOGGER.info("execute() aufgerufen.");
115 
116         String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
117         String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
118     	
119     	if(vacancy != null) {
120     		LOGGER.info("UUID des Events: " + vacancy.getUuid());
121     		Vacancy dbVacancy = vacancyDaoLocal.findByUuid(vacancy.getUuid());
122 
123             if(lang.contentEquals(new StringBuffer("EN"))) {
124             	vacancy.getContentMap().put(Language.DE, dbVacancy.getContentObject(Language.DE));
125             	dbVacancy.getContentMap().get(Language.EN).setContent(vacancy.getContent(Language.EN));
126             	dbVacancy.getContentMap().get(Language.EN).setModified(new Date());
127 
128                 vacancy.getDescriptionMap().put(Language.DE, dbVacancy.getDescriptionObject(Language.DE));
129                 String noLineBreaks = vacancy.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
130                 dbVacancy.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
131                 dbVacancy.getDescriptionMap().get(Language.EN).setKeywords(vacancy.getKeywords(Language.EN));
132                 dbVacancy.getDescriptionMap().get(Language.EN).setName(vacancy.getName(Language.EN));
133             } else {
134             	dbVacancy.getContentMap().get(Language.DE).setContent(vacancy.getContent(Language.DE));
135                 dbVacancy.getContentMap().get(Language.DE).setModified(new Date());
136 
137                 String noLineBreaks = vacancy.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
138                 dbVacancy.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
139                 dbVacancy.getDescriptionMap().get(Language.DE).setKeywords(vacancy.getKeywords(Language.DE));;
140                 dbVacancy.getDescriptionMap().get(Language.DE).setName(vacancy.getName(Language.DE));
141             }
142 
143             dbVacancy.setBeginning(vacancy.getBeginning());
144             dbVacancy.setWorkingTime(vacancy.getWorkingTime());
145             dbVacancy.setTechnical(vacancy.getTechnical());
146 
147     		dbVacancy.setModifiedAddress(remoteAddress);
148     		dbVacancy.setLocation(locationDaoLocal.findByUuidWidthEvents(vacancy.getLocation().getUuid()));
149     		dbVacancy.setModified(new Date());
150     		dbVacancy.setModifiedBy(remoteUser);
151     		dbVacancy.setVisible(vacancy.getVisible());
152     		dbVacancy.setPicture(vacancy.getPicture());
153     		dbVacancy.setPictureOnPage(vacancy.getPictureOnPage());
154     		dbVacancy.setCssGroup(vacancy.getCssGroup());
155     		
156     		vacancyDaoLocal.merge(dbVacancy);
157             return SUCCESS;
158     	}
159     	else {
160     		return ERROR;
161     	}
162 
163     }// Ende execute()
164 
165     public List<Location> getLocationList() {
166         return locationList;
167     }// Ende getLocationList()
168 
169     public List<Picture> getPictureList() {
170         return pictureList;
171     }// Ende getPictureList()
172 
173     public List<CSSGroup> getCssGroupList() {
174         LOGGER.info("getCssGroupList() aufgerufen.");
175         LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
176         return cssGroupList;
177     }// Ende getCssGroupList()
178 
179 }// Ende class