From f71dc53a636f73e14289b10b6983a77f805ebc77 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Wed, 25 Aug 2010 16:28:15 +0000 Subject: [PATCH] Modify IndividualTemplateModel.getProfileUrl() to return correct url for individuals with uris that are not in the default namespace. --- .../IndividualTemplateModel.java | 21 ++++++++++++++++--- .../class/view/search/view-search-default.ftl | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java index 6582cb1ef..b2677cca5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/IndividualTemplateModel.java @@ -7,11 +7,13 @@ import java.util.List; 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.Individual; import edu.cornell.mannlib.vitro.webapp.beans.Link; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Params; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; -import edu.cornell.mannlib.vitro.webapp.utils.StringUtils; import edu.cornell.mannlib.vitro.webapp.web.ViewFinder; import edu.cornell.mannlib.vitro.webapp.web.ViewFinder.ClassView; @@ -39,9 +41,22 @@ public class IndividualTemplateModel extends BaseTemplateModel { // There may be other urls associated with the individual. E.g., we might need // getEditUrl(), getDeleteUrl() to return the links computed by PropertyEditLinks. // RY **** Need to account for everything in URLRewritingHttpServlet - // Currently this is incorrect for individuals that are not in the default namespace (e.g., geographic individuals). public String getProfileUrl() { - return getUrl(PATH + "/" + individual.getLocalName()); + String profileUrl = null; + String individualUri = individual.getURI(); + + URI uri = new URIImpl(individualUri); + String namespace = uri.getNamespace(); + String defaultNamespace = vreq.getWebappDaoFactory().getDefaultNamespace(); + + if (defaultNamespace.equals(namespace)) { + profileUrl = getUrl(PATH + "/" + individual.getLocalName()); + } else { + Params params = new Params("uri", individualUri); + profileUrl = getUrl("/individual", params); + } + + return profileUrl; } public String getSearchView() { diff --git a/webapp/web/templates/freemarker/body/partials/class/view/search/view-search-default.ftl b/webapp/web/templates/freemarker/body/partials/class/view/search/view-search-default.ftl index 42a030730..0c5416f08 100644 --- a/webapp/web/templates/freemarker/body/partials/class/view/search/view-search-default.ftl +++ b/webapp/web/templates/freemarker/body/partials/class/view/search/view-search-default.ftl @@ -7,7 +7,7 @@ ${individual.name}