NIHVIVO-2744 Display of mostSpecificType(s) on individual profile (in place of former moniker).
This commit is contained in:
parent
55c2f8f213
commit
31a8ec8b3a
3 changed files with 89 additions and 102 deletions
|
@ -71,16 +71,9 @@
|
|||
<h1 class="fn foaf-person">
|
||||
<#-- Label -->
|
||||
<@p.label individual editable />
|
||||
|
||||
<#-- Moniker / Preferred Title -->
|
||||
<#-- Use Preferred Title over Moniker if it is populated -->
|
||||
<#assign title = (propertyGroups.getProperty("${core}preferredTitle").firstValue)! />
|
||||
<#if ! title?has_content>
|
||||
<#assign title = individual.moniker>
|
||||
</#if>
|
||||
<#if title?has_content>
|
||||
<span class="preferred-title">${title}</span>
|
||||
</#if>
|
||||
|
||||
<#-- Most-specific types -->
|
||||
<@p.mostSpecificTypes individual />
|
||||
</h1>
|
||||
</#if>
|
||||
|
||||
|
|
|
@ -9,8 +9,6 @@ import java.util.Map;
|
|||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.openrdf.model.URI;
|
||||
import org.openrdf.model.impl.URIImpl;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||
|
@ -25,6 +23,12 @@ import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
|||
public class IndividualTemplateModel extends BaseIndividualTemplateModel {
|
||||
|
||||
private static final Log log = LogFactory.getLog(IndividualTemplateModel.class);
|
||||
|
||||
private static final String FOAF = "http://xmlns.com/foaf/0.1/";
|
||||
private static final String CORE = "http://vivoweb.org/ontology/core#";
|
||||
private static final String PERSON_CLASS = FOAF + "Person";
|
||||
private static final String ORGANIZATION_CLASS = FOAF + "Organization";
|
||||
|
||||
private Map<String, String> qrData = null;
|
||||
|
||||
public IndividualTemplateModel(Individual individual, VitroRequest vreq) {
|
||||
|
@ -34,98 +38,16 @@ public class IndividualTemplateModel extends BaseIndividualTemplateModel {
|
|||
private String getBaseVisUrl() {
|
||||
return getUrl(Route.VISUALIZATION_SHORT.path());
|
||||
}
|
||||
|
||||
/* Access methods for templates */
|
||||
|
||||
public boolean isPerson() {
|
||||
return isVClass("http://xmlns.com/foaf/0.1/Person");
|
||||
}
|
||||
|
||||
public boolean isOrganization() {
|
||||
return isVClass("http://xmlns.com/foaf/0.1/Organization");
|
||||
}
|
||||
|
||||
public String getCoAuthorVisUrl() {
|
||||
|
||||
String coauthorVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.COAUTHORSHIP_VIS_SHORT_URL + "/";
|
||||
|
||||
return getVisUrl(coauthorVisURL);
|
||||
}
|
||||
|
||||
public String getCoInvestigatorVisUrl() {
|
||||
|
||||
String coinvestigatorVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.COINVESTIGATOR_VIS_SHORT_URL + "/";
|
||||
|
||||
return getVisUrl(coinvestigatorVisURL);
|
||||
}
|
||||
|
||||
private String getVisUrl(String coinvestigatorVisURL) {
|
||||
boolean isUsingDefaultNameSpace = UrlBuilder.isUriInDefaultNamespace(
|
||||
getUri(),
|
||||
vreq);
|
||||
|
||||
if (isUsingDefaultNameSpace) {
|
||||
|
||||
return coinvestigatorVisURL + getLocalName();
|
||||
|
||||
} else {
|
||||
|
||||
return UrlBuilder.addParams(
|
||||
coinvestigatorVisURL,
|
||||
new ParamMap(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY, getUri()));
|
||||
}
|
||||
}
|
||||
|
||||
public String getTemporalGraphUrl() {
|
||||
if (!isOrganization()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String temporalVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.PUBLICATION_TEMPORAL_VIS_SHORT_URL + "/";
|
||||
|
||||
return getVisUrl(temporalVisURL);
|
||||
}
|
||||
|
||||
public String getMapOfScienceUrl() {
|
||||
|
||||
String mapOfScienceVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.MAP_OF_SCIENCE_VIS_SHORT_URL + "/";
|
||||
|
||||
return getVisUrl(mapOfScienceVisURL);
|
||||
}
|
||||
|
||||
public String getSelfEditingId() {
|
||||
String id = null;
|
||||
String idMatchingProperty = ConfigurationProperties.getBean(getServletContext()).getProperty("selfEditing.idMatchingProperty");
|
||||
if (! StringUtils.isBlank(idMatchingProperty)) {
|
||||
// Use assertions model to side-step filtering. We need to get the value regardless of whether the property
|
||||
// is visible to the current user.
|
||||
WebappDaoFactory wdf = vreq.getAssertionsWebappDaoFactory();
|
||||
Collection<DataPropertyStatement> ids =
|
||||
wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, idMatchingProperty);
|
||||
if (ids.size() > 0) {
|
||||
id = ids.iterator().next().getData();
|
||||
}
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
public Map<String, String> doQrData() {
|
||||
if(qrData == null)
|
||||
qrData = generateQrData();
|
||||
return qrData;
|
||||
}
|
||||
|
||||
|
||||
private Map<String, String> generateQrData() {
|
||||
String core = "http://vivoweb.org/ontology/core#";
|
||||
String foaf = "http://xmlns.com/foaf/0.1/";
|
||||
|
||||
Map<String,String> qrData = new HashMap<String,String>();
|
||||
WebappDaoFactory wdf = vreq.getAssertionsWebappDaoFactory();
|
||||
Collection<DataPropertyStatement> firstNames = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, foaf + "firstName");
|
||||
Collection<DataPropertyStatement> lastNames = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, foaf + "lastName");
|
||||
Collection<DataPropertyStatement> preferredTitles = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, core + "preferredTitle");
|
||||
Collection<DataPropertyStatement> phoneNumbers = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, core + "phoneNumber");
|
||||
Collection<DataPropertyStatement> emails = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, core + "email");
|
||||
Collection<DataPropertyStatement> firstNames = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, FOAF + "firstName");
|
||||
Collection<DataPropertyStatement> lastNames = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, FOAF + "lastName");
|
||||
Collection<DataPropertyStatement> preferredTitles = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, CORE + "preferredTitle");
|
||||
Collection<DataPropertyStatement> phoneNumbers = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, CORE + "phoneNumber");
|
||||
Collection<DataPropertyStatement> emails = wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, CORE + "email");
|
||||
|
||||
if(firstNames != null && ! firstNames.isEmpty())
|
||||
qrData.put("firstName", firstNames.toArray(new DataPropertyStatement[firstNames.size()])[0].getData());
|
||||
|
@ -153,4 +75,76 @@ public class IndividualTemplateModel extends BaseIndividualTemplateModel {
|
|||
|
||||
return qrData;
|
||||
}
|
||||
|
||||
|
||||
/* Access methods for templates */
|
||||
|
||||
public boolean isPerson() {
|
||||
return isVClass(PERSON_CLASS);
|
||||
}
|
||||
|
||||
public boolean isOrganization() {
|
||||
return isVClass(ORGANIZATION_CLASS);
|
||||
}
|
||||
|
||||
public String getCoAuthorVisUrl() {
|
||||
String coauthorVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.COAUTHORSHIP_VIS_SHORT_URL + "/";
|
||||
return getVisUrl(coauthorVisURL);
|
||||
}
|
||||
|
||||
public String getCoInvestigatorVisUrl() {
|
||||
String coinvestigatorVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.COINVESTIGATOR_VIS_SHORT_URL + "/";
|
||||
return getVisUrl(coinvestigatorVisURL);
|
||||
}
|
||||
|
||||
private String getVisUrl(String coinvestigatorVisURL) {
|
||||
boolean isUsingDefaultNameSpace = UrlBuilder.isUriInDefaultNamespace(
|
||||
getUri(),
|
||||
vreq);
|
||||
|
||||
if (isUsingDefaultNameSpace) {
|
||||
return coinvestigatorVisURL + getLocalName();
|
||||
} else {
|
||||
return UrlBuilder.addParams(
|
||||
coinvestigatorVisURL,
|
||||
new ParamMap(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY, getUri()));
|
||||
}
|
||||
}
|
||||
|
||||
public String getTemporalGraphUrl() {
|
||||
if (!isOrganization()) {
|
||||
return null;
|
||||
}
|
||||
String temporalVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.PUBLICATION_TEMPORAL_VIS_SHORT_URL + "/";
|
||||
return getVisUrl(temporalVisURL);
|
||||
}
|
||||
|
||||
public String getMapOfScienceUrl() {
|
||||
String mapOfScienceVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.MAP_OF_SCIENCE_VIS_SHORT_URL + "/";
|
||||
return getVisUrl(mapOfScienceVisURL);
|
||||
}
|
||||
|
||||
public String getSelfEditingId() {
|
||||
String id = null;
|
||||
String idMatchingProperty = ConfigurationProperties.getBean(getServletContext()).getProperty("selfEditing.idMatchingProperty");
|
||||
if (! StringUtils.isBlank(idMatchingProperty)) {
|
||||
// Use assertions model to side-step filtering. We need to get the value regardless of whether the property
|
||||
// is visible to the current user.
|
||||
WebappDaoFactory wdf = vreq.getAssertionsWebappDaoFactory();
|
||||
Collection<DataPropertyStatement> ids =
|
||||
wdf.getDataPropertyStatementDao().getDataPropertyStatementsForIndividualByDataPropertyURI(individual, idMatchingProperty);
|
||||
if (ids.size() > 0) {
|
||||
id = ids.iterator().next().getData();
|
||||
}
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
public Map<String, String> doQrData() {
|
||||
if(qrData == null)
|
||||
qrData = generateQrData();
|
||||
return qrData;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1190,7 +1190,7 @@ nav#alpha-browse-container {
|
|||
font-size: 1.375em;
|
||||
color: #2485ae;
|
||||
}
|
||||
#individual-intro span.preferred-title {
|
||||
#individual-intro span.most-specific-type {
|
||||
font-size: .825em;
|
||||
color: #5e6363;
|
||||
border-left: 1px solid #A6B1B0;
|
||||
|
@ -1260,7 +1260,7 @@ ul.individual-urls-people li a {
|
|||
color: #2485ae;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
h1.fn .preferred-title {
|
||||
h1.fn .most-specific-type {
|
||||
font-size: .825em;
|
||||
color: #5e6363;
|
||||
border-left: 1px solid #a6b1b0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue