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.

This commit is contained in:
rjy7 2011-02-24 22:54:48 +00:00
parent faac29e6ba
commit dfd9da14b8
6 changed files with 27 additions and 15 deletions

View file

@ -179,15 +179,25 @@ public class SiteAdminController extends FreemarkerHttpServlet {
urls.put("objectPropertyHierarchy", urlBuilder.getPortalUrl("/showObjectPropertyHierarchy", new ParamMap("iffRoot", "true"))); urls.put("objectPropertyHierarchy", urlBuilder.getPortalUrl("/showObjectPropertyHierarchy", new ParamMap("iffRoot", "true")));
map.put("urls", urls); map.put("urls", urls);
// Get current verbose property display value
String verbose = vreq.getParameter("verbose"); String verbose = vreq.getParameter("verbose");
boolean verbosePropertyValue = "true".equals(verbose) ? true : false; Boolean verbosePropertyDisplayValue;
vreq.getSession().setAttribute("verbosePropertyDisplay", verbosePropertyValue); // 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<String, Object> verbosePropertyForm = new HashMap<String, Object>(); Map<String, Object> verbosePropertyForm = new HashMap<String, Object>();
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("action", urlBuilder.getPortalUrl(Route.SITE_ADMIN));
verbosePropertyForm.put("currentValue", verbosePropertyValue ? "on" : "off"); verbosePropertyForm.put("currentValue", verbosePropertyDisplayValue ? "on" : "off");
verbosePropertyForm.put("newValue", verbosePropertyValue ? "off" : "on"); verbosePropertyForm.put("newValue", verbosePropertyDisplayValue ? "off" : "on");
map.put("verbosePropertyForm", verbosePropertyForm); map.put("verbosePropertyForm", verbosePropertyForm);
return map; return map;

View file

@ -66,7 +66,7 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel {
} }
@Override @Override
protected Object getPropertyDisplayTier(Property p) { protected int getPropertyDisplayTier(Property p) {
return ((DataProperty)p).getDisplayTier(); return ((DataProperty)p).getDisplayTier();
} }

View file

@ -119,8 +119,10 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
} }
@Override @Override
protected Object getPropertyDisplayTier(Property p) { protected int getPropertyDisplayTier(Property p) {
return ((ObjectProperty)p).getDomainDisplayTier(); // For some reason ObjectProperty.getDomainDisplayTier() returns a String
// rather than an int. That should probably be fixed.
return Integer.parseInt(((ObjectProperty)p).getDomainDisplayTier());
} }
@Override @Override

View file

@ -51,8 +51,8 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel {
if (GroupedPropertyList.VITRO_PROPS_TO_ADD_TO_LIST.contains(property)) { if (GroupedPropertyList.VITRO_PROPS_TO_ADD_TO_LIST.contains(property)) {
return; return;
} }
Boolean verboseDisplayFlag = (Boolean) vreq.getSession().getAttribute("verbosePropertyDisplay"); Boolean verboseDisplayValue = (Boolean) vreq.getSession().getAttribute("verbosePropertyDisplay");
if ( ! Boolean.TRUE.equals(verboseDisplayFlag)) { if ( ! Boolean.TRUE.equals(verboseDisplayValue)) {
return; return;
} }
@ -72,7 +72,7 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel {
verboseDisplay.put("propertyEditUrl", editUrl); verboseDisplay.put("propertyEditUrl", editUrl);
} }
protected abstract Object getPropertyDisplayTier(Property p); protected abstract int getPropertyDisplayTier(Property p);
protected abstract Route getPropertyEditRoute(); protected abstract Route getPropertyEditRoute();
protected void setName(String name) { protected void setName(String name) {

View file

@ -5,7 +5,7 @@
<#import "lib-properties.ftl" as p> <#import "lib-properties.ftl" as p>
<#list propertyGroups.all as group> <#list propertyGroups.all as group>
<#assign groupname = group.name(nameForOtherGroup)> <#assign groupName = group.name(nameForOtherGroup)>
<section class="property-group" role="region"> <section class="property-group" role="region">
<nav class="scroll-up" role="navigation"> <nav class="scroll-up" role="navigation">
@ -15,8 +15,8 @@
</nav> </nav>
<#-- Display the group heading --> <#-- Display the group heading -->
<#if groupname?has_content> <#if groupName?has_content>
<h2 id="${groupname}">${groupname?capitalize}</h2> <h2 id="${groupName}">${groupName?capitalize}</h2>
</#if> </#if>
<#-- List the properties in the group --> <#-- List the properties in the group -->

View file

@ -134,7 +134,7 @@ name will be used as the label. -->
<span class="verbosePropertyListing"> <span class="verbosePropertyListing">
<a class="propertyLink" href="${verboseDisplay.propertyEditUrl}">${verboseDisplay.localName}</a> <a class="propertyLink" href="${verboseDisplay.propertyEditUrl}">${verboseDisplay.localName}</a>
(${property.type?lower_case} property); (${property.type?lower_case} property);
display tier: ${verboseDisplay.displayTier} within group; display tier: ${verboseDisplay.displayTier};
display level: ${verboseDisplay.displayLevel}; display level: ${verboseDisplay.displayLevel};
update level: ${verboseDisplay.updateLevel} update level: ${verboseDisplay.updateLevel}
</span> </span>