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("classes", classes);
map.put("classGroup", new VClassGroupTemplateModel(vcg)); map.put("classGroup", new VClassGroupTemplateModel(vcg));
map.put("classGroupName", vcg.getPublicName());
map.put("classGroupUri", vcg.getURI()); map.put("classGroupUri", vcg.getURI());
return map; return map;

View file

@ -3,9 +3,9 @@
package edu.cornell.mannlib.vitro.webapp.web.templatemodels; package edu.cornell.mannlib.vitro.webapp.web.templatemodels;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@ -43,6 +43,15 @@ public class VClassGroupTemplateModel extends BaseTemplateModel {
return vClassGroup.getPublicName(); 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() { public List<VClassTemplateModel> getClasses() {
if (classes == null) { if (classes == null) {
List<VClass> classList = vClassGroup.getVitroClassList(); List<VClass> classList = vClassGroup.getVitroClassList();

View file

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

View file

@ -24,7 +24,7 @@ ${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/browseClassGrou
<#elseif classGroup.uri == group.uri> <#elseif classGroup.uri == group.uri>
<#assign activeGroup = selected /> <#assign activeGroup = selected />
</#if> </#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> </#if>
</#list> </#list>
</#assign> </#assign>

View file

@ -17,7 +17,7 @@
<ul id="browse-classgroups" role="list"> <ul id="browse-classgroups" role="list">
<#list vclassGroupList as group> <#list vclassGroupList as group>
<#if (group.individualCount > 0)> <#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> </#if>
</#list> </#list>
</ul> </ul>
@ -48,7 +48,7 @@
<section id="browse" role="region"> <section id="browse" role="region">
<h4>Browse</h4> <h4>Browse</h4>
<div> <div>
vclass ${class.name} from ${classGroup.publicName} vclass ${class.name} from ${classGroup.displayName}
This has classGroup, classes, individualsInClass and class. This has classGroup, classes, individualsInClass and class.
</div> </div>