Author: ajaquith
Date: Fri Nov 27 20:28:29 2009
New Revision: 884986

URL: http://svn.apache.org/viewvc?rev=884986&view=rev
Log:
Default template AJAXCategories.jsp logic moved to 
ViewActionBean.ajaxCategories(). AJAXPreview.jsp logic moved to 
EditActionBean.ajaxPreview(). Script files jspwiki-common.js and 
jspwiki-edit.js were slightly tweaked. ** not fully tested yet **

Removed:
    incubator/jspwiki/trunk/src/WebContent/templates/default/AJAXCategories.jsp
    incubator/jspwiki/trunk/src/WebContent/templates/default/AJAXPreview.jsp
Modified:
    incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
    incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js
    incubator/jspwiki/trunk/src/java/org/apache/wiki/action/ViewActionBean.java

Modified: incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js?rev=884986&r1=884985&r2=884986&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js (original)
+++ incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js Fri Nov 27 
20:28:29 2009
@@ -2598,7 +2598,7 @@
 
                                event.stop();  //dont jump to top of page ;-)
                                new Request.HTML({
-                                       url:Wiki.TemplateUrl + 
'AJAXCategories.jsp',
+                                       url:Wiki.BaseUrl + 
'/View.action?ajaxCategories=',
                                        data: '&page=' + page,
                                        update: popup,
                                        onComplete: function(){

Modified: incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js?rev=884986&r1=884985&r2=884986&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js (original)
+++ incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js Fri Nov 27 
20:28:29 2009
@@ -584,8 +584,8 @@
                        self.previewcache = text;
 
                        new Request.HTML({
-                               url:Wiki.TemplateUrl + "/AJAXPreview.jsp?page=" 
+ page,
-                               data: 'wikimarkup=' + encodeURIComponent( text 
),
+                               url:Wiki.BaseUrl + 
"/Edit.action?ajaxPreview=&page=" + page,
+                               data: 'wikiText=' + encodeURIComponent( text ),
                                update: preview,
                                onRequest: function(){ spin.show(); },
                                onComplete: function(){ spin.hide(); 
Wiki.renderPage(preview, page); }

Modified: 
incubator/jspwiki/trunk/src/java/org/apache/wiki/action/ViewActionBean.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/action/ViewActionBean.java?rev=884986&r1=884985&r2=884986&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/action/ViewActionBean.java 
(original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/action/ViewActionBean.java 
Fri Nov 27 20:28:29 2009
@@ -21,9 +21,13 @@
 
 package org.apache.wiki.action;
 
+import java.io.IOException;
+import java.io.Writer;
 import java.net.URI;
 import java.util.List;
 
+import javax.servlet.http.HttpServletResponse;
+
 import net.sourceforge.stripes.action.*;
 import net.sourceforge.stripes.controller.LifecycleStage;
 import net.sourceforge.stripes.validation.LocalizableError;
@@ -31,14 +35,17 @@
 import net.sourceforge.stripes.validation.ValidationError;
 import net.sourceforge.stripes.validation.ValidationErrors;
 
+import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiProvider;
+import org.apache.wiki.api.PluginException;
 import org.apache.wiki.api.WikiException;
 import org.apache.wiki.api.WikiPage;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.content.PageNotFoundException;
 import org.apache.wiki.log.Logger;
 import org.apache.wiki.log.LoggerFactory;
+import org.apache.wiki.plugin.PluginManager;
 import org.apache.wiki.ui.stripes.HandlerPermission;
 import org.apache.wiki.ui.stripes.WikiActionBeanContext;
 import org.apache.wiki.ui.stripes.WikiRequestContext;
@@ -62,6 +69,43 @@
     }
 
     /**
+     * Using AJAX, returns a {...@link StreamingResolution} containing
+     * divs with categories for a supplied current page.
+     * 
+     * @return always returns a {...@link StreamingResolution} containing the
+     * results
+     */
+    @HandlesEvent( "ajaxCategories" )
+    public Resolution ajaxCategories()
+    {
+        Resolution r = new StreamingResolution( "text/html; charset=UTF-8" ) {
+            public void stream( HttpServletResponse response ) throws 
IOException
+            {
+                WikiContext context = getContext();
+                WikiPage page = getPage();
+                Writer out = response.getWriter();
+                out.write( "<div class='categoryTitle'>");
+                out.write( context.getViewURL( page.getName() ) );
+                out.write( "</div>" );
+                out.write( "<div class='categoryText'>");
+                PluginManager mgr = context.getEngine().getPluginManager();
+                String result;
+                try
+                {
+                    result = mgr.execute( context, 
"{ReferringPagesPlugin,page="+page.getName()+",max=20,before='*',after='\n'}" );
+                }
+                catch (PluginException e)
+                {
+                    result = e.getMessage();
+                }
+                out.write( result );
+                out.write( "</div>" );
+            }
+        };
+        return r;
+    }
+
+    /**
      * Handler that forwards to the page information display JSP
      * <code>/Attachments.jsp</code>.
      * 


Reply via email to