From a6adc5163d29dea53070b04624eba939e2af2ecf Mon Sep 17 00:00:00 2001 From: rjy7 Date: Tue, 11 Jan 2011 20:54:14 +0000 Subject: [PATCH] NIHVIVO-1332 Display property title on untitled properties like phone, email if there is an add link to display. Changed a Java class name. --- .../CollatedObjectPropertyTemplateModel.java | 10 +++++----- .../DataPropertyStatementTemplateModel.java | 6 +++--- .../individual/DataPropertyTemplateModel.java | 6 +++--- ...itingHelper.java => EditingPolicyHelper.java} | 6 +++--- .../individual/GroupedPropertyList.java | 6 +++--- .../ObjectPropertyStatementTemplateModel.java | 10 +++++----- .../individual/ObjectPropertyTemplateModel.java | 16 ++++++++-------- .../individual/PropertyGroupTemplateModel.java | 6 +++--- .../individual/PropertyTemplateModel.java | 4 ++-- .../UncollatedObjectPropertyTemplateModel.java | 6 +++--- .../freemarker/body/individual/individual.ftl | 7 +++++-- .../individual/individual-properties.ftl | 3 +-- .../body/partials/individual/lib-properties.ftl | 9 +++++++++ 13 files changed, 53 insertions(+), 42 deletions(-) rename webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/{EditingHelper.java => EditingPolicyHelper.java} (91%) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java index b16f2c583..03b4cdd9a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java @@ -38,10 +38,10 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM private SortedMap> subclasses; CollatedObjectPropertyTemplateModel(ObjectProperty op, Individual subject, - VitroRequest vreq, EditingHelper editingHelper) + VitroRequest vreq, EditingPolicyHelper policyHelper) throws InvalidConfigurationException { - super(op, subject, vreq, editingHelper); + super(op, subject, vreq, policyHelper); String invalidConfigMessage = checkConfiguration(); if ( ! invalidConfigMessage.isEmpty() ) { @@ -62,7 +62,7 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM /* Collate the data */ Map> unsortedSubclasses = - collate(subjectUri, propertyUri, statementData, vreq, editingHelper); + collate(subjectUri, propertyUri, statementData, vreq, policyHelper); /* Sort by subclass name */ Comparator comparer = new Comparator() { @@ -97,7 +97,7 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM } private Map> collate(String subjectUri, String propertyUri, - List> statementData, VitroRequest vreq, EditingHelper editingHelper) { + List> statementData, VitroRequest vreq, EditingPolicyHelper policyHelper) { Map> subclassMap = new HashMap>(); @@ -117,7 +117,7 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM subclassMap.put(subclassName, currentList); } currentList.add(new ObjectPropertyStatementTemplateModel(subjectUri, - propertyUri, objectKey, map, editingHelper)); + propertyUri, objectKey, map, policyHelper)); } return subclassMap; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java index 4284eee59..eb0941adf 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java @@ -13,11 +13,11 @@ public class DataPropertyStatementTemplateModel extends BaseTemplateModel { private static final Log log = LogFactory.getLog(DataPropertyStatementTemplateModel.class); private DataPropertyStatement statement; - private EditingHelper editingHelper; + private EditingPolicyHelper policyHelper; - DataPropertyStatementTemplateModel(DataPropertyStatement statement, EditingHelper editingHelper) { + DataPropertyStatementTemplateModel(DataPropertyStatement statement, EditingPolicyHelper policyHelper) { this.statement = statement; - this.editingHelper = editingHelper; + this.policyHelper = policyHelper; } /* Access methods for templates */ 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 cbcc7c008..4eefa6fcd 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,8 +22,8 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { private List statements; - DataPropertyTemplateModel(DataProperty dp, Individual subject, VitroRequest vreq, EditingHelper editingHelper) { - super(dp, subject, editingHelper); + DataPropertyTemplateModel(DataProperty dp, Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) { + super(dp, subject, policyHelper); setName(dp.getPublicName()); @@ -32,7 +32,7 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { List dpStatements = dpDao.getDataPropertyStatementsForIndividualByProperty(subject, dp); statements = new ArrayList(dpStatements.size()); for (DataPropertyStatement dps : dpStatements) { - statements.add(new DataPropertyStatementTemplateModel(dps, editingHelper)); + statements.add(new DataPropertyStatementTemplateModel(dps, policyHelper)); } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingHelper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java similarity index 91% rename from webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingHelper.java rename to webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java index 1074664de..b8bdfe45f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingHelper.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java @@ -17,16 +17,16 @@ import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyIface; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -public class EditingHelper { +public class EditingPolicyHelper { - private static final Log log = LogFactory.getLog(EditingHelper.class); + private static final Log log = LogFactory.getLog(EditingPolicyHelper.class); private VitroRequest vreq; private ServletContext servletContext; private PolicyIface policy; private IdentifierBundle ids; - protected EditingHelper(VitroRequest vreq, ServletContext servletContext) { + protected EditingPolicyHelper(VitroRequest vreq, ServletContext servletContext) { this.vreq = vreq; this.servletContext = servletContext; setPolicy(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java index 96e10b625..a618f27b1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java @@ -57,9 +57,9 @@ public class GroupedPropertyList extends BaseTemplateModel { // Determine whether we're editing or not. boolean userCanEditThisProfile = getEditingStatus(); - EditingHelper editingHelper = null; + EditingPolicyHelper policyHelper = null; if (userCanEditThisProfile) { - editingHelper = new EditingHelper(vreq, getServletContext()); + policyHelper = new EditingPolicyHelper(vreq, getServletContext()); } // Create the property list for the subject. The properties will be put into groups later. @@ -108,7 +108,7 @@ public class GroupedPropertyList extends BaseTemplateModel { // Build the template data model from the groupList groups = new ArrayList(propertyGroupList.size()); for (PropertyGroup pg : propertyGroupList) { - groups.add(new PropertyGroupTemplateModel(vreq, pg, subject, editingHelper)); + groups.add(new PropertyGroupTemplateModel(vreq, pg, subject, policyHelper)); } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java index c03fbddfe..5d0b189d3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java @@ -39,14 +39,14 @@ public class ObjectPropertyStatementTemplateModel extends BaseTemplateModel { private List editAccessList; ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, - String objectKey, Map data, EditingHelper editingHelper) { + String objectKey, Map data, EditingPolicyHelper policyHelper) { this.data = data; - // If the editingHelper is non-null, we are in edit mode, so create the list of editing permissions. + // If the policyHelper is non-null, we are in edit mode, so create the list of editing permissions. // We do this now rather than in getEditUrl() and getDeleteUrl(), because getEditUrl() also needs to know // whether a delete is allowed. - if (editingHelper != null) { + if (policyHelper != null) { this.subjectUri = subjectUri; this.propertyUri = propertyUri; objectUri = data.get(objectKey); @@ -55,14 +55,14 @@ public class ObjectPropertyStatementTemplateModel extends BaseTemplateModel { // Determine whether the statement can be edited RequestedAction action = new EditObjPropStmt(objectPropertyStatement); - PolicyDecision decision = editingHelper.getPolicyDecision(action); + PolicyDecision decision = policyHelper.getPolicyDecision(action); if (decision != null && decision.getAuthorized() == Authorization.AUTHORIZED) { editAccessList.add(EditAccess.EDIT); } // Determine whether the statement can be deleted action = new DropObjectPropStmt(subjectUri, propertyUri, objectUri); - decision = editingHelper.getPolicyDecision(action); + decision = policyHelper.getPolicyDecision(action); if (decision != null && decision.getAuthorized() == Authorization.AUTHORIZED) { editAccessList.add(EditAccess.DELETE); } 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 11597eb60..5f1bf6edd 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 @@ -72,8 +72,8 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel // Used for editing private boolean addAccess = false; - ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq, EditingHelper editingHelper) { - super(op, subject, editingHelper); + ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) { + super(op, subject, policyHelper); setName(op.getDomainPublic()); // Get the config for this object property @@ -86,9 +86,9 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel objectKey = getQueryObjectVariableName(); // Determine whether a new statement can be added - if (editingHelper != null) { + if (policyHelper != null) { RequestedAction action = new AddObjectPropStmt(subjectUri, propertyUri, RequestActionConstants.SOME_URI); - PolicyDecision decision = editingHelper.getPolicyDecision(action); + PolicyDecision decision = policyHelper.getPolicyDecision(action); if( decision != null && decision.getAuthorized() == Authorization.AUTHORIZED ) { addAccess = true; } @@ -127,16 +127,16 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel } protected static ObjectPropertyTemplateModel getObjectPropertyTemplateModel(ObjectProperty op, - Individual subject, VitroRequest vreq, EditingHelper editingHelper) { + Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) { if (op.getCollateBySubclass()) { try { - return new CollatedObjectPropertyTemplateModel(op, subject, vreq, editingHelper); + return new CollatedObjectPropertyTemplateModel(op, subject, vreq, policyHelper); } catch (InvalidConfigurationException e) { log.error(e); - return new UncollatedObjectPropertyTemplateModel(op, subject, vreq, editingHelper); + return new UncollatedObjectPropertyTemplateModel(op, subject, vreq, policyHelper); } } else { - return new UncollatedObjectPropertyTemplateModel(op, subject, vreq, editingHelper); + return new UncollatedObjectPropertyTemplateModel(op, subject, vreq, policyHelper); } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java index 9c5093974..45a097812 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java @@ -24,7 +24,7 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel { private String name; private List properties; - PropertyGroupTemplateModel(VitroRequest vreq, PropertyGroup group, Individual subject, EditingHelper editingHelper) { + PropertyGroupTemplateModel(VitroRequest vreq, PropertyGroup group, Individual subject, EditingPolicyHelper policyHelper) { this.name = group.getName(); List propertyList = group.getPropertyList(); @@ -32,9 +32,9 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel { for (Property p : propertyList) { if (p instanceof ObjectProperty) { ObjectProperty op = (ObjectProperty)p; - properties.add(ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, editingHelper)); + properties.add(ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, policyHelper)); } else { - properties.add(new DataPropertyTemplateModel((DataProperty)p, subject, vreq, editingHelper)); + properties.add(new DataPropertyTemplateModel((DataProperty)p, subject, vreq, policyHelper)); } } } 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 1f12e0e60..ad5fc194b 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 @@ -24,14 +24,14 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { protected Property property; // RY DO WE NEED THIS, or just the uri?? protected boolean addAccess = false; - PropertyTemplateModel(Property property, Individual subject, EditingHelper editingHelper) { + PropertyTemplateModel(Property property, Individual subject, EditingPolicyHelper policyHelper) { // Do in subclass constructor. The label has not been set on the property, and getting the // label differs between object and data properties. // this.name = property.getLabel(); this.propertyUri = property.getURI(); this.property = property; - if (editingHelper != null) { + if (policyHelper != null) { subjectUri = subject.getURI(); propertyUri = property.getURI(); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java index 6742a256c..7fbf317e2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java @@ -22,8 +22,8 @@ public class UncollatedObjectPropertyTemplateModel extends ObjectPropertyTemplat private List statements; - UncollatedObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq, EditingHelper editingHelper) { - super(op, subject, vreq, editingHelper); + UncollatedObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) { + super(op, subject, vreq, policyHelper); /* Get the data */ WebappDaoFactory wdf = vreq.getWebappDaoFactory(); @@ -41,7 +41,7 @@ public class UncollatedObjectPropertyTemplateModel extends ObjectPropertyTemplat String objectKey = getObjectKey(); for (Map map : statementData) { statements.add(new ObjectPropertyStatementTemplateModel(subjectUri, - propertyUri, objectKey, map, editingHelper)); + propertyUri, objectKey, map, policyHelper)); } postprocessStatementList(statements); diff --git a/webapp/web/templates/freemarker/body/individual/individual.ftl b/webapp/web/templates/freemarker/body/individual/individual.ftl index 88cd26d38..a2b34e183 100644 --- a/webapp/web/templates/freemarker/body/individual/individual.ftl +++ b/webapp/web/templates/freemarker/body/individual/individual.ftl @@ -39,9 +39,12 @@ <#-- Overview --> <#assign overview = propertyGroups.getPropertyAndRemoveFromList("${core}overview")!> <#if overview?has_content> <#-- true when the property is in the list, even if not populated (when editing) --> + <@p.showLabelAndAddLink overview showEditingLinks /> <#list overview.statements as statement> - <@p.editingLinks statement showEditingLinks /> -

${statement.value}

+

+ <@p.editingLinks statement showEditingLinks /> + ${statement.value} +

diff --git a/webapp/web/templates/freemarker/body/partials/individual/individual-properties.ftl b/webapp/web/templates/freemarker/body/partials/individual/individual-properties.ftl index cab153763..307ee9b85 100644 --- a/webapp/web/templates/freemarker/body/partials/individual/individual-properties.ftl +++ b/webapp/web/templates/freemarker/body/partials/individual/individual-properties.ftl @@ -24,8 +24,7 @@ <#list group.properties as property>
<#-- Property display name --> -

${property.name} <@p.addLink property showEditingLinks />

- +

${property.name} <@p.addLink property showEditingLinks />

<#-- List the statements for each property -->
    <#-- data property --> diff --git a/webapp/web/templates/freemarker/body/partials/individual/lib-properties.ftl b/webapp/web/templates/freemarker/body/partials/individual/lib-properties.ftl index 096219442..ecd800830 100644 --- a/webapp/web/templates/freemarker/body/partials/individual/lib-properties.ftl +++ b/webapp/web/templates/freemarker/body/partials/individual/lib-properties.ftl @@ -32,6 +32,15 @@ +<#-- Some properties usually display without a label. But if there's an add link, +we need to also show the property label. --> +<#macro showLabelAndAddLink property showEditingLinks> + <#local addLink><@addLink property showEditingLinks /> + <#if addLink?has_content> +

    ${property.name?capitalize} ${addLink}

    + + + <#macro addLink property showEditingLinks> <#if showEditingLinks> <#local url = property.addUrl>