Mercurial > hg > LGDataverses
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 } |
