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 546922516..72d4a7e94 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 @@ -49,10 +49,15 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel { properties.remove(ptm); } - /* Freemarker doesn't consider this a getter, because it takes a parameter, so to call it as group.name - * in the templates the method name must be simply "name" and not "getName." - */ - public String name(String otherGroupName) { + + /* Accessor methods for templates */ + // Add this so it's included in dumps for debugging. The templates will want to display + // name using getName(String) + public String getName() { + return name; + } + + public String getName(String otherGroupName) { String displayName = name; if (displayName == null) { displayName = ""; diff --git a/webapp/src/freemarker/ext/dump/BaseDumpDirective.java b/webapp/src/freemarker/ext/dump/BaseDumpDirective.java index 92dc36895..c983e0a4f 100644 --- a/webapp/src/freemarker/ext/dump/BaseDumpDirective.java +++ b/webapp/src/freemarker/ext/dump/BaseDumpDirective.java @@ -52,8 +52,6 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { private static final String TEMPLATE_DEFAULT = "dump1.ftl"; // change to dump.ftl when old dump is removed private static final Pattern PROPERTY_NAME_PATTERN = Pattern.compile("^(get|is)\\w"); - - protected static final String VALUE_UNDEFINED = "Undefined"; enum Key { DATE_TYPE("dateType"), @@ -73,6 +71,21 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { return key; } } + + enum Value { + NULL("[null]"), + UNDEFINED("[undefined]"); + + private final String value; + + Value(String value) { + this.value = value; + } + + public String toString() { + return value; + } + } enum Type { BOOLEAN("Boolean"), @@ -129,7 +142,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { Map value = new HashMap(); if (model == null) { - value.put(Key.VALUE.toString(), VALUE_UNDEFINED); + value.put(Key.VALUE.toString(), Value.UNDEFINED); // TemplateMethodModel and TemplateDirectiveModel objects can only be // included in the data model at the top level. @@ -196,7 +209,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { map.putAll( getTemplateModelDump( (TemplateModel)model ) ); } } else { - map.put(Key.VALUE.toString(), "null"); + map.put(Key.VALUE.toString(), Value.NULL); } return map; diff --git a/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java b/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java index c7e97ec5a..ed7375476 100644 --- a/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java +++ b/webapp/test/freemarker/ext/dump/DumpDirectiveTest.java @@ -32,6 +32,7 @@ import freemarker.core.Environment; import freemarker.ext.beans.BeansWrapper; import freemarker.ext.dump.BaseDumpDirective.DateType; import freemarker.ext.dump.BaseDumpDirective.Key; +import freemarker.ext.dump.BaseDumpDirective.Value; import freemarker.ext.dump.BaseDumpDirective.Type; import freemarker.template.Configuration; import freemarker.template.SimpleCollection; @@ -78,7 +79,7 @@ public class DumpDirectiveTest { Map dataModel = new HashMap(); Map expectedDumpValue = new HashMap(); - expectedDumpValue.put(Key.VALUE.toString(), BaseDumpDirective.VALUE_UNDEFINED); + expectedDumpValue.put(Key.VALUE.toString(), Value.UNDEFINED); Map expectedDump = new HashMap(); expectedDump.put(varName, expectedDumpValue); @@ -1038,7 +1039,7 @@ public class DumpDirectiveTest { propertiesExpectedDump.put("nickname", nicknameExpectedDump); Map middleNameExpectedDump = new HashMap(); - middleNameExpectedDump.put(Key.VALUE.toString(), "null"); + middleNameExpectedDump.put(Key.VALUE.toString(), Value.NULL); propertiesExpectedDump.put("middleName", middleNameExpectedDump); Map marriedExpectedDump = new HashMap(); @@ -1122,7 +1123,7 @@ public class DumpDirectiveTest { propertiesExpectedDump.put("nickname", nicknameExpectedDump); Map middleNameExpectedDump = new HashMap(); - middleNameExpectedDump.put(Key.VALUE.toString(), "null"); + middleNameExpectedDump.put(Key.VALUE.toString(), Value.NULL); propertiesExpectedDump.put("middleName", middleNameExpectedDump); Map marriedExpectedDump = new HashMap(); @@ -1131,7 +1132,7 @@ public class DumpDirectiveTest { propertiesExpectedDump.put("married", marriedExpectedDump); Map supervisorExpectedDump = new HashMap(); - supervisorExpectedDump.put(Key.VALUE.toString(), "null"); + supervisorExpectedDump.put(Key.VALUE.toString(), Value.NULL); propertiesExpectedDump.put("supervisor", supervisorExpectedDump); Map favoriteColorsExpectedDump = new HashMap(); diff --git a/webapp/web/templates/freemarker/body/partials/dump/dump1.ftl b/webapp/web/templates/freemarker/body/partials/dump/dump1.ftl index 17fa26fd6..d817e26a7 100644 --- a/webapp/web/templates/freemarker/body/partials/dump/dump1.ftl +++ b/webapp/web/templates/freemarker/body/partials/dump/dump1.ftl @@ -120,7 +120,7 @@ div.dump { - <#else>no values + <#else>[none] @@ -134,14 +134,17 @@ div.dump { - <#else>no values + <#else>[none] <#macro doScalarValue value> Value: - <#if value?is_string>${value} + <#if value?is_string> + <#if value?has_content>${value} + <#else>[empty] + <#elseif value?is_number>${value?c} <#elseif value?is_boolean>${value?string} <#elseif value?is_date>${value?string("EEEE, MMMM dd, yyyy hh:mm:ss a zzz")} 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 f39d50615..dc4c5c4ea 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.getName(nameForOtherGroup)>