From dfd9da14b861f58eaff63d2e5c82473a87fd2007 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Thu, 24 Feb 2011 22:54:48 +0000 Subject: [PATCH] NIHVIVO-1392 Fix a bug in the verbose property display whereby session value was reset every time the main site admin page loaded. Normalize the object property display tier value to int. --- .../freemarker/SiteAdminController.java | 20 ++++++++++++++----- .../individual/DataPropertyTemplateModel.java | 2 +- .../ObjectPropertyTemplateModel.java | 6 ++++-- .../individual/PropertyTemplateModel.java | 6 +++--- .../individual/individual-properties.ftl | 6 +++--- .../partials/individual/lib-properties.ftl | 2 +- 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java index 437cb87da..c09028308 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java @@ -179,15 +179,25 @@ public class SiteAdminController extends FreemarkerHttpServlet { urls.put("objectPropertyHierarchy", urlBuilder.getPortalUrl("/showObjectPropertyHierarchy", new ParamMap("iffRoot", "true"))); map.put("urls", urls); + // Get current verbose property display value String verbose = vreq.getParameter("verbose"); - boolean verbosePropertyValue = "true".equals(verbose) ? true : false; - vreq.getSession().setAttribute("verbosePropertyDisplay", verbosePropertyValue); + Boolean verbosePropertyDisplayValue; + // If the form was submitted, get that value + if (verbose != null) { + verbosePropertyDisplayValue = "true".equals(verbose); + // If form not submitted, get the session value + } else { + Boolean verbosePropertyDisplayValueInSession = (Boolean) vreq.getSession().getAttribute("verbosePropertyDisplay"); + // True if session value is true, otherwise (session value is false or null) false + verbosePropertyDisplayValue = Boolean.TRUE.equals(verbosePropertyDisplayValueInSession); + } + vreq.getSession().setAttribute("verbosePropertyDisplay", verbosePropertyDisplayValue); Map verbosePropertyForm = new HashMap(); - verbosePropertyForm.put("verboseFieldValue", String.valueOf(!verbosePropertyValue)); // the form toggles the current value + verbosePropertyForm.put("verboseFieldValue", String.valueOf(!verbosePropertyDisplayValue)); // the form toggles the current value verbosePropertyForm.put("action", urlBuilder.getPortalUrl(Route.SITE_ADMIN)); - verbosePropertyForm.put("currentValue", verbosePropertyValue ? "on" : "off"); - verbosePropertyForm.put("newValue", verbosePropertyValue ? "off" : "on"); + verbosePropertyForm.put("currentValue", verbosePropertyDisplayValue ? "on" : "off"); + verbosePropertyForm.put("newValue", verbosePropertyDisplayValue ? "off" : "on"); map.put("verbosePropertyForm", verbosePropertyForm); return map; 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 ebf925b8b..d7735b3bf 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 @@ -66,7 +66,7 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { } @Override - protected Object getPropertyDisplayTier(Property p) { + protected int getPropertyDisplayTier(Property p) { return ((DataProperty)p).getDisplayTier(); } 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 39b68a8ad..f8ac17349 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 @@ -119,8 +119,10 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel } @Override - protected Object getPropertyDisplayTier(Property p) { - return ((ObjectProperty)p).getDomainDisplayTier(); + protected int getPropertyDisplayTier(Property p) { + // For some reason ObjectProperty.getDomainDisplayTier() returns a String + // rather than an int. That should probably be fixed. + return Integer.parseInt(((ObjectProperty)p).getDomainDisplayTier()); } @Override 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 e39a36634..6d3987295 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 @@ -51,8 +51,8 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { if (GroupedPropertyList.VITRO_PROPS_TO_ADD_TO_LIST.contains(property)) { return; } - Boolean verboseDisplayFlag = (Boolean) vreq.getSession().getAttribute("verbosePropertyDisplay"); - if ( ! Boolean.TRUE.equals(verboseDisplayFlag)) { + Boolean verboseDisplayValue = (Boolean) vreq.getSession().getAttribute("verbosePropertyDisplay"); + if ( ! Boolean.TRUE.equals(verboseDisplayValue)) { return; } @@ -72,7 +72,7 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { verboseDisplay.put("propertyEditUrl", editUrl); } - protected abstract Object getPropertyDisplayTier(Property p); + protected abstract int getPropertyDisplayTier(Property p); protected abstract Route getPropertyEditRoute(); protected void setName(String name) { 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 f24c0ecdc..f39d50615 100644 --- a/webapp/web/templates/freemarker/body/partials/individual/individual-properties.ftl +++ b/webapp/web/templates/freemarker/body/partials/individual/individual-properties.ftl @@ -5,7 +5,7 @@ <#import "lib-properties.ftl" as p> <#list propertyGroups.all as group> - <#assign groupname = group.name(nameForOtherGroup)> + <#assign groupName = group.name(nameForOtherGroup)>
<#-- Display the group heading --> - <#if groupname?has_content> -

${groupname?capitalize}

+ <#if groupName?has_content> +

${groupName?capitalize}

<#-- List the properties in the group --> 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 4ea5ced93..6140c3332 100644 --- a/webapp/web/templates/freemarker/body/partials/individual/lib-properties.ftl +++ b/webapp/web/templates/freemarker/body/partials/individual/lib-properties.ftl @@ -134,7 +134,7 @@ name will be used as the label. --> ${verboseDisplay.localName} (${property.type?lower_case} property); - display tier: ${verboseDisplay.displayTier} within group; + display tier: ${verboseDisplay.displayTier}; display level: ${verboseDisplay.displayLevel}; update level: ${verboseDisplay.updateLevel}