Merge r7827 from nihvivo-rel-1.2-maint branch: fix display of classgroups with no public name on index and home pages.

This commit is contained in:
ryounes 2011-04-19 16:33:21 +00:00
parent 78c3294102
commit 1e03e2b5a8
5 changed files with 38 additions and 33 deletions

View file

@ -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;

View file

@ -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<VClassTemplateModel> getClasses() {
if (classes == null) {
List<VClass> classList = vClassGroup.getVitroClassList();

View file

@ -6,37 +6,34 @@
<#if (!noData)>
<section class="siteMap" role="region">
<div id="isotope-container">
<#list classGroups as classGroup>
<#-- Only render classgroups that have at least one class with individuals -->
<#if (classGroup.individualCount > 0)>
<#if classGroup.publicName?has_content>
<div class="class-group">
<h2>${classGroup.publicName}</h2>
<div id="isotope-container">
<#list classGroups as classGroup>
<#-- Only render classgroups that have at least one populated class -->
<#if (classGroup.individualCount > 0)>
<div class="class-group">
<h2>${classGroup.displayName}</h2>
<ul role="list">
<#list classGroup.classes as class>
<#-- Only render populated classes -->
<#if (class.individualCount > 0)>
<li role="listitem"><a href="${class.url}">${class.name}</a> (${class.individualCount})</li>
</#if>
</#list>
</ul>
</div> <!-- end class-group -->
</#if>
<ul role="list">
<#list classGroup.classes as class>
<#-- Only render classes with individuals -->
<#if (class.individualCount > 0)>
<li role="listitem"><a href="${class.url}">${class.name}</a> (${class.individualCount})</li>
</#if>
</#list>
</ul>
</div>
</#if>
</#list>
</div> <!-- end isotope-container -->
</#list>
</div> <!-- end isotope-container -->
</section>
${headScripts.add('<script type="text/javascript" src="${urls.base}/js/jquery_plugins/isotope/jquery.isotope.min.js"></script>')}
<script>
$('#isotope-container').isotope({
// options
itemSelector : '.class-group',
layoutMode : 'fitColumns'
});
</script>
${headScripts.add('<script type="text/javascript" src="${urls.base}/js/jquery_plugins/isotope/jquery.isotope.min.js"></script>')}
<script>
$('#isotope-container').isotope({
// options
itemSelector : '.class-group',
layoutMode : 'fitColumns'
});
</script>
<#else>
${noDataNotification}

View file

@ -24,7 +24,7 @@ ${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/browseClassGrou
<#elseif classGroup.uri == group.uri>
<#assign activeGroup = selected />
</#if>
<li role="listitem"><a ${activeGroup}href="${urls.currentPage}?classgroupUri=${group.uri?url}#browse" title="Browse ${group.publicName?capitalize}" data-uri="${group.uri}" data-count="${group.individualCount}">${group.publicName?capitalize} <span class="count-classes">(${group.individualCount})</span></a></li>
<li role="listitem"><a ${activeGroup}href="${urls.currentPage}?classgroupUri=${group.uri?url}#browse" title="Browse ${group.displayName?capitalize}" data-uri="${group.uri}" data-count="${group.individualCount}">${group.displayName?capitalize} <span class="count-classes">(${group.individualCount})</span></a></li>
</#if>
</#list>
</#assign>

View file

@ -17,7 +17,7 @@
<ul id="browse-classgroups" role="list">
<#list vclassGroupList as group>
<#if (group.individualCount > 0)>
<li role="listitem"><a href="${urls.currentPage}?classgroupUri=${group.uri?url}">${group.publicName?capitalize} <span class="count-classes">(${group.individualCount})</span></a></li>
<li role="listitem"><a href="${urls.currentPage}?classgroupUri=${group.uri?url}">${group.displayName?capitalize} <span class="count-classes">(${group.individualCount})</span></a></li>
</#if>
</#list>
</ul>
@ -48,7 +48,7 @@
<section id="browse" role="region">
<h4>Browse</h4>
<div>
vclass ${class.name} from ${classGroup.publicName}
vclass ${class.name} from ${classGroup.displayName}
This has classGroup, classes, individualsInClass and class.
</div>