You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by me...@apache.org on 2009/03/20 19:32:58 UTC
svn commit: r756702 - in /incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH:
ChangeLog src/com/ecyrd/jspwiki/Release.java
src/com/ecyrd/jspwiki/tags/BreadcrumbsTag.java src/webdocs/Delete.jsp
src/webdocs/Rename.jsp
Author: metskem
Date: Fri Mar 20 18:32:55 2009
New Revision: 756702
URL: http://svn.apache.org/viewvc?rev=756702&view=rev
Log:
2.8.2-svn-15 JSPWIKI-487 don't show deleted and renamed pages in the breadcrumbs, reported by Bruno Peeters
Modified:
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/tags/BreadcrumbsTag.java
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Delete.jsp
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Rename.jsp
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog?rev=756702&r1=756701&r2=756702&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog Fri Mar 20 18:32:55 2009
@@ -1,3 +1,10 @@
+2009-03-20 Harry Metske <me...@apache.org>
+
+ * 2.8.2-svn-15
+
+ * JSPWIKI-487 don't show deleted and renamed pages in the breadcrumbs
+ reported by Bruno Peeters
+
2009-03-19 Andrew Jaquith <ajaquith AT apache DOT org>
* 2.8.2-svn-14
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java?rev=756702&r1=756701&r2=756702&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java Fri Mar 20 18:32:55 2009
@@ -77,7 +77,7 @@
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "14";
+ public static final String BUILD = "15";
/**
* This is the generic version string you should use
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/tags/BreadcrumbsTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/tags/BreadcrumbsTag.java?rev=756702&r1=756701&r2=756702&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/tags/BreadcrumbsTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/tags/BreadcrumbsTag.java Fri Mar 20 18:32:55 2009
@@ -53,7 +53,8 @@
private static final long serialVersionUID = 0L;
private static final Logger log = Logger.getLogger(BreadcrumbsTag.class);
- private static final String BREADCRUMBTRAIL_KEY = "breadCrumbTrail";
+ /** The name of the session attribute representing the breadcrumbtrail */
+ public static final String BREADCRUMBTRAIL_KEY = "breadCrumbTrail";
private int m_maxQueueSize = 11;
private String m_separator = ", ";
@@ -111,37 +112,44 @@
/**
* {@inheritDoc}
*/
- @SuppressWarnings("unchecked")
@Override
public int doWikiStartTag() throws IOException
{
HttpSession session = pageContext.getSession();
- FixedQueue<String> trail = (FixedQueue<String>) session.getAttribute(BREADCRUMBTRAIL_KEY);
+ FixedQueue trail = (FixedQueue) session.getAttribute(BREADCRUMBTRAIL_KEY);
String page = m_wikiContext.getPage().getName();
if( trail == null )
{
- trail = new FixedQueue<String>(m_maxQueueSize);
+ trail = new FixedQueue(m_maxQueueSize);
}
- if( m_wikiContext.getRequestContext().equals( WikiContext.VIEW ) )
+ if (m_wikiContext.getRequestContext().equals(WikiContext.VIEW))
{
- if( trail.isEmpty() )
+ if (m_wikiContext.getEngine().pageExists(page))
{
- trail.pushItem(page);
- }
- else
- {
- //
- // Don't add the page to the queue if the page was just refreshed
- //
- if( !trail.getLast().equals(page) )
+ if (trail.isEmpty())
{
trail.pushItem(page);
- log.debug("added page: " + page);
}
- log.debug("didn't add page because of refresh");
+ else
+ {
+ //
+ // Don't add the page to the queue if the page was just
+ // refreshed
+ //
+ if (!trail.getLast().equals(page))
+ {
+ trail.pushItem(page);
+ log.debug("added page: " + page);
+ }
+ log.debug("didn't add page because of refresh");
+ }
+ }
+ else
+ {
+ log.debug("didn't add page because it doesn't exist: " + page);
}
}
@@ -180,8 +188,8 @@
/**
* Extends the LinkedList class to provide a fixed-size queue implementation
*/
- public static class FixedQueue<T>
- extends LinkedList<T>
+ public static class FixedQueue
+ extends LinkedList<String>
implements Serializable
{
private int m_size;
@@ -192,7 +200,7 @@
m_size = size;
}
- T pushItem(T o)
+ String pushItem(String o)
{
add(o);
if( size() > m_size )
@@ -202,7 +210,23 @@
return null;
}
- }
+
+ /**
+ * @param pageName
+ * the page to be deleted from the breadcrumb
+ */
+ public void removeItem(String pageName)
+ {
+ for (int i = 0; i < size(); i++)
+ {
+ String page = get(i);
+ if (page != null && page.equals(pageName))
+ {
+ remove(page);
+ }
+ }
+ }
+ }
}
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Delete.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Delete.jsp?rev=756702&r1=756701&r2=756702&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Delete.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Delete.jsp Fri Mar 20 18:32:55 2009
@@ -1,5 +1,7 @@
<%@ page import="org.apache.log4j.*" %>
<%@ page import="com.ecyrd.jspwiki.*" %>
+<%@ page import="com.ecyrd.jspwiki.tags.BreadcrumbsTag" %>
+<%@ page import="com.ecyrd.jspwiki.tags.BreadcrumbsTag.FixedQueue" %>
<%@ page import="java.util.*" %>
<%@ page import="com.ecyrd.jspwiki.attachment.Attachment" %>
<%@ page errorPage="/Error.jsp" %>
@@ -38,7 +40,15 @@
log.info("Deleting page "+pagereq+". User="+request.getRemoteUser()+", host="+request.getRemoteAddr() );
wiki.deletePage( pagereq );
- response.sendRedirect(wiki.getViewURL(redirTo));
+
+ FixedQueue trail = (FixedQueue) session.getAttribute( BreadcrumbsTag.BREADCRUMBTRAIL_KEY );
+ if( trail != null )
+ {
+ trail.removeItem( pagereq );
+ session.setAttribute( BreadcrumbsTag.BREADCRUMBTRAIL_KEY, trail );
+ }
+
+ response.sendRedirect(wikiContext.getURL( WikiContext.VIEW, pagereq ) );
return;
}
else if( delete != null )
Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Rename.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Rename.jsp?rev=756702&r1=756701&r2=756702&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Rename.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Rename.jsp Fri Mar 20 18:32:55 2009
@@ -1,5 +1,7 @@
<%@ page import="org.apache.log4j.*" %>
<%@ page import="com.ecyrd.jspwiki.*" %>
+<%@ page import="com.ecyrd.jspwiki.tags.BreadcrumbsTag" %>
+<%@ page import="com.ecyrd.jspwiki.tags.BreadcrumbsTag.FixedQueue" %>
<%@ page errorPage="/Error.jsp" %>
<%@ taglib uri="/WEB-INF/jspwiki.tld" prefix="wiki" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
@@ -37,17 +39,21 @@
{
String renamedTo = wiki.renamePage(wikiContext, renameFrom, renameTo, changeReferences);
+ FixedQueue trail = (FixedQueue) session.getAttribute( BreadcrumbsTag.BREADCRUMBTRAIL_KEY );
+ if( trail != null )
+ {
+ trail.removeItem( renameFrom );
+ session.setAttribute( BreadcrumbsTag.BREADCRUMBTRAIL_KEY, trail );
+ }
+
log.info("Page successfully renamed to '"+renamedTo+"'");
response.sendRedirect( wikiContext.getURL( WikiContext.VIEW, renamedTo ) );
return;
}
- else
- {
- wikiSession.addMessage("rename", rb.getString("rename.empty"));
+ wikiSession.addMessage("rename", rb.getString("rename.empty"));
- log.info("Page rename request failed because new page name was left blank");
- }
+ log.info("Page rename request failed because new page name was left blank");
}
catch (WikiException e)
{