comparison src/main/java/edu/harvard/iq/dataverse/ManageTemplatesPage.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 package edu.harvard.iq.dataverse;
2
3 import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
4 import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
5 import edu.harvard.iq.dataverse.engine.command.impl.CreateTemplateCommand;
6 import edu.harvard.iq.dataverse.engine.command.impl.DeleteTemplateCommand;
7 import edu.harvard.iq.dataverse.engine.command.impl.UpdateDataverseCommand;
8 import edu.harvard.iq.dataverse.engine.command.impl.UpdateDataverseTemplateRootCommand;
9 import edu.harvard.iq.dataverse.util.JsfHelper;
10 import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
11 import java.sql.Timestamp;
12 import java.util.Date;
13 import java.util.LinkedList;
14 import java.util.List;
15 import java.util.Locale;
16 import java.util.logging.Level;
17 import java.util.logging.Logger;
18 import javax.ejb.EJB;
19 import javax.faces.application.FacesMessage;
20 import javax.faces.event.ActionEvent;
21 import javax.faces.view.ViewScoped;
22 import javax.inject.Inject;
23 import javax.inject.Named;
24 import javax.persistence.EntityManager;
25 import javax.persistence.PersistenceContext;
26
27 /**
28 *
29 * @author skraffmiller
30 */
31 @ViewScoped
32 @Named
33 public class ManageTemplatesPage implements java.io.Serializable {
34
35 @EJB
36 DataverseServiceBean dvService;
37
38 @EJB
39 TemplateServiceBean templateService;
40
41 @EJB
42 EjbDataverseEngine engineService;
43
44 @PersistenceContext(unitName = "VDCNet-ejbPU")
45 EntityManager em;
46
47 @Inject
48 DataversePage dvpage;
49
50 @Inject
51 TemplatePage tempPage;
52
53 @Inject
54 DataverseSession session;
55
56 private List<Template> templates;
57 private Dataverse dataverse;
58 private Long dataverseId;
59 private boolean inheritTemplatesValue;
60 private boolean inheritTemplatesAllowed = false;
61
62 private Template selectedTemplate = null;
63
64 public void init() {
65 dataverse = dvService.find(dataverseId);
66 dvpage.setDataverse(dataverse);
67 if (dataverse.getOwner() != null && dataverse.getMetadataBlocks().equals(dataverse.getOwner().getMetadataBlocks())){
68 setInheritTemplatesAllowed(true);
69 }
70
71 templates = new LinkedList<>();
72 setInheritTemplatesValue(!dataverse.isTemplateRoot());
73 if (inheritTemplatesValue && dataverse.getOwner() != null) {
74 for (Template pt : dataverse.getParentTemplates()) {
75 pt.setDataverse(dataverse.getOwner());
76 templates.add(pt);
77 }
78 }
79 for (Template ct : dataverse.getTemplates()) {
80 ct.setDataverse(dataverse);
81 ct.setDataversesHasAsDefault(templateService.findDataversesByDefaultTemplateId(ct.getId()));
82 ct.setIsDefaultForDataverse(!ct.getDataversesHasAsDefault().isEmpty());
83 templates.add(ct);
84 }
85 if (!templates.isEmpty()){
86 JH.addMessage(FacesMessage.SEVERITY_INFO, JH.localize("dataset.manageTemplates.info.message.notEmptyTable"));
87 }
88
89 }
90
91 public void makeDefault(Template templateIn) {
92 dataverse.setDefaultTemplate(templateIn);
93 saveDataverse("The template has been selected as the default template for this dataverse");
94 }
95
96 public void unselectDefault(Template templateIn) {
97 dataverse.setDefaultTemplate(null);
98 saveDataverse("The template has been removed as the default template for this dataverse");
99 }
100
101 public String cloneTemplate(Template templateIn) {
102 Template newOne = templateIn.cloneNewTemplate(templateIn);
103 String name = "Copy of " + templateIn.getName();
104 newOne.setName(name);
105 newOne.setUsageCount(new Long(0));
106 newOne.setCreateTime(new Timestamp(new Date().getTime()));
107 dataverse.getTemplates().add(newOne);
108 templates.add(newOne);
109 Template created;
110 try {
111 created = engineService.submit(new CreateTemplateCommand(newOne, session.getUser(), dataverse));
112 saveDataverse("");
113 String msg = "The template has been copied";
114 JsfHelper.addFlashMessage(msg);
115 return "/template.xhtml?id=" + created.getId() + "&ownerId=" + dataverse.getId() + "&editMode=METADATA&faces-redirect=true";
116 } catch (CommandException ex) {
117 JH.addMessage(FacesMessage.SEVERITY_FATAL, "Template could not be copied. " );
118 }
119 return "";
120 }
121
122 public void deleteTemplate() {
123 List <Dataverse> dataverseWDefaultTemplate = null;
124 if (selectedTemplate != null) {
125 templates.remove(selectedTemplate);
126 if(dataverse.getDefaultTemplate() != null && dataverse.getDefaultTemplate().equals(selectedTemplate)){
127 dataverse.setDefaultTemplate(null);
128 }
129 dataverse.getTemplates().remove(selectedTemplate);
130 dataverseWDefaultTemplate = templateService.findDataversesByDefaultTemplateId(selectedTemplate.getId());
131 } else {
132 System.out.print("selected template is null");
133 }
134 try {
135 engineService.submit(new DeleteTemplateCommand(session.getUser(), getDataverse(), selectedTemplate, dataverseWDefaultTemplate ));
136 JsfHelper.addFlashMessage("The template has been deleted");
137 } catch (CommandException ex) {
138 String failMessage = "The dataset template cannot be deleted.";
139 JH.addMessage(FacesMessage.SEVERITY_FATAL, failMessage);
140 }
141 }
142
143 public void saveDataverse(ActionEvent e) {
144 saveDataverse("");
145 }
146
147 private void saveDataverse(String successMessage) {
148 if (successMessage.isEmpty()) {
149 successMessage = "Template data updated";
150 }
151 try {
152 engineService.submit(new UpdateDataverseCommand(getDataverse(), null, null, session.getUser(), null));
153 //JH.addMessage(FacesMessage.SEVERITY_INFO, successMessage);
154 JsfHelper.addFlashMessage(successMessage);
155 } catch (CommandException ex) {
156 String failMessage = "Template update failed";
157 if(successMessage.equals("The template has been deleted")){
158 failMessage = "The dataset template cannot be deleted.";
159 }
160 if(successMessage.equals("The template has been selected as the default template for this dataverse")){
161 failMessage = "The dataset template cannot be made default.";
162 }
163 JH.addMessage(FacesMessage.SEVERITY_FATAL, failMessage);
164 }
165
166 }
167
168 public List<Template> getTemplates() {
169 return templates;
170 }
171
172 public void setTemplates(List<Template> templates) {
173 this.templates = templates;
174 }
175
176 public Dataverse getDataverse() {
177 return dataverse;
178 }
179
180 public void setDataverse(Dataverse dataverse) {
181 this.dataverse = dataverse;
182 }
183
184 public Long getDataverseId() {
185 return dataverseId;
186 }
187
188 public void setDataverseId(Long dataverseId) {
189 this.dataverseId = dataverseId;
190 }
191
192 public boolean isInheritTemplatesValue() {
193 return inheritTemplatesValue;
194 }
195
196 public void setInheritTemplatesValue(boolean inheritTemplatesValue) {
197 this.inheritTemplatesValue = inheritTemplatesValue;
198 }
199
200 public boolean isInheritTemplatesAllowed() {
201 return inheritTemplatesAllowed;
202 }
203
204 public void setInheritTemplatesAllowed(boolean inheritTemplatesAllowed) {
205 this.inheritTemplatesAllowed = inheritTemplatesAllowed;
206 }
207 public Template getSelectedTemplate() {
208 return selectedTemplate;
209 }
210
211 public void setSelectedTemplate(Template selectedTemplate) {
212 this.selectedTemplate = selectedTemplate;
213 }
214
215 public void viewSelectedTemplate(Template selectedTemplate) {
216 this.selectedTemplate = selectedTemplate;
217 this.selectedTemplate.setMetadataValueBlocks();
218 tempPage.setTemplate(selectedTemplate);
219 }
220
221 public String updateTemplatesRoot(javax.faces.event.AjaxBehaviorEvent event) throws javax.faces.event.AbortProcessingException {
222 try {
223 if (dataverse.getOwner() != null) {
224 if (isInheritTemplatesValue() && dataverse.getDefaultTemplate() == null && dataverse.getOwner().getDefaultTemplate() != null) {
225 dataverse.setDefaultTemplate(dataverse.getOwner().getDefaultTemplate());
226 }
227 if (!isInheritTemplatesValue()) {
228 if (dataverse.getDefaultTemplate() != null) {
229 for (Template test : dataverse.getParentTemplates()) {
230 if (test.equals(dataverse.getDefaultTemplate())) {
231 dataverse.setDefaultTemplate(null);
232 }
233 }
234 }
235 }
236 }
237
238 dataverse = engineService.submit(new UpdateDataverseTemplateRootCommand(!isInheritTemplatesValue(), session.getUser(), getDataverse()));
239 init();
240 return "";
241 } catch (CommandException ex) {
242 Logger.getLogger(ManageTemplatesPage.class.getName()).log(Level.SEVERE, null, ex);
243 }
244 return "";
245 }
246 }