From 1e03e2b5a8fdeb8829deabfd84efce34f3ac10e6 Mon Sep 17 00:00:00 2001 From: ryounes Date: Tue, 19 Apr 2011 16:33:21 +0000 Subject: [PATCH] Merge r7827 from nihvivo-rel-1.2-maint branch: fix display of classgroups with no public name on index and home pages. --- .../pageDataGetter/BrowseDataGetter.java | 1 - .../VClassGroupTemplateModel.java | 11 +++- .../templates/freemarker/body/classGroups.ftl | 53 +++++++++---------- .../body/partials/browse-classgroups.ftl | 2 +- .../freemarker/widgets/widget-browse.ftl | 4 +- 5 files changed, 38 insertions(+), 33 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java index 7f6516009..261ca4b6c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java @@ -174,7 +174,6 @@ public class BrowseDataGetter implements PageDataGetter { map.put("classes", classes); map.put("classGroup", new VClassGroupTemplateModel(vcg)); - map.put("classGroupName", vcg.getPublicName()); map.put("classGroupUri", vcg.getURI()); return map; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/VClassGroupTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/VClassGroupTemplateModel.java index 1ba6a2950..40ebe9489 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/VClassGroupTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/VClassGroupTemplateModel.java @@ -3,9 +3,9 @@ package edu.cornell.mannlib.vitro.webapp.web.templatemodels; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -43,6 +43,15 @@ public class VClassGroupTemplateModel extends BaseTemplateModel { return vClassGroup.getPublicName(); } + // Protect the template against a group without a name. + public String getDisplayName() { + String displayName = getPublicName(); + if (StringUtils.isBlank(displayName)) { + displayName = getLocalName().replaceFirst("vitroClassGroup", ""); + } + return displayName; + } + public List getClasses() { if (classes == null) { List classList = vClassGroup.getVitroClassList(); diff --git a/webapp/web/templates/freemarker/body/classGroups.ftl b/webapp/web/templates/freemarker/body/classGroups.ftl index 71763e193..694cc5685 100644 --- a/webapp/web/templates/freemarker/body/classGroups.ftl +++ b/webapp/web/templates/freemarker/body/classGroups.ftl @@ -6,37 +6,34 @@ <#if (!noData)>
-
- <#list classGroups as classGroup> - <#-- Only render classgroups that have at least one class with individuals --> - <#if (classGroup.individualCount > 0)> - <#if classGroup.publicName?has_content> -
-

${classGroup.publicName}

+
+ <#list classGroups as classGroup> + <#-- Only render classgroups that have at least one populated class --> + <#if (classGroup.individualCount > 0)> +
+

${classGroup.displayName}

+
    + <#list classGroup.classes as class> + <#-- Only render populated classes --> + <#if (class.individualCount > 0)> +
  • ${class.name} (${class.individualCount})
  • + + +
+
-
    - <#list classGroup.classes as class> - <#-- Only render classes with individuals --> - <#if (class.individualCount > 0)> -
  • ${class.name} (${class.individualCount})
  • - - -
-
- - -
+ +
- -${headScripts.add('')} - + ${headScripts.add('')} + <#else> ${noDataNotification} diff --git a/webapp/web/templates/freemarker/body/partials/browse-classgroups.ftl b/webapp/web/templates/freemarker/body/partials/browse-classgroups.ftl index fb91778b5..da15cc8ed 100644 --- a/webapp/web/templates/freemarker/body/partials/browse-classgroups.ftl +++ b/webapp/web/templates/freemarker/body/partials/browse-classgroups.ftl @@ -24,7 +24,7 @@ ${stylesheets.add('${group.publicName?capitalize} (${group.individualCount}) +
  • ${group.displayName?capitalize} (${group.individualCount})
  • diff --git a/webapp/web/templates/freemarker/widgets/widget-browse.ftl b/webapp/web/templates/freemarker/widgets/widget-browse.ftl index 2f741baee..57e0fb0f1 100644 --- a/webapp/web/templates/freemarker/widgets/widget-browse.ftl +++ b/webapp/web/templates/freemarker/widgets/widget-browse.ftl @@ -17,7 +17,7 @@ @@ -48,7 +48,7 @@

    Browse

    - vclass ${class.name} from ${classGroup.publicName} + vclass ${class.name} from ${classGroup.displayName} This has classGroup, classes, individualsInClass and class.