enable tag cloud in browsing

This commit is contained in:
Kostas Stamatis
2014-07-02 12:01:04 +03:00
committed by Ivan Masár
parent 0365b342a5
commit 15b16b0040
9 changed files with 93 additions and 8 deletions

View File

@@ -805,4 +805,10 @@ public final class BrowseIndex
{
return "bi_" + Integer.toString(number);
}
public boolean isTagCloudEnabled() {
return ConfigurationManager.getBooleanProperty("webui.browse.index.tagcloud." + number);
}
}

View File

@@ -354,7 +354,7 @@ public class BrowserScope
*/
public void setResultsPerPage(int resultsPerPage)
{
if (resultsPerPage > -1)
if (resultsPerPage > -1 || browseIndex.isTagCloudEnabled())
{
this.resultsPerPage = resultsPerPage;
}

View File

@@ -156,7 +156,7 @@ public class SolrBrowseDAO implements BrowseDAO
}
else
{
query.setMaxResults(limit > 0 ? limit : 20);
query.setMaxResults(limit/* > 0 ? limit : 20*/);
if (offset > 0)
{
query.setStart(offset);
@@ -254,7 +254,7 @@ public class SolrBrowseDAO implements BrowseDAO
List<FacetResult> facet = resp.getFacetResult(facetField);
int count = doCountQuery();
int start = offset > 0 ? offset : 0;
int max = limit > 0 ? limit : 20;
int max = limit > 0 ? limit : count; //if negative, return everything
List<String[]> result = new ArrayList<String[]>();
if (ascending)
{

View File

@@ -165,8 +165,8 @@ public abstract class AbstractBrowserServlet extends DSpaceServlet
offset = 0;
}
// if no resultsperpage set, default to 20
if (resultsperpage < 0)
// if no resultsperpage set, default to 20 - if tag cloud enabled, leave it as is!
if (resultsperpage < 0 && !bi.isTagCloudEnabled())
{
resultsperpage = 20;
}

View File

@@ -35,6 +35,7 @@ public class TagCloudTag extends SimpleTagSupport{
Map<String, Integer> data;
String index;
String scope;
String type = "0"; // 0=facet, 1=browse
/**
*
@@ -77,7 +78,7 @@ public class TagCloudTag extends SimpleTagSupport{
for (String subject : data.keySet()){
if (data.get(subject).intValue() > Integer.parseInt(parameters.getCuttingLevel())){
for (int i=0; i<data.get(subject).intValue(); i++){
Tag tag2 = new Tag(subject, ((HttpServletRequest) pageContext.getRequest()).getContextPath()+(scope!=null?scope:"")+"/simple-search?filterquery="+subject+"&filtername="+index+"&filtertype=equals"); // creates a tag
Tag tag2 = new Tag(subject, ((HttpServletRequest) pageContext.getRequest()).getContextPath()+(scope!=null?scope:"")+(type.equals("0")?("/simple-search?filterquery="+subject+"&filtername="+index+"&filtertype=equals"):("/browse?type="+index+"&value="+subject))); // creates a tag
//tag2.setScore(subjects.get(subject).doubleValue());
cloud.addTag(tag2);
}
@@ -206,4 +207,8 @@ public class TagCloudTag extends SimpleTagSupport{
public void setScope(String scope) {
this.scope = scope;
}
public void setType(String type) {
this.type = type;
}
}

View File

@@ -548,6 +548,11 @@
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>

View File

@@ -122,7 +122,11 @@
<h2>
<fmt:message key="browse.single.header"><fmt:param value="<%= scope %>"/></fmt:message> <fmt:message key="<%= typeKey %>"/>
</h2>
<%
if (!bix.isTagCloudEnabled())
{
%>
<%-- Include the main navigation for all the browse pages --%>
<%-- This first part is where we render the standard bits required by both possibly navigations --%>
<div id="browse_navigation" class="well text-center">
@@ -311,5 +315,15 @@
<%--
<!-- <%= bi.toString() %> -->
--%>
<%
}
else {
%>
<div class="row" style="overflow:hidden">
<%@ include file="static-tagcloud-browse.jsp" %>
</div>
<%
}
%>
</dspace:layout>

View File

@@ -0,0 +1,52 @@
<%--
The contents of this file are subject to the license and copyright
detailed in the LICENSE and NOTICE files at the root of the source
tree and available online at
http://www.dspace.org/license/
--%>
<%--
- fragment JSP to be included in single browse gsp pages
-
--%>
<%@page import="org.dspace.content.DSpaceObject"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="org.apache.commons.lang.StringUtils"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Map"%>
<%@ page import="org.dspace.browse.BrowseInfo" %>
<%@ page import="org.dspace.browse.BrowseIndex" %>
<%@ page import="org.dspace.core.Utils" %>
<%
BrowseInfo bi2 = (BrowseInfo) request.getAttribute("browse.info");
BrowseIndex bix2 = bi2.getBrowseIndex();
String type2 = "1";
String index = "subject";
String scope2 = "";
DSpaceObject dso = bi2.getBrowseContainer();
if (dso!=null){
scope2 = "/handle/" + dso.getHandle();
}
Map<String, Integer> data = new HashMap<String, Integer>();
String[][] results2 = bi2.getStringResults();
for (int i = 0; i < results2.length; i++)
{
String value = Utils.addEntities(results2[i][0]);
int count = Integer.parseInt(results2[i][2]);
data.put(value, count);
}
%>
<div>
<dspace:tagcloud index='<%= index %>' scope='<%= scope2 %>' data='<%= data %>' type='<%= type2 %>'/><br/><br/>
</div>
<%
%>

View File

@@ -1124,6 +1124,9 @@ webui.browse.index.4 = subject:metadata:dc.subject.*:text
## example of authority-controlled browse category - see authority control config
#webui.browse.index.5 = lcAuthor:metadataAuthority:dc.contributor.author:authority
#Enable/Disable tag cloud in browsing. Default is false.
webui.browse.index.tagcloud.4 = true
# Set the options for what can be sorted by
#
# Sort options will be available when browsing a list of items (i.e. an 'item' browse,