comparison src/main/java/edu/harvard/iq/dataverse/ManageGuestbooksPage.java @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
comparison
equal deleted inserted replaced
9:5926d6419569 10:a50cf11e5178
1 /*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6 package edu.harvard.iq.dataverse;
7
8 import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
9 import edu.harvard.iq.dataverse.engine.command.impl.CreateGuestbookCommand;
10 import edu.harvard.iq.dataverse.engine.command.impl.DeleteGuestbookCommand;
11 import edu.harvard.iq.dataverse.engine.command.impl.UpdateDataverseCommand;
12 import edu.harvard.iq.dataverse.engine.command.impl.UpdateDataverseGuestbookCommand;
13 import edu.harvard.iq.dataverse.engine.command.impl.UpdateDataverseGuestbookRootCommand;
14 import edu.harvard.iq.dataverse.util.JsfHelper;
15 import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
16 import java.sql.Timestamp;
17 import java.util.Date;
18 import java.util.LinkedList;
19 import java.util.List;
20 import java.util.logging.Level;
21 import java.util.logging.Logger;
22 import javax.ejb.EJB;
23 import javax.faces.application.FacesMessage;
24 import javax.faces.event.ActionEvent;
25 import javax.faces.view.ViewScoped;
26 import javax.inject.Inject;
27 import javax.inject.Named;
28 import javax.persistence.EntityManager;
29 import javax.persistence.PersistenceContext;
30
31 /**
32 *
33 * @author skraffmiller
34 */
35 @ViewScoped
36 @Named
37 public class ManageGuestbooksPage implements java.io.Serializable {
38
39 @EJB
40 DataverseServiceBean dvService;
41
42 @EJB
43 GuestbookResponseServiceBean guestbookResponseService;
44
45 @EJB
46 GuestbookServiceBean guestbookService;
47
48 @EJB
49 EjbDataverseEngine engineService;
50
51 @PersistenceContext(unitName = "VDCNet-ejbPU")
52 EntityManager em;
53
54 @Inject
55 DataversePage dvpage;
56
57 @Inject
58 GuestbookPage guestbookPage;
59
60 @Inject
61 DataverseSession session;
62
63 private List<Guestbook> guestbooks;
64 private List<GuestbookResponse> responses;
65 private Dataverse dataverse;
66 private Long dataverseId;
67 private boolean inheritGuestbooksValue;
68
69 private Guestbook selectedGuestbook = null;
70
71 public void init() {
72 dataverse = dvService.find(dataverseId);
73 dvpage.setDataverse(dataverse);
74
75 guestbooks = new LinkedList<>();
76 setInheritGuestbooksValue(!dataverse.isGuestbookRoot());
77 if (inheritGuestbooksValue && dataverse.getOwner() != null) {
78 for (Guestbook pg : dataverse.getParentGuestbooks()) {
79 pg.setUsageCount(guestbookService.findCountUsages(pg.getId()));
80 pg.setResponseCount(guestbookResponseService.findCountByGuestbookId(pg.getId()));
81 guestbooks.add(pg);
82 }
83 }
84 for (Guestbook cg : dataverse.getGuestbooks()) {
85 cg.setDeletable(true);
86 cg.setUsageCount(guestbookService.findCountUsages(cg.getId()));
87 if (!(cg.getUsageCount().intValue() == 0)) {
88 cg.setDeletable(false);
89 }
90 cg.setResponseCount(guestbookResponseService.findCountByGuestbookId(cg.getId()));
91 if (!(cg.getResponseCount().intValue() == 0)) {
92 cg.setDeletable(false);
93 }
94 cg.setDataverse(dataverse);
95 guestbooks.add(cg);
96 }
97 }
98
99
100
101
102 public void deleteGuestbook() {
103 if (selectedGuestbook != null) {
104 guestbooks.remove(selectedGuestbook);
105 dataverse.getGuestbooks().remove(selectedGuestbook);
106 try {
107 engineService.submit(new DeleteGuestbookCommand(session.getUser(), getDataverse(), selectedGuestbook));
108 JsfHelper.addFlashMessage("The guestbook has been deleted");
109 } catch (CommandException ex) {
110 String failMessage = "The dataset guestbook cannot be deleted.";
111 JH.addMessage(FacesMessage.SEVERITY_FATAL, failMessage);
112 }
113 } else {
114 System.out.print("Selected Guestbook is null");
115 }
116 }
117
118 public void saveDataverse(ActionEvent e) {
119 saveDataverse("", "");
120 }
121
122 public String enableGuestbook(Guestbook selectedGuestbook) {
123 selectedGuestbook.setEnabled(true);
124 saveDataverse("dataset.manageGuestbooks.message.enableSuccess", "dataset.manageGuestbooks.message.enableFailure");
125 return "";
126 }
127
128 public String disableGuestbook(Guestbook selectedGuestbook) {
129 selectedGuestbook.setEnabled(false);
130 saveDataverse("dataset.manageGuestbooks.message.disableSuccess", "dataset.manageGuestbooks.message.disableFailure");
131 return "";
132 }
133
134
135 private void saveDataverse(String successMessage, String failureMessage) {
136 if (successMessage.isEmpty()) {
137 successMessage = "dataset.manageGuestbooks.message.editSuccess";
138 }
139 if (failureMessage.isEmpty()) {
140 failureMessage = "dataset.manageGuestbooks.message.editFailure";
141 }
142 try {
143 engineService.submit(new UpdateDataverseCommand(getDataverse(), null, null, session.getUser(), null));
144 JsfHelper.addSuccessMessage(JH.localize(successMessage));
145 } catch (CommandException ex) {
146 JH.addMessage(FacesMessage.SEVERITY_FATAL, JH.localize(failureMessage));
147 }
148
149 }
150
151 public List<Guestbook> getGuestbooks() {
152 return guestbooks;
153 }
154
155 public void setGuestbooks(List<Guestbook> guestbooks) {
156 this.guestbooks = guestbooks;
157 }
158
159
160
161 public Dataverse getDataverse() {
162 return dataverse;
163 }
164
165 public void setDataverse(Dataverse dataverse) {
166 this.dataverse = dataverse;
167 }
168
169 public Long getDataverseId() {
170 return dataverseId;
171 }
172
173 public void setDataverseId(Long dataverseId) {
174 this.dataverseId = dataverseId;
175 }
176
177 public boolean isInheritGuestbooksValue() {
178 return inheritGuestbooksValue;
179 }
180
181 public void setInheritGuestbooksValue(boolean inheritGuestbooksValue) {
182 this.inheritGuestbooksValue = inheritGuestbooksValue;
183 }
184
185 public Guestbook getSelectedGuestbook() {
186 return selectedGuestbook;
187 }
188
189 public void setSelectedGuestbook(Guestbook selectedGuestbook) {
190 this.selectedGuestbook = selectedGuestbook;
191 }
192
193 public void viewSelectedGuestbook(Guestbook selectedGuestbook) {
194 this.selectedGuestbook = selectedGuestbook;
195 guestbookPage.setGuestbook(selectedGuestbook);
196 }
197
198
199
200 public String updateGuestbooksRoot(javax.faces.event.AjaxBehaviorEvent event) throws javax.faces.event.AbortProcessingException {
201 try {
202 dataverse = engineService.submit(new UpdateDataverseGuestbookRootCommand(!isInheritGuestbooksValue(), session.getUser(), getDataverse()));
203 init();
204 return "";
205 } catch (CommandException ex) {
206 Logger.getLogger(ManageGuestbooksPage.class.getName()).log(Level.SEVERE, null, ex);
207 }
208 return "";
209 }
210 }