From a158ebf3f1c1ee55b8118b015404f7a3793817f3 Mon Sep 17 00:00:00 2001 From: Pete Meyer Date: Thu, 11 May 2017 15:29:01 -0400 Subject: [PATCH 01/12] DC identifier (persistent ID) to dataset landing page --- src/main/webapp/dataset.xhtml | 6 +++++- src/main/webapp/dataverse_template.xhtml | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index a44b260ca57..5091d76bf9c 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -19,7 +19,11 @@ - + + + + + diff --git a/src/main/webapp/dataverse_template.xhtml b/src/main/webapp/dataverse_template.xhtml index 6da6b363146..916651f5231 100644 --- a/src/main/webapp/dataverse_template.xhtml +++ b/src/main/webapp/dataverse_template.xhtml @@ -11,7 +11,8 @@ <h:outputText value="#{pageTitle}"/> - + + From 331832affaba96d8179f6b0c13f1630285d0aa89 Mon Sep 17 00:00:00 2001 From: Pete Meyer Date: Thu, 11 May 2017 16:28:18 -0400 Subject: [PATCH 02/12] a few more DC terms --- .../edu/harvard/iq/dataverse/DatasetPage.java | 22 +++++++++++++++++++ src/main/webapp/dataset.xhtml | 6 +++++ 2 files changed, 28 insertions(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index cdb555d24e6..c6b29fc1ba0 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -3556,6 +3556,28 @@ public TwoRavensHelper getTwoRavensHelper() { public void setTwoRavensHelper(TwoRavensHelper twoRavensHelper) { this.twoRavensHelper = twoRavensHelper; } + + /** + * dataset title + */ + public String getTitle() + { //workingVersion + assert( null != workingVersion ); + return workingVersion.getTitle(); + } + + /** + * dataset publication date (dd MMM yyyy). + * + */ + public String getPublicationDate() + { + assert( null != workingVersion ); + Date rel_date = workingVersion.getReleaseTime(); + SimpleDateFormat fmt = new SimpleDateFormat("dd MMM yyyy"); + String r = fmt.format( rel_date.getTime() ); + return r; + } /* public String getThumbnail() { diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index 5091d76bf9c..73b08a237c3 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -23,6 +23,12 @@ + + + + + + From e925b3fd591da1cedeff374f9d721631e28e33ff Mon Sep 17 00:00:00 2001 From: Pete Meyer Date: Thu, 11 May 2017 17:24:24 -0400 Subject: [PATCH 03/12] now with dataset authors --- .../edu/harvard/iq/dataverse/DatasetPage.java | 18 ++++++++++++++++++ src/main/webapp/dataset.xhtml | 4 +++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index c6b29fc1ba0..05cfc93da5e 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -40,6 +40,7 @@ import static edu.harvard.iq.dataverse.util.JsfHelper.JH; import edu.harvard.iq.dataverse.util.StringUtil; import edu.harvard.iq.dataverse.util.SystemConfig; +import edu.harvard.iq.dataverse.DatasetAuthor; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -3578,6 +3579,23 @@ public String getPublicationDate() String r = fmt.format( rel_date.getTime() ); return r; } + /** + * dataset authors + */ + public String[] getDatasetAuthors() + { + assert( null != workingVersion ); + List authors = workingVersion.getDatasetAuthors(); + int n_authors = authors.size(); + String[] rs = new String[ n_authors ]; + int pos = 0; + for( DatasetAuthor author : authors ) + { + rs[pos] = author.getName().getValue(); + ++pos; + } + return rs; + } /* public String getThumbnail() { diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index 73b08a237c3..f06fb7abfed 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -28,7 +28,9 @@ - + + + From 0b69048e97c5d33be262a245f5814875978e0e11 Mon Sep 17 00:00:00 2001 From: Pete Meyer Date: Thu, 11 May 2017 17:32:22 -0400 Subject: [PATCH 04/12] use root dataverse name as DC.publisher --- src/main/java/edu/harvard/iq/dataverse/DatasetPage.java | 8 ++++++++ src/main/webapp/dataset.xhtml | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 05cfc93da5e..57b60f20c20 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -3596,6 +3596,14 @@ public String[] getDatasetAuthors() } return rs; } + /** + * publisher (aka - name of root dataverse) + */ + public String getPublisher() + { + assert( null != workingVersion ); + return workingVersion.getRootDataverseNameforCitation(); + } /* public String getThumbnail() { diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index f06fb7abfed..52967bbe986 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -26,8 +26,7 @@ - - + From 66438cf4738d66e90f79938925275d0018189dfd Mon Sep 17 00:00:00 2001 From: Pete Meyer Date: Thu, 11 May 2017 17:34:43 -0400 Subject: [PATCH 05/12] remove 'work-in-progress' comment --- src/main/webapp/dataset.xhtml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index 52967bbe986..df59f1f2c8a 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -21,7 +21,6 @@ - From 5b1073267abf9c25c10681dca70e375b7d8d05e0 Mon Sep 17 00:00:00 2001 From: Pete Meyer Date: Wed, 17 May 2017 17:17:37 -0400 Subject: [PATCH 06/12] return empty string for DC publication date in meta tags for DRAFT datasets --- src/main/java/edu/harvard/iq/dataverse/DatasetPage.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 57b60f20c20..c4388d61caf 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -3569,11 +3569,16 @@ public String getTitle() /** * dataset publication date (dd MMM yyyy). + * unpublished datasets will return an empty string. * */ public String getPublicationDate() { assert( null != workingVersion ); + if ( DatasetVersion.VersionState.DRAFT == workingVersion.getVersionState() ) + { + return ""; + } Date rel_date = workingVersion.getReleaseTime(); SimpleDateFormat fmt = new SimpleDateFormat("dd MMM yyyy"); String r = fmt.format( rel_date.getTime() ); From 1f66efbfbe6bd216165048402b3f3080087ef100 Mon Sep 17 00:00:00 2001 From: oscardssmith Date: Fri, 9 Jun 2017 11:06:20 -0400 Subject: [PATCH 07/12] Added meta tags for subject, description. --- .../edu/harvard/iq/dataverse/DatasetPage.java | 87 +++++++++++++------ .../harvard/iq/dataverse/DatasetVersion.java | 15 ++++ src/main/webapp/dataset.xhtml | 8 +- 3 files changed, 80 insertions(+), 30 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index c4388d61caf..1cc54fa0162 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -3560,54 +3560,85 @@ public void setTwoRavensHelper(TwoRavensHelper twoRavensHelper) { /** * dataset title + * @return title of workingVersion */ public String getTitle() - { //workingVersion - assert( null != workingVersion ); - return workingVersion.getTitle(); + { + assert( null != workingVersion ); + return workingVersion.getTitle(); } - + /** - * dataset publication date (dd MMM yyyy). + * dataset description + * @return title of workingVersion + */ + public String getDescription() + { + assert( null != workingVersion ); + return workingVersion.getDescription(); + } + + /** + * dataset publication date * unpublished datasets will return an empty string. - * + * @return String dataset publication date (dd MMM yyyy). */ public String getPublicationDate() { - assert( null != workingVersion ); - if ( DatasetVersion.VersionState.DRAFT == workingVersion.getVersionState() ) - { - return ""; - } - Date rel_date = workingVersion.getReleaseTime(); - SimpleDateFormat fmt = new SimpleDateFormat("dd MMM yyyy"); - String r = fmt.format( rel_date.getTime() ); - return r; + assert( null != workingVersion ); + if ( DatasetVersion.VersionState.DRAFT == workingVersion.getVersionState() ) + { + return ""; + } + Date rel_date = workingVersion.getReleaseTime(); + SimpleDateFormat fmt = new SimpleDateFormat("dd MMM yyyy"); + String r = fmt.format( rel_date.getTime() ); + return r; } /** * dataset authors + * @return list of author names */ public String[] getDatasetAuthors() { - assert( null != workingVersion ); - List authors = workingVersion.getDatasetAuthors(); - int n_authors = authors.size(); - String[] rs = new String[ n_authors ]; - int pos = 0; - for( DatasetAuthor author : authors ) - { - rs[pos] = author.getName().getValue(); - ++pos; - } - return rs; + assert( null != workingVersion ); + List authorList = workingVersion.getDatasetAuthors(); + + String[] authors = new String[ authorList.size() ]; + int pos = 0; + for( DatasetAuthor author : authorList ) + { + authors[pos] = author.getName().getValue(); + ++pos; + } + return authors; + } + /** + * dataset subjects + * @return array of String containing the subjects for a page + */ + public String[] getDatasetSubjects() + { + assert( null != workingVersion ); + List subjectList= workingVersion.getDatasetSubjects(); + + String[] subjects = new String[ subjectList.size() ]; + int pos = 0; + for(String subject : subjectList) + { + subjects[pos] = subjectList.get(pos); + pos++; + } + return subjects; } /** * publisher (aka - name of root dataverse) + * @return the publisher of the version */ public String getPublisher() { - assert( null != workingVersion ); - return workingVersion.getRootDataverseNameforCitation(); + assert( null != workingVersion ); + return workingVersion.getRootDataverseNameforCitation(); } /* diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java index c30b2db0f28..f4f008db7f4 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java @@ -723,6 +723,21 @@ public List getDatasetAuthors() { return retList; } + /** + * + * @return + */ + public List getDatasetSubjects() { + //todo get "List of Authors" from datasetfieldvalue table + List retList = new ArrayList<>(); + for (DatasetField dsf : this.getDatasetFields()) { + if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.subject)) { + retList.add(dsf.getValue()); + } + } + return retList; + } + public String getDatasetProducersString(){ String retVal = ""; for (DatasetField dsf : this.getDatasetFields()) { diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index df59f1f2c8a..eb94b4c92f1 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -24,10 +24,14 @@ - + " content="#{DatasetPage.publicationDate}"/> + - + + + + From e7844fda98731b555f078d986c5fea139f7b4ca5 Mon Sep 17 00:00:00 2001 From: oscardssmith Date: Fri, 9 Jun 2017 12:27:30 -0400 Subject: [PATCH 08/12] Slight refactoring --- .../edu/harvard/iq/dataverse/DatasetPage.java | 23 +------ .../harvard/iq/dataverse/DatasetVersion.java | 64 +++++++++++++------ .../iq/dataverse/DatasetVersionTest.java | 4 ++ 3 files changed, 53 insertions(+), 38 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 1cc54fa0162..9fda416ce0e 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -3602,16 +3602,7 @@ public String getPublicationDate() public String[] getDatasetAuthors() { assert( null != workingVersion ); - List authorList = workingVersion.getDatasetAuthors(); - - String[] authors = new String[ authorList.size() ]; - int pos = 0; - for( DatasetAuthor author : authorList ) - { - authors[pos] = author.getName().getValue(); - ++pos; - } - return authors; + return workingVersion.getDatasetAuthorNames(); } /** * dataset subjects @@ -3620,17 +3611,9 @@ public String[] getDatasetAuthors() public String[] getDatasetSubjects() { assert( null != workingVersion ); - List subjectList= workingVersion.getDatasetSubjects(); - - String[] subjects = new String[ subjectList.size() ]; - int pos = 0; - for(String subject : subjectList) - { - subjects[pos] = subjectList.get(pos); - pos++; - } - return subjects; + return workingVersion.getDatasetSubjects(); } + /** * publisher (aka - name of root dataverse) * @return the publisher of the version diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java index f4f008db7f4..46e3decac49 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java @@ -145,7 +145,7 @@ public void setVersion(Long version) { @OneToMany(mappedBy = "datasetVersion", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) @OrderBy("label") // this is not our preferred ordering, which is with the AlphaNumericComparator, but does allow the files to be grouped by category - private List fileMetadatas = new ArrayList(); + private List fileMetadatas = new ArrayList<>(); public List getFileMetadatas() { return fileMetadatas; @@ -175,7 +175,7 @@ public void setTermsOfUseAndAccess(TermsOfUseAndAccess termsOfUseAndAccess) { @OneToMany(mappedBy = "datasetVersion", orphanRemoval = true, cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) //@OrderBy("datasetField.displayOrder") - private List datasetFields = new ArrayList(); + private List datasetFields = new ArrayList<>(); public List getDatasetFields() { return datasetFields; @@ -223,6 +223,7 @@ public void setInReview(boolean inReview){ /** * The only time a dataset can be in review is when it is in draft. + * @return if the dataset is being reviewed */ public boolean isInReview() { if (versionState != null && versionState.equals(VersionState.DRAFT)) { @@ -485,8 +486,8 @@ public boolean isMinorUpdate() { if (this.getFileMetadatas().size() != this.getDataset().getReleasedVersion().getFileMetadatas().size()){ return false; } else { - List current = new ArrayList(); - List previous = new ArrayList(); + List current = new ArrayList<>(); + List previous = new ArrayList<>(); for (FileMetadata fmdc : this.getFileMetadatas()){ current.add(fmdc.getDataFile()); } @@ -522,7 +523,7 @@ public void updateDefaultValuesFromTemplate(Template template) { public void initDefaultValues() { //first clear then initialize - in case values were present // from template or user entry - this.setDatasetFields(new ArrayList()); + this.setDatasetFields(new ArrayList<>()); this.setDatasetFields(this.initDatasetFields()); TermsOfUseAndAccess terms = new TermsOfUseAndAccess(); terms.setDatasetVersion(this); @@ -611,6 +612,10 @@ public String getProductionDate() { return "Production Date"; } + /** + * datasetVersion Description + * @return a string with the description of the dataset + */ public String getDescription() { for (DatasetField dsf : this.getDatasetFields()) { if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.description)) { @@ -690,7 +695,7 @@ public List getDatasetProducers(){ } public List getDatasetAuthors() { - //todo get "List of Authors" from datasetfieldvalue table + //TODO get "List of Authors" from datasetfieldvalue table List retList = new ArrayList<>(); for (DatasetField dsf : this.getDatasetFields()) { Boolean addAuthor = true; @@ -724,18 +729,41 @@ public List getDatasetAuthors() { } /** - * - * @return + * @return array of strings containing the names of the authors. */ - public List getDatasetSubjects() { + public String[] getDatasetAuthorNames() + { + List authorList = this.getDatasetAuthors(); + + String[] authors = new String[ authorList.size() ]; + int pos = 0; + for( DatasetAuthor author : authorList ) + { + authors[pos] = author.getName().getValue(); + ++pos; + } + return authors; + } + + /** + * @return array of strings containing the dataset's subjects + */ + public String[] getDatasetSubjects() { //todo get "List of Authors" from datasetfieldvalue table - List retList = new ArrayList<>(); + List subjectList = new ArrayList<>(); for (DatasetField dsf : this.getDatasetFields()) { if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.subject)) { - retList.add(dsf.getValue()); + subjectList.add(dsf.getDisplayValue()); } } - return retList; + String[] subjects = new String[ subjectList.size() ]; + int pos = 0; + for(String subject : subjectList) + { + subjects[pos] = subjectList.get(pos); + pos++; + } + return subjects; } public String getDatasetProducersString(){ @@ -832,7 +860,7 @@ public String getRootDataverseNameforCitation(){ public List getDatasetDistributors() { //todo get distributors from DatasetfieldValues - return new ArrayList(); + return new ArrayList<>(); } public void setDatasetDistributors(List distributors) { @@ -902,7 +930,7 @@ private DatasetField initDatasetField(DatasetField dsf) { public List initDatasetFields() { //retList - Return List of values - List retList = new ArrayList(); + List retList = new ArrayList<>(); //Running into null on create new dataset if (this.getDatasetFields() != null) { for (DatasetField dsf : this.getDatasetFields()) { @@ -984,7 +1012,7 @@ public String getReturnToFilePageURL (String serverName, Dataset dset, DataFile } public List copyDatasetFields(List copyFromList) { - List retList = new ArrayList(); + List retList = new ArrayList<>(); for (DatasetField sourceDsf : copyFromList) { //the copy needs to have the current version @@ -1000,7 +1028,7 @@ public List getFlatDatasetFields() { } private List getFlatDatasetFields(List dsfList) { - List retList = new LinkedList(); + List retList = new LinkedList<>(); for (DatasetField dsf : dsfList) { retList.add(dsf); if (dsf.getDatasetFieldType().isCompound()) { @@ -1038,7 +1066,7 @@ public String getSemanticVersion() { } public List validateRequired() { - List returnListreturnList = new ArrayList(); + List returnListreturnList = new ArrayList<>(); ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); for (DatasetField dsf : this.getFlatDatasetFields()) { @@ -1055,7 +1083,7 @@ public List validateRequired() { } public Set validate() { - Set returnSet = new HashSet(); + Set returnSet = new HashSet<>(); ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); diff --git a/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java b/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java index e00bb21fbef..dad8f87ca6d 100644 --- a/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java +++ b/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java @@ -81,4 +81,8 @@ public void testIsInReview() { assertEquals(false, nonDraft.isInReview()); } + @Test + public void metaTags() { + assertEquals(false, false); + } } From df87f96a227e7b677892af52fa6fa24c97db172c Mon Sep 17 00:00:00 2001 From: oscardssmith Date: Fri, 9 Jun 2017 15:23:25 -0400 Subject: [PATCH 09/12] Lots of angle bracket fixes, code formatting --- .../search/tests/grant-authusers-add-on-root | 2 +- .../edu/harvard/iq/dataverse/DatasetPage.java | 104 +++++++++--------- .../harvard/iq/dataverse/DatasetVersion.java | 45 +++----- .../iq/dataverse/DatasetVersionTest.java | 8 +- 4 files changed, 74 insertions(+), 85 deletions(-) diff --git a/scripts/search/tests/grant-authusers-add-on-root b/scripts/search/tests/grant-authusers-add-on-root index 08b245fa561..0ab3aad9499 100755 --- a/scripts/search/tests/grant-authusers-add-on-root +++ b/scripts/search/tests/grant-authusers-add-on-root @@ -1,5 +1,5 @@ #!/bin/sh . scripts/search/export-keys -OUTPUT=`curl -s -X POST -H "Content-type:application/json" -d "{\"assignee\": \":authenticated-users\",\"role\": \"fullContributor\"}" "http://localhost:8080/api/dataverses/root/assignments?key=$ADMINKEY"` +OUTPUT=`curl -s -X POST -H "Content-type:application/json" -d "{\"assignee\": \":authenticated-users\",\"role\": \"fullContributor\"}" "http://localhost:8080/api/dataverses/root/assignments?key=edf308d1-f62f-471b-8973-dfd65c4a0016"` echo $OUTPUT echo $OUTPUT | jq ' .data | {assignee,_roleAlias}' diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 9fda416ce0e..e9b1d518c3c 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -173,7 +173,7 @@ public enum DisplayMode { private Long ownerId; private Long versionId; private int selectedTabIndex; - private List newFiles = new ArrayList(); + private List newFiles = new ArrayList<>(); private DatasetVersion workingVersion; private int releaseRadio = 1; private int deaccessionRadio = 0; @@ -185,7 +185,7 @@ public enum DisplayMode { private String displayCitation; private String deaccessionForwardURLFor = ""; private String showVersionList = "false"; - private List