From: <jbo...@li...> - 2005-08-18 11:33:56
|
Author: szimano Date: 2005-08-17 17:58:37 -0400 (Wed, 17 Aug 2005) New Revision: 892 Added: trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/PageInfo.jsp Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java Log: page info prototype Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java 2005-08-17 18:45:39 UTC (rev 891) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java 2005-08-17 21:58:37 UTC (rev 892) @@ -142,7 +142,24 @@ return null; } } + + public WikiPage getByName(String pageName, WikiContext wikiContext, int version) { + + WikiPage ret = null; + ret = mediaDataSource.getPageAtVersion(pageName, version); + + if (ret != null) { + if (wikiContext != null) { + return wikiContext.process(ret); + } else { + return ret; + } + } else { + return null; + } + } + /** * <p> * Does ... Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java 2005-08-17 18:45:39 UTC (rev 891) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java 2005-08-17 21:58:37 UTC (rev 892) @@ -189,8 +189,7 @@ * @param version */ public WikiPage getPageAtVersion(int version) { - // your code here - return null; + return mediaDataSource.getPageAtVersion(name,version); } /** Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-17 18:45:39 UTC (rev 891) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-17 21:58:37 UTC (rev 892) @@ -9,6 +9,7 @@ package org.jboss.wiki; import java.util.Date; +import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -39,9 +40,9 @@ public void processAction(JBossActionRequest rReq, JBossActionResponse rResp) { // wikiContext is null - to get refernece to actual page - - WikiContext wikiContext = null; + WikiContext wikiContext = null; + if (rReq.getParameter("action") != null) { rResp.setRenderParameter("action", rReq.getParameter("action")); } @@ -58,11 +59,11 @@ WikiPage edPage = wikiEngine.getByName((String) rReq .getParameter("editedPage"), wikiContext); - - if (edPage != null) { //it may be null if the page isn't saved yet + if (edPage != null) { // it may be null if the page isn't saved + // yet edPage.unlock(rReq.getUser()); } - + // saving, previewing or canceling if (rReq.getParameter("editAction").equals("Save")) { @@ -75,7 +76,8 @@ if (edPage == null) { edPage = new WikiPage(rReq.getParameter("editedPage"), - credentials, "", 0, new Date(), wikiEngine.getMediaDataSource()); + credentials, "", 0, new Date(), wikiEngine + .getMediaDataSource()); } // set new content @@ -92,8 +94,9 @@ // save the page edPage.save(); - - // and finally remove old page object from memory to force reloading it + + // and finally remove old page object from memory to force + // reloading it wikiEngine.refreshPage(edPage.getName()); } } @@ -104,7 +107,8 @@ throws PortletException, java.io.IOException { WikiPage noSuchPage = new WikiPage("", new Credentials(""), - "There is no such page. Click on EDIT to start it.", 0, null, wikiEngine.getMediaDataSource()); + "There is no such page. Click on EDIT to start it.", 0, null, + wikiEngine.getMediaDataSource()); String page = "Wiki.jsp"; @@ -130,7 +134,8 @@ // wikiPage = defaultPage; pageToShow = new WikiPage(wikiPage, new Credentials(rReq - .getUser().getUserName()), "", 0, new Date(), wikiEngine.getMediaDataSource()); + .getUser().getUserName()), "", 0, new Date(), + wikiEngine.getMediaDataSource()); // wikiEngine.getByName(wikiPage, wikiContext); } @@ -147,7 +152,29 @@ + ".<br> I won't stop you from saving, but you or he can erease each other changes. Lock will expire: "); } + } else if ((rReq.getParameter("action") != null) + && (rReq.getParameter("action").equals("Info"))) { + page = "PageInfo.jsp"; + HashMap<Integer, WikiPage> pageVersions = new HashMap<Integer, WikiPage>(); + + pageToShow = wikiEngine.getByName(wikiPage, null); + + if (pageToShow == null) { //if somebody entered a link to info non-existing page + page = "Wiki.jsp"; + try { + pageToShow = (WikiPage) noSuchPage.clone(); + } catch (CloneNotSupportedException cnse) { + System.out.println(cnse); + } + + pageToShow.setName(wikiPage); + } + else { + rReq.setAttribute("pageAtTop", pageToShow); + } + } else { + page = "Wiki.jsp"; wikiContext = new WikiContext(rReq.getUser(), wikiEngine .getWikiType("HTML")); Added: trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/PageInfo.jsp =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/PageInfo.jsp 2005-08-17 18:45:39 UTC (rev 891) +++ trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/PageInfo.jsp 2005-08-17 21:58:37 UTC (rev 892) @@ -0,0 +1,56 @@ +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> + +<%@ page language="java" extends="org.jboss.portal.core.servlet.jsp.PortalJsp" %> +<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="n" %> +<%@ taglib uri="/WEB-INF/tld/forge.tld" prefix="forge" %> +<!--<%@ taglib uri="/WEB-INF/tld/wiki.tld" prefix="wiki" %>--> +<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> +<%@ page isELIgnored ="false" %> +<portlet:defineObjects/> + +<% + String actionURL = (String)request.getAttribute("actionURL"); + String wikiName = (String)request.getAttribute("wikiName"); + //String wikiContent = (String)request.getAttribute("wikiContent"); + String wikiPage = (String)request.getAttribute("wikiPage"); + //java.util.Date editDate = (java.util.Date)request.getAttribute("editDate"); + //org.jboss.wiki.Credentials author = (org.jboss.wiki.Credentials)request.getAttribute("author"); +%> + +<h2><%=wikiName%>/ <%=wikiPage%></h2> + +<hr /> + +<div class="wikiTrail">Your trail: <i>TODO</i></div> + +<hr /> + +<table> +<tr> +<td class="wikiContent"> +<table border="1"> +<% + org.jboss.wiki.WikiPage pageAtTop = (org.jboss.wiki.WikiPage)request.getAttribute("pageAtTop"); + int topVersion = pageAtTop.getLastVersion(); + + out.println("<tr><td>Version</td><td>Date</td><td>Author</td><td>Size</td><td>Changes from previous</td></tr>"); + + for (int i = topVersion; i > 0; i--) { + org.jboss.wiki.WikiPage prevWikiPage = pageAtTop.getPageAtVersion(i); + out.println("<tr><td>"+i+"</td><td>"+prevWikiPage.getEditDate()+"</td><td>"+prevWikiPage.getLastAuthor()+"</td><td>size</td><td>changes</td>"); + } +%> +</table> +<td> +</tr> +<tr> +<td class="wikiFooter"> +</td> +</tr> + +</table> +<a href="<%=actionURL%>&page=<%=wikiPage%>">Back to <%=wikiPage%></a> |