1. Made changes to the coautho/copi link creator utility to first test for short-uri possibility.

This commit is contained in:
cdtank 2011-04-28 22:07:43 +00:00
parent 29ca04f648
commit 0aeb7dc8f9
3 changed files with 86 additions and 16 deletions

View file

@ -19,7 +19,7 @@ function getWellFormedURLs(given_uri, type) {
finalURL = $.ajax({ finalURL = $.ajax({
url: contextPath + "/visualizationAjax", url: contextPath + "/visualizationAjax",
data: ({vis: "utilities", vis_mode: "PERSON_LEVEL_URL", uri: given_uri}), data: ({vis: "utilities", vis_mode: "COAUTHORSHIP_URL", uri: given_uri}),
dataType: "text", dataType: "text",
async: false, async: false,
success:function(data){ success:function(data){

View file

@ -7,6 +7,8 @@ import java.util.Map;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.openrdf.model.URI;
import org.openrdf.model.impl.URIImpl;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.hp.hpl.jena.iri.IRI; import com.hp.hpl.jena.iri.IRI;
@ -17,6 +19,7 @@ import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.RDFNode; import com.hp.hpl.jena.rdf.model.RDFNode;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
@ -44,6 +47,24 @@ import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.Visual
*/ */
public class UtilitiesRequestHandler implements VisualizationRequestHandler { public class UtilitiesRequestHandler implements VisualizationRequestHandler {
/**
* TODO: Remove this method once Rebecca creates one. Right now it is the exact copy of the method found in
* BaseIndividualTemplateModel.getRdfUrl
* @return
*/
private boolean isIndividualURIBasedOnDefaultNamespace(String givenURI, VitroRequest vitroRequest) {
URI uri = new URIImpl(givenURI);
String namespace = uri.getNamespace();
// Individuals in the default namespace
// e.g., http://vivo.cornell.edu/individual/n2345/n2345.rdf
// where default namespace = http://vivo.cornell.edu/individual/
// Other individuals: http://some.other.namespace/n2345?format=rdfxml
String defaultNamespace = vitroRequest.getWebappDaoFactory().getDefaultNamespace();
return (defaultNamespace.equals(namespace)) ? true : false;
}
public Object generateAjaxVisualization(VitroRequest vitroRequest, public Object generateAjaxVisualization(VitroRequest vitroRequest,
Log log, Log log,
Dataset dataset) Dataset dataset)
@ -171,17 +192,31 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
} else if (VisualizationFrameworkConstants.COAUTHOR_UTILS_VIS_MODE } else if (VisualizationFrameworkConstants.COAUTHOR_UTILS_VIS_MODE
.equalsIgnoreCase(visMode)) { .equalsIgnoreCase(visMode)) {
if (isIndividualURIBasedOnDefaultNamespace(individualURI, vitroRequest)) {
try {
Individual individual = vitroRequest.getWebappDaoFactory().getIndividualDao().getIndividualByURI(individualURI);
return UrlBuilder.getUrl(VisualizationFrameworkConstants.SHORT_URL_VISUALIZATION_REQUEST_PREFIX)
+ "/" + VisualizationFrameworkConstants.COAUTHORSHIP_VIS_SHORT_URL
+ "/" + individual.getLocalName();
} catch(Exception e) {
/* /*
* By default we will be generating profile url else some specific url like * In case of exception dont do anything let it create long form urls.
* coAuthorShip vis url for that individual.
* */ * */
}
}
ParamMap coAuthorProfileURLParams = new ParamMap( ParamMap coAuthorProfileURLParams = new ParamMap(
VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY, VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY,
individualURI, individualURI,
VisualizationFrameworkConstants.VIS_TYPE_KEY, VisualizationFrameworkConstants.VIS_TYPE_KEY,
VisualizationFrameworkConstants.COAUTHORSHIP_VIS, VisualizationFrameworkConstants.PERSON_LEVEL_VIS,
VisualizationFrameworkConstants.RENDER_MODE_KEY, VisualizationFrameworkConstants.VIS_MODE_KEY,
VisualizationFrameworkConstants.STANDALONE_RENDER_MODE); VisualizationFrameworkConstants.COAUTHOR_VIS_MODE);
return UrlBuilder.getUrl( return UrlBuilder.getUrl(
VisualizationFrameworkConstants.FREEMARKERIZED_VISUALIZATION_URL_PREFIX, VisualizationFrameworkConstants.FREEMARKERIZED_VISUALIZATION_URL_PREFIX,
@ -190,6 +225,24 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
} else if (VisualizationFrameworkConstants.COPI_UTILS_VIS_MODE } else if (VisualizationFrameworkConstants.COPI_UTILS_VIS_MODE
.equalsIgnoreCase(visMode)) { .equalsIgnoreCase(visMode)) {
if (isIndividualURIBasedOnDefaultNamespace(individualURI, vitroRequest)) {
try {
Individual individual = vitroRequest.getWebappDaoFactory().getIndividualDao().getIndividualByURI(individualURI);
return UrlBuilder.getUrl(VisualizationFrameworkConstants.SHORT_URL_VISUALIZATION_REQUEST_PREFIX)
+ "/" + VisualizationFrameworkConstants.COINVESTIGATOR_VIS_SHORT_URL
+ "/" + individual.getLocalName();
} catch(Exception e) {
/*
* In case of exception dont do anything let it create long form urls.
* */
}
}
/* /*
* By default we will be generating profile url else some specific url like * By default we will be generating profile url else some specific url like
* coPI vis url for that individual. * coPI vis url for that individual.
@ -289,7 +342,8 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
return getHighestLevelOrganizationTemporalGraphVisURL( return getHighestLevelOrganizationTemporalGraphVisURL(
highestLevelOrganizationQueryHandler.getQueryResult(), highestLevelOrganizationQueryHandler.getQueryResult(),
fieldLabelToOutputFieldLabel); fieldLabelToOutputFieldLabel,
vitroRequest);
} else { } else {
@ -304,7 +358,8 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
} }
private String getHighestLevelOrganizationTemporalGraphVisURL(ResultSet resultSet, private String getHighestLevelOrganizationTemporalGraphVisURL(ResultSet resultSet,
Map<String, String> fieldLabelToOutputFieldLabel) { Map<String, String> fieldLabelToOutputFieldLabel,
VitroRequest vitroRequest) {
GenericQueryMap queryResult = new GenericQueryMap(); GenericQueryMap queryResult = new GenericQueryMap();
@ -321,6 +376,23 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
queryResult.addEntry(fieldLabelToOutputFieldLabel.get("organization"), queryResult.addEntry(fieldLabelToOutputFieldLabel.get("organization"),
organizationNode.toString()); organizationNode.toString());
if (isIndividualURIBasedOnDefaultNamespace(organizationNode.toString(), vitroRequest)) {
try {
Individual individual = vitroRequest.getWebappDaoFactory().getIndividualDao().getIndividualByURI(organizationNode.toString());
return UrlBuilder.getUrl(VisualizationFrameworkConstants.SHORT_URL_VISUALIZATION_REQUEST_PREFIX)
+ "/" + VisualizationFrameworkConstants.PUBLICATION_TEMPORAL_VIS_SHORT_URL
+ "/" + individual.getLocalName();
} catch(Exception e) {
/*
* In case of exception dont do anything let it create long form urls.
* */
}
}
ParamMap highestLevelOrganizationTemporalGraphVisURLParams = new ParamMap( ParamMap highestLevelOrganizationTemporalGraphVisURLParams = new ParamMap(
VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY, VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY,
organizationNode.toString(), organizationNode.toString(),

View file

@ -50,7 +50,6 @@ public class IndividualTemplateModel extends BaseIndividualTemplateModel {
String coauthorVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.COAUTHORSHIP_VIS_SHORT_URL + "/"; String coauthorVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.COAUTHORSHIP_VIS_SHORT_URL + "/";
return getVisUrl(coauthorVisURL); return getVisUrl(coauthorVisURL);
} }
/** /**
@ -100,7 +99,6 @@ public class IndividualTemplateModel extends BaseIndividualTemplateModel {
String temporalVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.PUBLICATION_TEMPORAL_VIS_SHORT_URL + "/"; String temporalVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.PUBLICATION_TEMPORAL_VIS_SHORT_URL + "/";
return getVisUrl(temporalVisURL); return getVisUrl(temporalVisURL);
} }
public String getSelfEditingId() { public String getSelfEditingId() {