From 592b1da0ce307663ba4bb606b2d7efe844f67b58 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Thu, 17 Aug 2006 16:31:45 +0000 Subject: [PATCH] . RSS Feed logo now shown on the main Browse screen for a space if it has a feed template applied . Fixed TemplateContentServlet to allow addition URL elements to specify filename for output stream git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3539 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../app/servlet/TemplateContentServlet.java | 4 +-- .../org/alfresco/web/bean/NavigationBean.java | 16 +++++++++ .../alfresco/web/bean/SpaceDetailsBean.java | 35 +++++++++++++++---- source/web/jsp/browse/browse.jsp | 6 +++- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/source/java/org/alfresco/web/app/servlet/TemplateContentServlet.java b/source/java/org/alfresco/web/app/servlet/TemplateContentServlet.java index a264a278b2..99fdce8af5 100644 --- a/source/java/org/alfresco/web/app/servlet/TemplateContentServlet.java +++ b/source/java/org/alfresco/web/app/servlet/TemplateContentServlet.java @@ -142,7 +142,7 @@ public class TemplateContentServlet extends BaseServlet templateRef = pathInfo.NodeRef; } - else if (tokenCount == 7) + else if (tokenCount >= 7) { StoreRef storeRef = new StoreRef(t.nextToken(), t.nextToken()); templateRef = new NodeRef(storeRef, t.nextToken()); @@ -157,7 +157,7 @@ public class TemplateContentServlet extends BaseServlet if (nodeRef == null) { - throw new TemplateException("Not enough arguments supplied in URL."); + throw new TemplateException("Not enough elements supplied in URL or no 'path' argument specified."); } // get the services we need to retrieve the content diff --git a/source/java/org/alfresco/web/bean/NavigationBean.java b/source/java/org/alfresco/web/bean/NavigationBean.java index 4fb870af90..d426a07732 100644 --- a/source/java/org/alfresco/web/bean/NavigationBean.java +++ b/source/java/org/alfresco/web/bean/NavigationBean.java @@ -698,6 +698,22 @@ public class NavigationBean return this.cifsServerPath; } + /** + * @return true if the current space has an RSS feed applied + */ + public boolean isRSSFeed() + { + return SpaceDetailsBean.hasRSSFeed(getCurrentNode()); + } + + /** + * @return RSS Feed URL for the current space + */ + public String getRSSFeedURL() + { + return SpaceDetailsBean.buildRSSFeedURL(getCurrentNode()); + } + // ------------------------------------------------------------------------------ // Private helpers diff --git a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java index 745301a528..234a37ecdb 100644 --- a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java +++ b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java @@ -471,18 +471,41 @@ public class SpaceDetailsBean extends BaseDetailsBean */ public boolean isRSSFeed() { - return (getSpace().hasAspect(ContentModel.ASPECT_FEEDSOURCE) && - getSpace().getProperties().get(ContentModel.PROP_FEEDTEMPLATE) != null); + return hasRSSFeed(getSpace()); } + /** + * @return true if the current space has an RSS feed applied + */ + public static boolean hasRSSFeed(Node space) + { + return (space.hasAspect(ContentModel.ASPECT_FEEDSOURCE) && + space.getProperties().get(ContentModel.PROP_FEEDTEMPLATE) != null); + } + + /** + * @return RSS Feed URL for the current space + */ public String getRSSFeedURL() { - // build RSS feed template URL from selected template and current space NodeRef and + return buildRSSFeedURL(getSpace()); + } + + /** + * Build URL for an RSS space based on the 'feedsource' aspect property. + * + * @param space Node to build RSS template URL for + * + * @return URL for the RSS feed for a space + */ + public static String buildRSSFeedURL(Node space) + { + // build RSS feed template URL from selected template and the space NodeRef and // add the guest=true URL parameter - this is required for no login access and // add the mimetype=text/xml URL parameter - required to return correct stream type - return TemplateContentServlet.generateURL(getSpace().getNodeRef(), - (NodeRef)getSpace().getProperties().get(ContentModel.PROP_FEEDTEMPLATE)) - + "?guest=true" + "&mimetype=text%2Fxml"; + return TemplateContentServlet.generateURL(space.getNodeRef(), + (NodeRef)space.getProperties().get(ContentModel.PROP_FEEDTEMPLATE)) + + "/rss.xml?guest=true" + "&mimetype=text%2Fxml"; } /** diff --git a/source/web/jsp/browse/browse.jsp b/source/web/jsp/browse/browse.jsp index 2bc57ab8d3..ff5e427bcf 100644 --- a/source/web/jsp/browse/browse.jsp +++ b/source/web/jsp/browse/browse.jsp @@ -108,7 +108,11 @@ <%-- Summary --%> -
 
+
+   +   + +