From 7d969596a5a7d675130c0a0d17d55f427b5957dd Mon Sep 17 00:00:00 2001 From: gdurand Date: Mon, 9 Dec 2019 14:37:48 -0500 Subject: [PATCH 1/9] --- .../iq/dataverse/ControlledVocabularyValueConverter.java | 5 +++-- .../java/edu/harvard/iq/dataverse/DataFileConverter.java | 5 +++-- .../java/edu/harvard/iq/dataverse/DatasetConverter.java | 5 +++-- .../edu/harvard/iq/dataverse/DatasetVersionConverter.java | 7 ++++--- .../java/edu/harvard/iq/dataverse/DataverseConverter.java | 5 +++-- src/main/java/edu/harvard/iq/dataverse/FacetConverter.java | 5 +++-- .../edu/harvard/iq/dataverse/MetadataBlockConverter.java | 5 +++-- .../edu/harvard/iq/dataverse/RoleAssigneeConverter.java | 7 +++---- .../java/edu/harvard/iq/dataverse/TemplateConverter.java | 5 +++-- .../dataverse/provenance/ProvEntityFileDataConverter.java | 5 +++-- 10 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/ControlledVocabularyValueConverter.java b/src/main/java/edu/harvard/iq/dataverse/ControlledVocabularyValueConverter.java index 6be05d1024c..1d530e136ba 100644 --- a/src/main/java/edu/harvard/iq/dataverse/ControlledVocabularyValueConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/ControlledVocabularyValueConverter.java @@ -6,6 +6,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; @@ -19,8 +20,8 @@ @FacesConverter("controlledVocabularyValueConverter") public class ControlledVocabularyValueConverter implements Converter { - @EJB - DatasetFieldServiceBean datasetFieldService; + //@EJB + DatasetFieldServiceBean datasetFieldService = CDI.current().select(DatasetFieldServiceBean.class).get(); public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { if (submittedValue == null || submittedValue.equals("")) { diff --git a/src/main/java/edu/harvard/iq/dataverse/DataFileConverter.java b/src/main/java/edu/harvard/iq/dataverse/DataFileConverter.java index feb4fa62651..18531f5203d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataFileConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataFileConverter.java @@ -2,6 +2,7 @@ import java.util.logging.Logger; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; @@ -13,8 +14,8 @@ public class DataFileConverter implements Converter { private static final Logger logger = Logger.getLogger(DataFileConverter.class.getCanonicalName()); - @EJB - DataFileServiceBean dataFileService; + //@EJB + DataFileServiceBean dataFileService = CDI.current().select(DataFileServiceBean.class).get(); @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetConverter.java b/src/main/java/edu/harvard/iq/dataverse/DatasetConverter.java index 71d1a48ace3..2d19cf5fe06 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetConverter.java @@ -7,6 +7,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -15,8 +16,8 @@ @FacesConverter("datasetConverter") public class DatasetConverter implements Converter { - @EJB - DatasetServiceBean datasetService; + //@EJB + DatasetServiceBean datasetService = CDI.current().select(DatasetServiceBean.class).get(); @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionConverter.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionConverter.java index 79a801fbb55..98f0d707bdc 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersionConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersionConverter.java @@ -6,6 +6,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -18,15 +19,15 @@ @FacesConverter("datasetVersionConverter") public class DatasetVersionConverter implements Converter { - @EJB - DatasetVersionServiceBean datasetVersionService; + //@EJB + DatasetVersionServiceBean datasetVersionService = CDI.current().select(DatasetVersionServiceBean.class).get(); @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { if (value == null || value.equals("")) { return ""; - } else { + } else { return datasetVersionService.find(new Long(value)); } } diff --git a/src/main/java/edu/harvard/iq/dataverse/DataverseConverter.java b/src/main/java/edu/harvard/iq/dataverse/DataverseConverter.java index 685ec8132b3..7d09c300dde 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataverseConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataverseConverter.java @@ -7,6 +7,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -20,8 +21,8 @@ public class DataverseConverter implements Converter { - @EJB - DataverseServiceBean dataverseService; + //@EJB + DataverseServiceBean dataverseService = CDI.current().select(DataverseServiceBean.class).get(); @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { diff --git a/src/main/java/edu/harvard/iq/dataverse/FacetConverter.java b/src/main/java/edu/harvard/iq/dataverse/FacetConverter.java index 478bc2dee53..75ef62200bf 100644 --- a/src/main/java/edu/harvard/iq/dataverse/FacetConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/FacetConverter.java @@ -6,6 +6,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; @@ -19,8 +20,8 @@ @FacesConverter("facetConverter") public class FacetConverter implements Converter { - @EJB - DatasetFieldServiceBean datasetFieldService; + //@EJB + DatasetFieldServiceBean datasetFieldService = CDI.current().select(DatasetFieldServiceBean.class).get(); public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { return datasetFieldService.find(new Long(submittedValue)); diff --git a/src/main/java/edu/harvard/iq/dataverse/MetadataBlockConverter.java b/src/main/java/edu/harvard/iq/dataverse/MetadataBlockConverter.java index 92cbef6dda7..c5bd48ae785 100644 --- a/src/main/java/edu/harvard/iq/dataverse/MetadataBlockConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/MetadataBlockConverter.java @@ -6,6 +6,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; @@ -19,8 +20,8 @@ @FacesConverter("metadataBlockConverter") public class MetadataBlockConverter implements Converter { - @EJB - DataverseServiceBean dataverseService; + //@EJB + DataverseServiceBean dataverseService = CDI.current().select(DataverseServiceBean.class).get(); public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { MetadataBlock mdb = dataverseService.findMDB(new Long(submittedValue)); diff --git a/src/main/java/edu/harvard/iq/dataverse/RoleAssigneeConverter.java b/src/main/java/edu/harvard/iq/dataverse/RoleAssigneeConverter.java index b6b4c43fa1f..a5e4cebbd95 100644 --- a/src/main/java/edu/harvard/iq/dataverse/RoleAssigneeConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/RoleAssigneeConverter.java @@ -7,9 +7,8 @@ package edu.harvard.iq.dataverse; import edu.harvard.iq.dataverse.authorization.RoleAssignee; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; @@ -23,8 +22,8 @@ @FacesConverter("roleAssigneeConverter") public class RoleAssigneeConverter implements Converter { - @EJB - RoleAssigneeServiceBean roleAssigneeService; + //@EJB + RoleAssigneeServiceBean roleAssigneeService = CDI.current().select(RoleAssigneeServiceBean.class).get(); public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { RoleAssignee mdb = roleAssigneeService.getRoleAssignee(submittedValue); diff --git a/src/main/java/edu/harvard/iq/dataverse/TemplateConverter.java b/src/main/java/edu/harvard/iq/dataverse/TemplateConverter.java index 505e6c94789..98b24f84801 100644 --- a/src/main/java/edu/harvard/iq/dataverse/TemplateConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/TemplateConverter.java @@ -7,6 +7,7 @@ package edu.harvard.iq.dataverse; import javax.ejb.EJB; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -19,8 +20,8 @@ @FacesConverter("templateConverter") public class TemplateConverter implements Converter { - @EJB - TemplateServiceBean templateService; + //@EJB + TemplateServiceBean templateService = CDI.current().select(TemplateServiceBean.class).get(); @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { diff --git a/src/main/java/edu/harvard/iq/dataverse/provenance/ProvEntityFileDataConverter.java b/src/main/java/edu/harvard/iq/dataverse/provenance/ProvEntityFileDataConverter.java index cd3fb42ab84..65b97b80eea 100644 --- a/src/main/java/edu/harvard/iq/dataverse/provenance/ProvEntityFileDataConverter.java +++ b/src/main/java/edu/harvard/iq/dataverse/provenance/ProvEntityFileDataConverter.java @@ -1,5 +1,6 @@ package edu.harvard.iq.dataverse.provenance; +import javax.enterprise.inject.spi.CDI; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -14,8 +15,8 @@ @FacesConverter("provEntityFileDataConverter") public class ProvEntityFileDataConverter implements Converter{ - @Inject - ProvPopupFragmentBean provBean; + //@Inject + ProvPopupFragmentBean provBean = CDI.current().select(ProvPopupFragmentBean.class).get(); @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { From 79a53e9a890aa427324dd4541c2d271edf572edd Mon Sep 17 00:00:00 2001 From: gdurand Date: Mon, 9 Dec 2019 14:52:32 -0500 Subject: [PATCH 2/9] pages now have dedicated properties for view parameters; no longer set properties of objects (that could fail bean validation) --- .../edu/harvard/iq/dataverse/DatasetPage.java | 9 ++++-- .../harvard/iq/dataverse/DataversePage.java | 28 +++++++++++++------ src/main/webapp/dataset.xhtml | 5 ++-- src/main/webapp/dataverse.xhtml | 4 +-- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index a7566fe45f6..c81157df65d 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -242,6 +242,8 @@ public enum DisplayMode { @Inject DataverseHeaderFragment dataverseHeaderFragment; private Dataset dataset = new Dataset(); + + private Long id = null; private EditMode editMode; private boolean bulkFileDeleteInProgress = false; @@ -1446,6 +1448,9 @@ public void setDataset(Dataset dataset) { public DatasetVersion getWorkingVersion() { return workingVersion; } + + public Long getId() { return this.id; } + public void setId(Long id) { this.id = id; } public EditMode getEditMode() { return editMode; @@ -1799,9 +1804,9 @@ private String init(boolean initFull) { this.workingVersion = retrieveDatasetVersionResponse.getDatasetVersion(); logger.fine("retrieved version: id: " + workingVersion.getId() + ", state: " + this.workingVersion.getVersionState()); - } else if (dataset.getId() != null) { + } else if (this.getId() != null) { // Set Working Version and Dataset by Datasaet Id and Version - dataset = datasetService.find(dataset.getId()); + dataset = datasetService.find(this.getId()); if (dataset == null) { logger.warning("No such dataset: "+dataset); return permissionsWrapper.notFound(); diff --git a/src/main/java/edu/harvard/iq/dataverse/DataversePage.java b/src/main/java/edu/harvard/iq/dataverse/DataversePage.java index eca97e52402..f214c7969b9 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataversePage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataversePage.java @@ -110,11 +110,17 @@ public enum LinkMode { @Inject PermissionsWrapper permissionsWrapper; @Inject DataverseHeaderFragment dataverseHeaderFragment; - private Dataverse dataverse = new Dataverse(); + private Dataverse dataverse = new Dataverse(); + + /** + * View parameters + */ + private Long id = null; + private String alias = null; + private Long ownerId = null; private EditMode editMode; private LinkMode linkMode; - private Long ownerId; private DualListModel facets = new DualListModel<>(new ArrayList<>(), new ArrayList<>()); private DualListModel featuredDataverses = new DualListModel<>(new ArrayList<>(), new ArrayList<>()); private List dataversesForLinking; @@ -251,6 +257,12 @@ public Dataverse getDataverse() { public void setDataverse(Dataverse dataverse) { this.dataverse = dataverse; } + + public Long getId() { return this.id; } + public void setId(Long id) { this.id = id; } + + public String getAlias() { return this.alias; } + public void setAlias(String alias) { this.alias = alias; } public EditMode getEditMode() { return editMode; @@ -283,11 +295,11 @@ public void updateOwnerDataverse() { public String init() { //System.out.println("_YE_OLDE_QUERY_COUNTER_"); // for debug purposes - if (dataverse.getAlias() != null || dataverse.getId() != null || ownerId == null) {// view mode for a dataverse - if (dataverse.getAlias() != null) { - dataverse = dataverseService.findByAlias(dataverse.getAlias()); - } else if (dataverse.getId() != null) { - dataverse = dataverseService.find(dataverse.getId()); + if (this.getAlias() != null || this.getId() != null || this.getOwnerId() == null) {// view mode for a dataverse + if (this.getAlias() != null) { + dataverse = dataverseService.findByAlias(this.getAlias()); + } else if (this.getId() != null) { + dataverse = dataverseService.find(this.getId()); } else { try { dataverse = dataverseService.findRootDataverse(); @@ -308,7 +320,7 @@ public String init() { ownerId = dataverse.getOwner() != null ? dataverse.getOwner().getId() : null; } else { // ownerId != null; create mode for a new child dataverse editMode = EditMode.CREATE; - dataverse.setOwner(dataverseService.find(ownerId)); + dataverse.setOwner(dataverseService.find( this.getOwnerId())); if (dataverse.getOwner() == null) { return permissionsWrapper.notFound(); } else if (!permissionService.on(dataverse.getOwner()).has(Permission.AddDataverse)) { diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index 999efc38161..34cfdb3a7c6 100644 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -9,8 +9,7 @@ xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:pt="http://java.sun.com/jsf/passthrough" xmlns:cc="http://java.sun.com/jsf/composite" - xmlns:o="http://omnifaces.org/ui" - xmlns:iqbs="http://xmlns.jcp.org/jsf/composite/iqbs"> + xmlns:o="http://omnifaces.org/ui"> @@ -58,7 +57,7 @@ - + diff --git a/src/main/webapp/dataverse.xhtml b/src/main/webapp/dataverse.xhtml index 7d5c6d66b93..e812341046b 100644 --- a/src/main/webapp/dataverse.xhtml +++ b/src/main/webapp/dataverse.xhtml @@ -19,8 +19,8 @@ - - + + From 985ced077dc8139766053e21716a2ba5fb9c8ff1 Mon Sep 17 00:00:00 2001 From: gdurand Date: Wed, 18 Dec 2019 23:04:58 -0500 Subject: [PATCH 3/9] Changed editMode viewparams to omnifaces (so they don't get sent on postback); changed save button update attribute on dataversee.xhtml from @all to more specific closes #6447, closes #6448 --- src/main/webapp/dataverse.xhtml | 4 ++-- src/main/webapp/dataverseuser.xhtml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/dataverse.xhtml b/src/main/webapp/dataverse.xhtml index e812341046b..1d69fd9994b 100644 --- a/src/main/webapp/dataverse.xhtml +++ b/src/main/webapp/dataverse.xhtml @@ -22,7 +22,7 @@ - + @@ -370,7 +370,7 @@
- + diff --git a/src/main/webapp/dataverseuser.xhtml b/src/main/webapp/dataverseuser.xhtml index 81292b5dac7..19cf0603ceb 100644 --- a/src/main/webapp/dataverseuser.xhtml +++ b/src/main/webapp/dataverseuser.xhtml @@ -29,7 +29,7 @@ - + From 88f3bb799fa83bcf0d26beb75c38b6999d5b9f1d Mon Sep 17 00:00:00 2001 From: gdurand Date: Thu, 19 Dec 2019 17:53:13 -0500 Subject: [PATCH 4/9] Moved some javascript, which enabled edit to work again --- src/main/webapp/dataset.xhtml | 45 +---------------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index 34cfdb3a7c6..a4e811cf8c8 100644 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -628,50 +628,6 @@