diff --git a/src/main/java/org/genesys2/server/model/elastic/AccessionDetails.java b/src/main/java/org/genesys2/server/model/elastic/AccessionDetails.java
index 16c92c4450e6f72caa01beaeb03c4b70f7ebaf77..ec57c85ee780b1241111fa051380927e6815af8a 100644
--- a/src/main/java/org/genesys2/server/model/elastic/AccessionDetails.java
+++ b/src/main/java/org/genesys2/server/model/elastic/AccessionDetails.java
@@ -60,6 +60,8 @@ public class AccessionDetails {
private Boolean art15;
private Integer sampStat;
private List storage;
+ @Field(type = FieldType.String)
+ private String doi;
@Field(type = FieldType.Object)
private Institute institute;
@@ -132,6 +134,7 @@ public class AccessionDetails {
ad.cropName=accession.getCropName();
ad.inSgsv = accession.getInSvalbard() != null && accession.getInSvalbard() == true ? true : false;
ad.cropName = accession.getCropName();
+ ad.doi = accession.getDoi();
if (accession.getAccessionId().getPdci() != null) {
ad.pdciScore = accession.getAccessionId().getPdci().getScore();
@@ -538,4 +541,12 @@ public class AccessionDetails {
public void setAcceName(String acceName) {
this.acceName = acceName;
}
+
+ public String getDoi() {
+ return doi;
+ }
+
+ public void setDoi(String doi) {
+ this.doi = doi;
+ }
}
diff --git a/src/main/java/org/genesys2/server/model/genesys/Accession.java b/src/main/java/org/genesys2/server/model/genesys/Accession.java
index b11937d0769826ae2144a943a81e2699f8f355aa..07258de822d85a26ca84f9865338bed56be8175b 100644
--- a/src/main/java/org/genesys2/server/model/genesys/Accession.java
+++ b/src/main/java/org/genesys2/server/model/genesys/Accession.java
@@ -40,7 +40,7 @@ import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "accession",
// Unique constraints
- uniqueConstraints = { @UniqueConstraint(name = "UQ_accession_genus_inst", columnNames = { "instituteId", "taxGenus", "acceNumb" }) },
+ uniqueConstraints = { @UniqueConstraint(name = "UQ_accession_genus_inst", columnNames = { "instituteId", "taxGenus", "acceNumb" }), @UniqueConstraint(name = "UQ_accession_doi", columnNames = {"doi"})},
// Indexes
indexes = { @Index(name = "IX_seqNo", columnList = "seqNo"), @Index(name = "IX_accession_lastModifiedDate", columnList = "lastModifiedDate") })
public class Accession extends AccessionData {
diff --git a/src/main/java/org/genesys2/server/model/genesys/AccessionData.java b/src/main/java/org/genesys2/server/model/genesys/AccessionData.java
index 1174890a08cea34bf328554f24280d8df0c69a3a..2df8b4ac3c9b88ab104c8733ef9aa8621f19a271 100644
--- a/src/main/java/org/genesys2/server/model/genesys/AccessionData.java
+++ b/src/main/java/org/genesys2/server/model/genesys/AccessionData.java
@@ -81,6 +81,9 @@ public abstract class AccessionData implements IdUUID, Serializable {
@JoinColumn(name = "id")
private AccessionId accessionId;
+ @Column(name = "doi")
+ private String doi;
+
@Column(name = "instCode", length = 10, nullable = false)
private String instituteCode;
@@ -414,4 +417,12 @@ public abstract class AccessionData implements IdUUID, Serializable {
public void setCrop(Crop crop) {
this.crop = crop;
}
+
+ public String getDoi() {
+ return doi;
+ }
+
+ public void setDoi(String doi) {
+ this.doi = doi;
+ }
}
diff --git a/src/main/java/org/genesys2/server/model/json/AccessionJson.java b/src/main/java/org/genesys2/server/model/json/AccessionJson.java
index b05e7a6e43cef43d0ee9e80a44f825d34691ca6b..a59dc4b76c0f63055dcdaaf15cebd774ab732740 100644
--- a/src/main/java/org/genesys2/server/model/json/AccessionJson.java
+++ b/src/main/java/org/genesys2/server/model/json/AccessionJson.java
@@ -78,6 +78,8 @@ public class AccessionJson {
private boolean historic;
@JsonProperty(value = Accession.ACCEURL)
private String acceUrl;
+ @JsonProperty(value = Accession.DOI)
+ private String doi;
public long getVersion() {
return version;
@@ -302,4 +304,12 @@ public class AccessionJson {
public void setAcceUrl(String acceUrl) {
this.acceUrl = acceUrl;
}
+
+ public String getDoi() {
+ return doi;
+ }
+
+ public void setDoi(String doi) {
+ this.doi = doi;
+ }
}
diff --git a/src/main/java/org/genesys2/server/model/json/Api1Constants.java b/src/main/java/org/genesys2/server/model/json/Api1Constants.java
index a3523017d8b263f502715817acded42ea294e6a9..107d47bb32bdf6a4d09bacb238700b0712e2991a 100644
--- a/src/main/java/org/genesys2/server/model/json/Api1Constants.java
+++ b/src/main/java/org/genesys2/server/model/json/Api1Constants.java
@@ -191,6 +191,11 @@ public interface Api1Constants {
*/
public static final String CROPNAME = "cropName";
+ /**
+ * Accession DOI (Digital Object Identifier)
+ */
+ public static final String DOI = "doi";
+
}
public static interface Institute {
diff --git a/src/main/java/org/genesys2/server/service/FilterConstants.java b/src/main/java/org/genesys2/server/service/FilterConstants.java
index 0a39eec2e864ad7450a5bcfec5e8f28e13a43bd1..7bb796fb1b4b32613f10517bd9d033d581589fb5 100644
--- a/src/main/java/org/genesys2/server/service/FilterConstants.java
+++ b/src/main/java/org/genesys2/server/service/FilterConstants.java
@@ -91,4 +91,6 @@ public interface FilterConstants {
public static final String LAST_MODIFIED_DATE = "lastModifiedDate";
+ public static final String DOI = "doi";
+
}
diff --git a/src/main/java/org/genesys2/server/service/impl/DirectMysqlQuery.java b/src/main/java/org/genesys2/server/service/impl/DirectMysqlQuery.java
index 01b699bbd88e459205aa2bb190f72bd8b31549e7..3950b4bf0a73b543c48ffd77baf03dcb06a758b1 100644
--- a/src/main/java/org/genesys2/server/service/impl/DirectMysqlQuery.java
+++ b/src/main/java/org/genesys2/server/service/impl/DirectMysqlQuery.java
@@ -208,6 +208,7 @@ public class DirectMysqlQuery {
createQuery(whereBuffer, "col.collMissId", filters.get(FilterConstants.COLLMISSID), params);
createQuery(whereBuffer, "storage.storage", filters.get(FilterConstants.STORAGE), params);
createQuery(whereBuffer, "pdci.score", filters.get(FilterConstants.PDCI), params);
+ createQuery(whereBuffer, "doi", filters.get(FilterConstants.DOI), params);
for (final AppliedFilter methodFilter : filters.methodFilters()) {
// Handle Genesys Method!
diff --git a/src/main/java/org/genesys2/server/service/impl/FilterHandler.java b/src/main/java/org/genesys2/server/service/impl/FilterHandler.java
index ab953536a7fc4114510036f9d29ac664b176e547..db51d992d29378bba765a0aa84ee3759e5fd4524 100644
--- a/src/main/java/org/genesys2/server/service/impl/FilterHandler.java
+++ b/src/main/java/org/genesys2/server/service/impl/FilterHandler.java
@@ -83,6 +83,7 @@ public class FilterHandler {
this.availableFilters.add(new BasicFilter(FilterConstants.CROPS, DataType.STRING));
this.availableFilters.add(new BasicFilter(FilterConstants.CROPNAME, DataType.STRING));
this.availableFilters.add(new BasicFilter(FilterConstants.LISTS, DataType.STRING));
+ this.availableFilters.add(new BasicFilter(FilterConstants.DOI, DataType.STRING));
this.availableFilters.add(new BasicFilter(FilterConstants.REGION_ORIGIN, DataType.STRING));
this.availableFilters.add(new BasicFilter(FilterConstants.REGION_HOLD_INSTITUTE, DataType.STRING));
diff --git a/src/main/java/org/genesys2/server/service/impl/GenesysServiceImpl.java b/src/main/java/org/genesys2/server/service/impl/GenesysServiceImpl.java
index 009f1dd27dd9631844d7cd77a1e9d4fb3429dbdf..192cf993e2e2820b2bf5f34c0bdfbd2912d4c0cd 100644
--- a/src/main/java/org/genesys2/server/service/impl/GenesysServiceImpl.java
+++ b/src/main/java/org/genesys2/server/service/impl/GenesysServiceImpl.java
@@ -220,6 +220,7 @@ public class GenesysServiceImpl implements GenesysService, DatasetService {
columnList.add("geo." + Api1Constants.Geo.LATITUDE_LONGITUDE);
columnList.add("coll." + Api1Constants.Collecting.COLLMISSID);
columnList.add("pdci." + Api1Constants.Pdci.SCORE);
+ columnList.add(Api1Constants.Accession.DOI);
availableDisplayColumns = Collections.unmodifiableList(columnList);
List displayList = new ArrayList();
diff --git a/src/main/resources/content/language.properties b/src/main/resources/content/language.properties
index c8315093eba0c55cf78ec70a9433069023e5c863..3938b3b66bd241c0c6741f67462109299fc833c6 100644
--- a/src/main/resources/content/language.properties
+++ b/src/main/resources/content/language.properties
@@ -431,6 +431,7 @@ filter.lastModifiedDate=Last Modified Date
filter.alias=Accession name
filter.crops=Crop name
filter.cropName=Provided crop name
+filter.doi=DOI
filter.regionOfOrigin=Region of Origin
filter.regionOfHoldingInstitute=Region of Holding Institute
filter.orgCty.iso3=Country of Origin
@@ -753,6 +754,7 @@ resolver.resolve=Resolve
resolver.page.reverse.title=Resolution results
accession.purl=Permanent URL
+accession.doi=DOI
menu.admin.kpi=KPI
admin.kpi.index.page=KPI
diff --git a/src/main/resources/liquibase/liquibase-changeLog.yml b/src/main/resources/liquibase/liquibase-changeLog.yml
index 0f711d74ca7af42bc91705ee168d4631b89fefac..bfccd94e61fe85c3351affec7fa4b21b0393a043 100644
--- a/src/main/resources/liquibase/liquibase-changeLog.yml
+++ b/src/main/resources/liquibase/liquibase-changeLog.yml
@@ -178,3 +178,38 @@ databaseChangeLog:
- sql:
comment: accountType#SYSTEM to user#sys==1
sql: update user set sys = 1 where accountType = 'SYSTEM';
+
+- changeSet:
+ id: 1497558768000-2
+ author: maxymborodenko (generated)
+ changes:
+ - addColumn:
+ tableName: accession
+ columns:
+ - column:
+ name: doi
+ type: varchar(255)
+
+- changeSet:
+ id: 1497558768000-3
+ author: maxymborodenko (generated)
+ changes:
+ - addUniqueConstraint:
+ columnNames: doi
+ constraintName: UQ_accession_doi
+ deferrable: true
+ disabled: true
+ initiallyDeferred: true
+ tableName: accession
+ tablespace: A String
+
+- changeSet:
+ id: 1497558768000-4
+ author: maxymborodenko (generated)
+ changes:
+ - addColumn:
+ tableName: accessionhistoric
+ columns:
+ - column:
+ name: doi
+ type: varchar(255)
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/accession/details.jsp b/src/main/webapp/WEB-INF/jsp/accession/details.jsp
index 1fc62f84fed0040bafa979a737c794709782f098..d5b187cda94a67fb140b9339ae987fac208d97aa 100644
--- a/src/main/webapp/WEB-INF/jsp/accession/details.jsp
+++ b/src/main/webapp/WEB-INF/jsp/accession/details.jsp
@@ -341,6 +341,20 @@
+
diff --git a/src/main/webapp/WEB-INF/jsp/accession/explore2.jsp b/src/main/webapp/WEB-INF/jsp/accession/explore2.jsp
index df00761b3a348bd8fff534d07ba2c82bbfcffbfd..8995a8864e44f54aa5f3b7459a388f4a29922d6d 100644
--- a/src/main/webapp/WEB-INF/jsp/accession/explore2.jsp
+++ b/src/main/webapp/WEB-INF/jsp/accession/explore2.jsp
@@ -239,6 +239,18 @@
|
+
+
+
+
+ ${accession.doi}
+
+
+
+
+
+ |
+
@@ -880,6 +892,15 @@
'class': "notimportant hidden-xs hidden-sm"
}).appendTo(row))));
+
+ $("", { text: pagedData.content[i].doi })
+ .appendTo($("", {
+ dir: "ltr",
+ 'class': "sci-name"
+ }).appendTo($("").appendTo($(" | ", {
+ 'class': "notimportant hidden-xs hidden-sm"
+ }).appendTo(row))));
+
var cropNamesTd = $(" | ", {
'class': "notimportant hidden-xs hidden-sm"
diff --git a/src/main/webapp/WEB-INF/tags/filters/filter-list.tag b/src/main/webapp/WEB-INF/tags/filters/filter-list.tag
index e271551687349ca1be042c591822245a46dfffc4..9db4350b8c6e81991f0d4ac86d1967078f03ea56 100644
--- a/src/main/webapp/WEB-INF/tags/filters/filter-list.tag
+++ b/src/main/webapp/WEB-INF/tags/filters/filter-list.tag
@@ -173,4 +173,9 @@
appliedFilters="${appliedFilters}" type="range"/>
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/filters/filter.tag b/src/main/webapp/WEB-INF/tags/filters/filter.tag
index dc3f98afb352d134803bfe2098933ac26853c880..49c0807ac9868d689aab9c783aa454f061b2f508 100644
--- a/src/main/webapp/WEB-INF/tags/filters/filter.tag
+++ b/src/main/webapp/WEB-INF/tags/filters/filter.tag
@@ -123,6 +123,16 @@
+
+
+ _input" class="span2 form-control string-type" />
+
+ " i-key="">
+
+
+
+
+