diff --git a/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CollectionViewer.java b/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CollectionViewer.java index 9b28bc7671..95855a9ada 100644 --- a/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CollectionViewer.java +++ b/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CollectionViewer.java @@ -42,6 +42,8 @@ package org.dspace.app.xmlui.aspect.artifactbrowser; import java.io.IOException; import java.io.Serializable; import java.sql.SQLException; +import java.util.Map; +import java.util.HashMap; import org.apache.cocoon.caching.CacheableProcessingComponent; import org.apache.cocoon.environment.ObjectModelHelper; @@ -287,9 +289,29 @@ public class CollectionViewer extends AbstractDSpaceTransformer implements Cache "collection-browse"); browse.setHead(T_head_browse); String url = contextPath + "/handle/" + collection.getHandle(); - browse.addItemXref(url + "/browse?type=title",T_browse_titles); - browse.addItemXref(url + "/browse?type=author",T_browse_authors); - browse.addItemXref(url + "/browse?type=dateissued",T_browse_dates); + + try + { + // Get a Map of all the browse tables + BrowseIndex[] bis = BrowseIndex.getBrowseIndices(); + for (BrowseIndex bix : bis) + { + // Create a Map of the query parameters for this link + Map queryParams = new HashMap(); + + queryParams.put("type", bix.getName()); + + // Add a link to this browse + browse.addItemXref(super.generateURL(url + "/browse", queryParams), + message("xmlui.ArtifactBrowser.Navigation.browse_" + bix.getName())); + } + } + catch (BrowseException bex) + { + browse.addItemXref(url + "/browse?type=title",T_browse_titles); + browse.addItemXref(url + "/browse?type=author",T_browse_authors); + browse.addItemXref(url + "/browse?type=dateissued",T_browse_dates); + } } // Add the reference diff --git a/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CommunityViewer.java b/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CommunityViewer.java index ac8567ddac..09843afb95 100644 --- a/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CommunityViewer.java +++ b/dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/artifactbrowser/CommunityViewer.java @@ -42,6 +42,8 @@ package org.dspace.app.xmlui.aspect.artifactbrowser; import java.io.IOException; import java.io.Serializable; import java.sql.SQLException; +import java.util.Map; +import java.util.HashMap; import org.apache.cocoon.caching.CacheableProcessingComponent; import org.apache.cocoon.environment.ObjectModelHelper; @@ -308,9 +310,29 @@ public class CommunityViewer extends AbstractDSpaceTransformer implements Cachea "community-browse"); browse.setHead(T_head_browse); String url = contextPath + "/handle/" + community.getHandle(); - browse.addItemXref(url + "/browse?type=title",T_browse_titles); - browse.addItemXref(url + "/browse?type=author",T_browse_authors); - browse.addItemXref(url + "/browse?type=dateissued",T_browse_dates); + + try + { + // Get a Map of all the browse tables + BrowseIndex[] bis = BrowseIndex.getBrowseIndices(); + for (BrowseIndex bix : bis) + { + // Create a Map of the query parameters for this link + Map queryParams = new HashMap(); + + queryParams.put("type", bix.getName()); + + // Add a link to this browse + browse.addItemXref(super.generateURL(url + "/browse", queryParams), + message("xmlui.ArtifactBrowser.Navigation.browse_" + bix.getName())); + } + } + catch (BrowseException bex) + { + browse.addItemXref(url + "/browse?type=title",T_browse_titles); + browse.addItemXref(url + "/browse?type=author",T_browse_authors); + browse.addItemXref(url + "/browse?type=dateissued",T_browse_dates); + } } // Add main reference: diff --git a/dspace/CHANGES b/dspace/CHANGES index fe3f9d5637..6f6fd85b0e 100644 --- a/dspace/CHANGES +++ b/dspace/CHANGES @@ -122,6 +122,7 @@ - [DS-228] Community Admin XMLUI: Delegated Admins Patch (Ben Bosman) + - [DS-381] community and collection homepage - [DS-310] UTF-8 encoding in community and collection text - [DS-307] Offer access in AbstractSearch to QueryResults for subclasses - [DS-306] Option to disable mailserver