From 31898440f36af11bc89f34cb3fb2b3714edad4d2 Mon Sep 17 00:00:00 2001 From: grahamtriggs Date: Thu, 22 Oct 2015 15:27:05 +0100 Subject: [PATCH] [VIVO-1115] Pass properties from the config to enable AltMetric badges --- .../individual/IndividualResponseBuilder.java | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/individual/IndividualResponseBuilder.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/individual/IndividualResponseBuilder.java index e3ebb1d5e..af6be88da 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/individual/IndividualResponseBuilder.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/individual/IndividualResponseBuilder.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; +import java.util.Properties; import com.hp.hpl.jena.rdf.model.RDFNode; import org.apache.commons.logging.Log; @@ -62,7 +63,7 @@ class IndividualResponseBuilder { private final ExecuteDataRetrieval eDataRetrieval; private final Individual individual; - + public IndividualResponseBuilder(VitroRequest vreq, Individual individual) { this.vreq = vreq; this.wadf = vreq.getWebappDaoFactory(); @@ -74,6 +75,7 @@ class IndividualResponseBuilder { this.eDataRetrieval = new ExecuteDataRetrieval(this.vreq, this.vreq.getDisplayModel(), this.individual); } + ResponseValues assembleResponse() throws TemplateModelException { Map body = new HashMap(); @@ -83,7 +85,9 @@ class IndividualResponseBuilder { body.put("temporalVisualizationEnabled", getTemporalVisualizationFlag()); body.put("profilePageTypesEnabled", getprofilePageTypesFlag()); body.put("verbosePropertySwitch", getVerbosePropertyValues()); - + + addAltMetricOptions(body); + //Execute data getters that might apply to this individual, e.g. because of the class of the individual try{ this.eDataRetrieval.executeDataGetters(body); @@ -171,7 +175,32 @@ class IndividualResponseBuilder { } return map; } - + + private void addAltMetricOptions(Map body) { + ConfigurationProperties properties = ConfigurationProperties.getBean(vreq); + + if (properties != null) { + String enabled = properties.getProperty("resource.altmetric"); //, "enabled" + String displayTo = properties.getProperty("resource.altmetric.displayto", "right"); + String badgeType = properties.getProperty("resource.altmetric.badge-type", "donut"); + String badgeHideEmpty = properties.getProperty("resource.altmetric.hide-no-mentions", "true"); + String badgePopover = properties.getProperty("resource.altmetric.badge-popover", "right"); + String badgeDetails = properties.getProperty("resource.altmetric.badge-details"); + + if ("enabled".equalsIgnoreCase(enabled)) { + body.put("altmetricEnabled", true); + + body.put("altmetricDisplayTo", displayTo); + body.put("altmetricBadgeType", badgeType); + if ("true".equalsIgnoreCase(badgeHideEmpty)) { + body.put("altmetricHideEmpty", true); + } + body.put("altmetricPopover", badgePopover); + body.put("altmetricDetails", badgeDetails); + } + } + } + private boolean getTemporalVisualizationFlag() { String property = ConfigurationProperties.getBean(vreq).getProperty( "visualization.temporal");