From 1fb8fdcc454a41133dde9a6b1b74b452a296f9e0 Mon Sep 17 00:00:00 2001 From: ryounes Date: Tue, 5 Jul 2011 19:19:07 +0000 Subject: [PATCH] NIHVIVO-2790 Make vitro:moniker displayable and editable (but not addable) so existing values can be managed by editors post-1.3 upgrade. --- .../webapp/dao/jena/DataPropertyDaoJena.java | 9 +++++++-- .../individual/DataPropertyTemplateModel.java | 19 +++++++++++++++++-- .../ObjectPropertyTemplateModel.java | 12 ++++++++++-- .../individual/PropertyTemplateModel.java | 7 ++++++- .../freemarker/body/individualList.ftl | 6 +++--- .../class/view/search/view-search-default.ftl | 2 +- 6 files changed, 44 insertions(+), 11 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java index c64ceccfb..996e68710 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java @@ -726,7 +726,7 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements //"http://www.w3.org/1999/02/22-rdf-syntax-ns#", //"http://www.w3.org/2000/01/rdf-schema#", "http://www.w3.org/2002/07/owl#", - "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#", + //"http://vitro.mannlib.cornell.edu/ns/vitro/0.7#", "http://vitro.mannlib.cornell.edu/ns/vitro/public#" ); @@ -750,7 +750,11 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements " ?property a owl:DatatypeProperty . \n" + " FILTER ( \n" + " isLiteral(?object) && \n" + - PROPERTY_FILTERS + "\n" + + " ( afn:namespace(?property) != \"" + VitroVocabulary.PUBLIC + "\" ) && \n" + + " ( afn:namespace(?property) != \"" + VitroVocabulary.OWL + "\" ) && \n" + + // NIHVIVO-2790 vitro:moniker has been deprecated, but display existing values for editorial management (deletion is encouraged). + // This property will be hidden from public display by default. + " ( ?property = <" + VitroVocabulary.MONIKER + "> || afn:namespace(?property) != \"" + VitroVocabulary.vitroURI + "\" ) \n" + " ) \n" + "}"; @@ -767,6 +771,7 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements // QuerySolutionMap initialBindings = new QuerySolutionMap(); // initialBindings.add("subject", ResourceFactory.createResource(subjectUri)); String queryString = QueryUtils.subUriForQueryVar(DATA_PROPERTY_QUERY_STRING, "subject", subjectUri); + log.debug(queryString); Query query = null; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java index 0b7459628..e22678d75 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java @@ -22,6 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyStatementDao; +import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; public class DataPropertyTemplateModel extends PropertyTemplateModel { @@ -31,6 +32,7 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { private static final String EDIT_PATH = "edit/editDatapropStmtRequestDispatch.jsp"; private List statements; + DataPropertyTemplateModel(DataProperty dp, Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper, List populatedDataPropertyList) { @@ -52,8 +54,21 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { log.debug("Data property " + getUri() + " is unpopulated."); } - // Determine whether a new statement can be added + setAddAccess(policyHelper, dp); + + } + + // Determine whether a new statement can be added + @Override + protected void setAddAccess(EditingPolicyHelper policyHelper, Property property) { if (policyHelper != null) { + + DataProperty dp = (DataProperty) property; + + // NIHVIVO-2790 vitro:moniker now included in the display, but don't allow new statements + if (dp.getURI().equals(VitroVocabulary.MONIKER)) { + return; + } // If the display limit has already been reached, we can't add a new statement int displayLimit = dp.getDisplayLimit(); // Display limit of -1 (default value for new property) means no display limit @@ -63,7 +78,7 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { addAccess = true; } } - } + } } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java index 999d33cfd..fe40c4093 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java @@ -92,8 +92,10 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel // Used for editing private boolean addAccess = false; + //To allow for checking of special parameters private VitroRequest vitroRequest = null; + ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) throws InvalidConfigurationException { @@ -113,13 +115,19 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel objectKey = getQueryObjectVariableName(); - // Determine whether a new statement can be added + + setAddAccess(policyHelper, op); + } + + // Determine whether a new statement can be added + @Override + protected void setAddAccess(EditingPolicyHelper policyHelper, Property property) { if (policyHelper != null) { RequestedAction action = new AddObjectPropStmt(subjectUri, propertyUri, RequestActionConstants.SOME_URI); if (policyHelper.isAuthorizedAction(action)) { addAccess = true; } - } + } } protected List> getStatementData() { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java index 6c6723aec..7c1319629 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java @@ -46,7 +46,9 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { } protected void setVerboseDisplayValues(Property property) { - // No verbose display for these properties + // No verbose display for these properties. + // This models previous behavior. In theory the verbose display can be provided, but we may not want + // to give anyone access to these properties, since the application is dependent on them. if (GroupedPropertyList.VITRO_PROPS_TO_ADD_TO_LIST.contains(property)) { return; } @@ -84,6 +86,9 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { this.name = name; } + // Determine whether a new statement can be added + protected abstract void setAddAccess(EditingPolicyHelper policyHelper, Property property); + /* Access methods for templates */ diff --git a/webapp/web/templates/freemarker/body/individualList.ftl b/webapp/web/templates/freemarker/body/individualList.ftl index d44f1283d..31e72afb0 100644 --- a/webapp/web/templates/freemarker/body/individualList.ftl +++ b/webapp/web/templates/freemarker/body/individualList.ftl @@ -35,9 +35,9 @@ ${stylesheets.add('${individual.name}<#if moniker?has_content> ${moniker} +
  • + ${individual.name} + <#-- <#if individual.moniker?has_content> ${individual.moniker} --> <#assign links = individual.links> <#if links?has_content>
      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 0e9a0342c..a1a2c580d 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 @@ -3,7 +3,7 @@ <#-- Default individual search view --> ${individual.name} -<#if individual.moniker?has_content> | ${individual.moniker} +<#-- <#if individual.moniker?has_content> | ${individual.moniker} --> <#if individual.description?has_content>
      ${individual.description}