[jboss-svn-commits] JBL Code SVN: r8244 - in labs/jbosslabs/trunk/portal-extensions/jbosswiki: forge-wiki/src/java/org/jboss/wiki forge-wiki/src/java/org/jboss/wiki/attributesextractor forge-wiki/src/java/org/jboss/wiki/helper forge-wiki/src/java/org/jboss/wiki/ui forge-wiki/src/web forge-wiki/src/web/WEB-INF forge-wiki/src/web/views wiki-common/src/etc/images wiki-common/src/java/org/jboss/wiki wiki-test wiki-test/src/java/org/jboss/wiki/test

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 11 17:47:29 EST 2006


Author: szimano
Date: 2006-12-11 17:47:10 -0500 (Mon, 11 Dec 2006)
New Revision: 8244

Added:
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiCommonSession.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml
Modified:
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortletOld.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/attributesextractor/PortletAttributesExctractor.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/helper/WikiHelper.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiView.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/Messages.properties
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/faces-config.xml
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_template.xhtml
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_view.xhtml
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/etc/images/wikiStyle.css
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/DictionaryTest.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/GetSavePageTest.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/WikiTest.java
Log:
jbosswiki edit view JBWIKI-96

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortletOld.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortletOld.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortletOld.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -303,25 +303,13 @@
 							0, (String) convertedParameters.get("language"));
 				}
 
-				// set new content
-				edPage.setContent(convertedParameters.get("wikiContent"));
-
-				// set author name for new version
-				edPage.setLastAuthor(credentials);
-
-				// increase page version
-				edPage.setLastVersion(edPage.getLastVersion() + 1);
-
-				// set new data
-				edPage.setEditDate(new Date());
-
 				// save the page
 				try {
 					edPage.save(credentials, Integer
 							.valueOf((String) convertedParameters
 									.get("editSessionId")),
 							(String) convertedParameters.get("language"),
-							new PortletWikiSession(rReq.getPortletSession()));
+							new PortletWikiSession(rReq.getPortletSession()), convertedParameters.get("wikiContent"));
 				} catch (NumberFormatException e) {
 					log.error(e);
 				} catch (EditSessionExpired e) {

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/attributesextractor/PortletAttributesExctractor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/attributesextractor/PortletAttributesExctractor.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/attributesextractor/PortletAttributesExctractor.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -129,14 +129,15 @@
 
 			String jsfUrl = portletURL.toString();
 
-			log.info("ViewID: "+FacesContext.getCurrentInstance()
-										.getViewRoot().getViewId());
+			log.info("ViewID: "
+					+ FacesContext.getCurrentInstance().getViewRoot()
+							.getViewId());
 			try {
 				jsfUrl += "&"
 						+ MyFacesGenericPortlet.VIEW_ID
 						+ "="
 						+ URLEncoder.encode(FacesContext.getCurrentInstance()
-										.getViewRoot().getViewId(), "UTF-8");
+								.getViewRoot().getViewId(), "UTF-8");
 			} catch (UnsupportedEncodingException e) {
 				log.error(e);
 			}
@@ -147,7 +148,8 @@
 			throw new IllegalArgumentException(
 					"response and request should be instance of class "
 							+ RenderResponse.class + " and "
-							+ RenderRequest.class);
+							+ RenderRequest.class + " but are " + request.getClass()
+							+ " and " + response.getClass());
 		}
 	}
 

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/helper/WikiHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/helper/WikiHelper.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/helper/WikiHelper.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -22,7 +22,10 @@
 
 package org.jboss.wiki.helper;
 
+import javax.faces.context.FacesContext;
 import javax.portlet.PortletRequest;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
 
 import org.jboss.logging.Logger;
 import org.jboss.wiki.WikiCommon;
@@ -32,6 +35,7 @@
 import org.jboss.wiki.attributesextractor.PortletAttributesExctractor;
 import org.jboss.wiki.exceptions.WikiManagementNotFoundException;
 import org.jboss.wiki.management.WikiServiceManagement;
+import org.jboss.wiki.ui.WikiCommonSession;
 
 /**
  * WikiHelper.java
@@ -45,6 +49,8 @@
 
 	private static final Logger log = Logger.getLogger(WikiHelper.class);
 
+	private static final String WIKI_COMMON_SESSION = "#{wikiCommon}";
+
 	public static WikiEngine getWikiEngine() {
 		if (wikiEngine == null) {
 			try {
@@ -59,24 +65,47 @@
 		return wikiEngine;
 	}
 
-	public static AttributesExtractor getAttributesExtractor(Object request, Object response) {
-		AttributesExtractor extractor; 
-	
+	public static AttributesExtractor getAttributesExtractor(Object request,
+			Object response) {
+		AttributesExtractor extractor;
+
 		if (request instanceof PortletRequest) {
 			extractor = new PortletAttributesExctractor(request);
+		} else {
+			throw new IllegalArgumentException("Unknow type request: "
+					+ request);
 		}
-		else {
-			throw new IllegalArgumentException("Unknow type request: "+request);
-		}
-		
-		extractor.getWikiSession().setAttribute(WikiSession.CREDENTIALS, extractor.getCredentials());
-		extractor.getWikiSession().setAttribute(WikiSession.HOST_URL, extractor.getHostURL());
-		
-		//TODO wikiURL
-		extractor.getWikiSession().setAttribute(WikiSession.ACTION_URL, extractor.getOutputLink(request, response, true));
-		extractor.getWikiSession().setAttribute(WikiSession.IS_SECURE, extractor.isSecure());
-		
+
+		extractor.getWikiSession().setAttribute(WikiSession.CREDENTIALS,
+				extractor.getCredentials());
+		extractor.getWikiSession().setAttribute(WikiSession.HOST_URL,
+				extractor.getHostURL());
+
+		// TODO wikiURL
+		if (request instanceof RenderRequest
+				&& response instanceof RenderResponse)
+			extractor.getWikiSession().setAttribute(WikiSession.ACTION_URL,
+					extractor.getOutputLink(request, response, true));
+
+		extractor.getWikiSession().setAttribute(WikiSession.IS_SECURE,
+				extractor.isSecure());
+
 		return extractor;
 	}
-	
+
+	public static Object getRequest() {
+		return FacesContext.getCurrentInstance().getExternalContext()
+				.getRequest();
+	}
+
+	public static Object getResponse() {
+		return FacesContext.getCurrentInstance().getExternalContext()
+				.getResponse();
+	}
+
+	public static WikiCommonSession getWikiCommonSession() {
+		FacesContext fc = FacesContext.getCurrentInstance();
+		return (WikiCommonSession) fc.getApplication().createValueBinding(
+				WIKI_COMMON_SESSION).getValue(fc);
+	}
 }

Added: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiCommonSession.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiCommonSession.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiCommonSession.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.wiki.ui;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.WikiEngine;
+import org.jboss.wiki.attributesextractor.AttributesExtractor;
+import org.jboss.wiki.helper.WikiHelper;
+
+/**
+ * WikiCommonSession.java
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ */
+
+public class WikiCommonSession {
+	private static final Logger log = Logger.getLogger(WikiCommonSession.class);
+	
+	private String pageName = WikiEngine.defaultPage;
+	
+	private String langCode = WikiEngine.defaultLangugeCode;
+	
+	public WikiCommonSession() {
+		AttributesExtractor attrExtractor = WikiHelper.getAttributesExtractor(WikiHelper.getRequest(),
+				WikiHelper.getResponse());
+		if (attrExtractor.getRequestedPageName() != null) {
+			pageName = attrExtractor.getRequestedPageName();
+			log.info("Page name: " + pageName);
+		}
+		if (attrExtractor.getRequestedLanguage() != null) {
+			langCode = attrExtractor.getRequestedLanguage();
+		}
+	}
+
+	public void setPageName(String requestedPageName) {
+		pageName = requestedPageName;
+	}
+	
+	public void setLangCode(String langCode) {
+		this.langCode = langCode;
+	}
+
+	public String getLangCode() {
+		return langCode;
+	}
+
+	public String getPageName() {
+		return pageName;
+	}
+}

Added: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -0,0 +1,110 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.wiki.ui;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.WikiContext;
+import org.jboss.wiki.WikiEngine;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.attributesextractor.AttributesExtractor;
+import org.jboss.wiki.exceptions.EditSessionExpired;
+import org.jboss.wiki.exceptions.EditingNotAllowedException;
+import org.jboss.wiki.exceptions.WikiSaveException;
+import org.jboss.wiki.helper.WikiHelper;
+
+/**
+ * WikiEdit.java
+ * 
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ */
+
+public class WikiEdit {
+
+	private final static Logger log = Logger.getLogger(WikiEdit.class);
+
+	private AttributesExtractor attributesExtractor;
+
+	private Integer editSessionId;
+
+	private String pageContent;
+
+	public WikiEdit() {
+		attributesExtractor = WikiHelper.getAttributesExtractor(WikiHelper
+				.getRequest(), WikiHelper.getResponse());
+	}
+
+	public String getPageContent() {
+		return getWikiPage().getContent();
+	}
+
+	public void setPageContent(String pageContent) {
+		this.pageContent = pageContent;
+	}
+
+	private WikiPage getWikiPage() {
+		WikiEngine wikiEngine = WikiHelper.getWikiEngine();
+		WikiContext wikiContext = new WikiContext(attributesExtractor
+				.getCredentials(), wikiEngine.getWikiType("edit"),
+				attributesExtractor.getWikiSession());
+
+		return wikiEngine.getByName(WikiHelper.getWikiCommonSession()
+				.getPageName(), wikiContext, WikiHelper.getWikiCommonSession()
+				.getLangCode());
+	}
+
+	public String save() {
+		WikiEngine wikiEngine = WikiHelper.getWikiEngine();
+
+		try {
+			getWikiPage().save(attributesExtractor.getCredentials(),
+					editSessionId,
+					WikiHelper.getWikiCommonSession().getLangCode(),
+					attributesExtractor.getWikiSession(), pageContent);
+		} catch (EditSessionExpired e) {
+			log.error(e);
+			return "error";
+		} catch (WikiSaveException e) {
+			log.error(e);
+			return "error";
+		} catch (EditingNotAllowedException e) {
+			log.error(e);
+			return "error";
+		}
+
+		return "save";
+	}
+
+	public String getEditSessionId() {
+		if (editSessionId == null) {
+			editSessionId = WikiHelper.getWikiEngine().getEditSessionId();
+			getWikiPage().lock(attributesExtractor.getCredentials(),
+					editSessionId);
+		}
+
+		return editSessionId.toString();
+	}
+
+	public void setEditSessionId(String editSessionId) {
+		this.editSessionId = Integer.valueOf(editSessionId);
+	}
+}

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiView.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiView.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiView.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -22,12 +22,11 @@
 
 package org.jboss.wiki.ui;
 
-import javax.faces.context.FacesContext;
-
 import org.jboss.logging.Logger;
 import org.jboss.wiki.WikiCommon;
 import org.jboss.wiki.WikiContext;
 import org.jboss.wiki.WikiEngine;
+import org.jboss.wiki.WikiPage;
 import org.jboss.wiki.WikiType;
 import org.jboss.wiki.attributesextractor.AttributesExtractor;
 import org.jboss.wiki.helper.WikiHelper;
@@ -40,58 +39,69 @@
 
 public class WikiView {
 	private static final Logger log = Logger.getLogger(WikiView.class);
-	
+
 	private AttributesExtractor attrExtractor;
 
-	private String pageName = "Main";
+	private WikiPage currentPage;
 
-	private String langCode = "EN";
+	public WikiView() {
+		attrExtractor = WikiHelper.getAttributesExtractor(WikiHelper
+				.getRequest(), WikiHelper.getResponse());
 
-	public WikiView() {
-		attrExtractor = WikiHelper.getAttributesExtractor(getRequest(), getResponse());
 		if (attrExtractor.getRequestedPageName() != null) {
-			pageName = attrExtractor.getRequestedPageName();
-			log.info("Page name: "+pageName);
+			WikiHelper.getWikiCommonSession().setPageName(
+					attrExtractor.getRequestedPageName());
 		}
 		if (attrExtractor.getRequestedLanguage() != null) {
-			langCode = attrExtractor.getRequestedLanguage();
+			WikiHelper.getWikiCommonSession().setLangCode(
+					attrExtractor.getRequestedLanguage());
 		}
 	}
 
-	private Object getRequest() {
-		return FacesContext.getCurrentInstance().getExternalContext()
-				.getRequest();
-	}
-	
-	private Object getResponse() {
-		return FacesContext.getCurrentInstance().getExternalContext()
-				.getResponse();
-	}
-
 	public String getWikiImagesURL() {
 		return attrExtractor.getHostURL() + attrExtractor.getAppContext() + "/"
 				+ WikiCommon.wikiButtons + "/";
 	}
-	
+
 	public String getWikiFriendlyURL() {
-		return attrExtractor.getHostURL() + attrExtractor.getAppContext() + "/" + pageName;
+		return attrExtractor.getHostURL() + attrExtractor.getAppContext() + "/"
+				+ WikiHelper.getWikiCommonSession().getPageName();
 	}
 
+	public String getWikiMainPageURL() {
+		return attrExtractor.getHostURL() + attrExtractor.getAppContext() + "/"
+				+ WikiHelper.getWikiCommonSession().getLangCode() + "/"
+				+ WikiEngine.defaultPage;
+	}
+
 	public String getPageName() {
-		if (pageName == null) {
-			
+		if (WikiHelper.getWikiCommonSession().getPageName() == null) {
+
 		}
-		
-		return pageName;
+
+		return WikiHelper.getWikiCommonSession().getPageName();
 	}
 
 	public String getPageContent() {
-		WikiEngine engine = WikiHelper.getWikiEngine();
+		return getCurrentPage().getContent();
+	}
 
-		WikiType wikiType = engine.getWikiType("html");
-		WikiContext wikiContext = new WikiContext(attrExtractor
-				.getCredentials(), wikiType, attrExtractor.getWikiSession());
+	public boolean isPageViewable() {
+		return getCurrentPage().isViewable(attrExtractor.getCredentials());
+	}
 
-		return engine.getByName(pageName, wikiContext, langCode).getContent();
+	private WikiPage getCurrentPage() {
+		if (currentPage == null) {
+			WikiType wikiType = WikiHelper.getWikiEngine().getWikiType("html");
+			WikiContext wikiContext = new WikiContext(attrExtractor
+					.getCredentials(), wikiType, attrExtractor.getWikiSession());
+
+			currentPage = WikiHelper.getWikiEngine().getByName(
+					WikiHelper.getWikiCommonSession().getPageName(),
+					wikiContext,
+					WikiHelper.getWikiCommonSession().getLangCode());
+		}
+
+		return currentPage;
 	}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/Messages.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/Messages.properties	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/Messages.properties	2006-12-11 22:47:10 UTC (rev 8244)
@@ -1 +1,3 @@
-pimpek=Pimpek!
\ No newline at end of file
+edit_instruction = Here's a short reminder on what elements you have at your disposal:\n\n\n----             Horizontal ruler\n\\               Forced line break\n[link]           Create hyperlink to "link", where "link" can be either an internal \n                 WikiName or an external link (http://)\n[text|link]      Create a hyperlink where the link text is different from the actual \n                 hyperlink link.\n[text|wiki:link] Create a hyperlink where the link text is different from the \n                 actual hyperlink link, and the hyperlink points to a named Wiki. \n                 This supports interWiki linking.\n\n*                Make a bulleted list (must be in first column). Use more (**) \n                 for deeper indentations.\n#                Make a numbered list (must be in first column). Use more (##, ###) \n                 for deeper indentations.\n\n!, !!, !!!       Start a line with an exclamation mark (!) to make a heading. \n         !
         More exclamation marks mean bigger headings.\n\n__text__         Makes text bold.\n''text''         Makes text in italics (notice that these are single quotes ('))\n{{text}}         Makes text in monospaced font.\n;term:def        Defines 'term' with 'def'.  Use this with empty 'term' to make short comments.\n\n|text|more text| Makes a table. Double bars for a table heading.\n\nDon't try to use HTML, since it just won't work.\n\nTo embed images just put them available on the web using one of the approved formats, and they will get inlined automatically.\\nTo make a code block, use triple {'s to open, and triple }'s to close.
+edit_cancel = Cancel
+edit_save = Save

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/faces-config.xml	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/faces-config.xml	2006-12-11 22:47:10 UTC (rev 8244)
@@ -23,4 +23,39 @@
         <managed-bean-scope>request</managed-bean-scope>
     </managed-bean>
     
+    <managed-bean>
+        <managed-bean-name>wikiEdit</managed-bean-name>
+        <managed-bean-class>org.jboss.wiki.ui.WikiEdit</managed-bean-class>
+        <managed-bean-scope>request</managed-bean-scope>
+    </managed-bean>
+    
+    <managed-bean>
+        <managed-bean-name>wikiCommon</managed-bean-name>
+        <managed-bean-class>org.jboss.wiki.ui.WikiCommonSession</managed-bean-class>
+        <managed-bean-scope>session</managed-bean-scope>
+    </managed-bean>
+    
+    <navigation-rule>
+        <from-view-id>/views/index.xhtml</from-view-id>
+        <navigation-case>
+            <from-outcome>edit</from-outcome>
+            <to-view-id>/views/wiki_edit.xhtml</to-view-id>
+        </navigation-case>
+    </navigation-rule>
+    
+    <navigation-rule>
+        <from-view-id>/views/wiki_edit.xhtml</from-view-id>
+        <navigation-case>
+            <from-outcome>save</from-outcome>
+            <to-view-id>/views/index.xhtml</to-view-id>
+        </navigation-case>
+    </navigation-rule>
+    
+    <navigation-rule>
+        <from-view-id>/views/wiki_edit.xhtml</from-view-id>
+        <navigation-case>
+            <from-outcome>cancel</from-outcome>
+            <to-view-id>/views/index.xhtml</to-view-id>
+        </navigation-case>
+    </navigation-rule>
 </faces-config>

Added: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml	2006-12-11 22:47:10 UTC (rev 8244)
@@ -0,0 +1,28 @@
+<div  xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:c="http://java.sun.com/jstl/core"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:blog="http://www.jboss.org/portal/jbossblog">
+<ui:composition template="wiki_template.xhtml">
+	
+    <ui:define name="content">
+    	<h:form>
+    		<h:panelGrid>
+    			<h:inputTextarea rows="40" cols="80" value="#{wikiEdit.pageContent}" styleClass="editPageArea" acceptcharset="UTF-8" />
+				<h:panelGroup>
+					<h:commandButton value="#{msg.edit_save}" action="#{wikiEdit.save}" />
+					<h:commandButton value="#{msg.edit_cancel}" action="cancel" />
+				</h:panelGroup>
+			</h:panelGrid>
+			<h:inputHidden value="#{wikiEdit.editSessionId}" />
+    	</h:form>
+    	
+    	<pre>
+    		<h:outputText value="#{msg.edit_instruction}" />
+    	</pre>
+    </ui:define>
+
+</ui:composition>
+
+</div>

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_template.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_template.xhtml	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_template.xhtml	2006-12-11 22:47:10 UTC (rev 8244)
@@ -10,13 +10,21 @@
       xmlns:blog="http://www.jboss.org/portal/jbossblog">
 <head>
     <title></title>
-    <link rel='stylesheet' type='text/css' href='/jboss-blog/blog.css' media='screen'/>
+    <link rel="stylesheet" href="#{wikiView.wikiImagesURL}wikiStyle.css" type="text/css" media="all" />
 </head>
-<body class="blog-body">
+<body class="wiki-body">
+	<h:panelGrid>
+		<h:panelGroup>
+			<h:outputLink value="#{wikiView.wikiMainPageURL}">  
+				<h:graphicImage value="#{wikiView.wikiImagesURL}JBossWikiLogoMedium.png" width="100" />
+			</h:outputLink> 
+			<h:outputText value=": #{wikiCommon.pageName} [#{wikiCommon.langCode}]" />
+		</h:panelGroup>
+	</h:panelGrid>
+	
     <f:loadBundle basename="Messages" var="msg"/>
+	
 
-	<link rel="stylesheet" href="#{wikiView.wikiImagesURL}wikiStyle.css" type="text/css" media="all" />
-
     <ui:insert name="content" />
     
 </body>

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_view.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_view.xhtml	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_view.xhtml	2006-12-11 22:47:10 UTC (rev 8244)
@@ -7,14 +7,25 @@
 <ui:composition template="wiki_template.xhtml">
 	
     <ui:define name="content">
-	    <h:outputLink value="#{wikiView.wikiFriendlyURL}">  
-			<h:graphicImage value="#{wikiView.wikiImagesURL}permaLinkButton.png"/>
-		</h:outputLink>
+    	<h:panelGrid columns="2">
+	    	<h:panelGroup>
+			    <h:outputLink value="#{wikiView.wikiFriendlyURL}">  
+					<h:graphicImage value="#{wikiView.wikiImagesURL}permaLinkButton.png"/>
+				</h:outputLink>
+				
+				<h:outputLink value="#{wikiView.wikiFriendlyURL}">
+					<h:outputText value=" #{wikiView.wikiFriendlyURL}"/> 
+				</h:outputLink>
+			</h:panelGroup>
+			<h:panelGroup>
+				<h:form>
+					<h:commandLink action="edit">
+						<h:graphicImage value="#{wikiView.wikiImagesURL}editButton.png"/>	
+					</h:commandLink>
+				</h:form>
+			</h:panelGroup>
+		</h:panelGrid>
 		
-		<h:outputLink value="#{wikiView.wikiFriendlyURL}">
-			<h:outputText value=" #{wikiView.wikiFriendlyURL}"/> 
-		</h:outputLink>
-	
 		<hr />
 	
     	<h:panelGroup styleClass="wikiContent">

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/etc/images/wikiStyle.css
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/etc/images/wikiStyle.css	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/etc/images/wikiStyle.css	2006-12-11 22:47:10 UTC (rev 8244)
@@ -11,4 +11,8 @@
 
 img {
 	border: 0px;
+}
+
+.editPageArea {
+	width: 100%;
 }
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -74,7 +74,7 @@
 
 	public static final String DEFAULT_LANGUAGE_PROP = "defaultLanguageCode";
 
-	public String defaultLangugeCode = "EN";
+	public static String defaultLangugeCode = "EN";
 
 	private HashMap<String, WikiType> wikiTypes;
 

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -146,14 +146,26 @@
 	}
 
 	public synchronized void save(Credentials credentials,
-			Integer editActionId, String langCode, WikiSession wikiSession) throws EditSessionExpired,
+			Integer editActionId, String langCode, WikiSession wikiSession, String newContent) throws EditSessionExpired,
 			WikiSaveException, EditingNotAllowedException {
 
 		if (expiredSessionIds.contains(editActionId)) {
 			throw new EditSessionExpired(
 					"Your edit session have expired. Please edit page once again !");
 		}
+		
+		//	set new content
+		setContent(newContent);
 
+		// set author name for new version
+		setLastAuthor(credentials);
+
+		// increase page version
+		setLastVersion(getLastVersion() + 1);
+
+		// set new data
+		setEditDate(new Date());
+
 		if (editSessionWatchers.get(editActionId) != null) {
 			editSessionWatchers.get(editActionId).stopWatcher();
 			editSessionWatchers.remove(editActionId);

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/.classpath	2006-12-11 22:47:10 UTC (rev 8244)
@@ -1,56 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <classpath>
-  <classpathentry excluding="" kind="src" path="src/java">
-  </classpathentry>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.9.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/wiki-common/jars/wiki-common.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/aslibs/jars/javax.servlet.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/aslibs/jars/javax.servlet.jsp.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.1.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/activation.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/commons-fileupload/jars/commons-fileupload-1.0.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/commons-configuration/jars/commons-configuration-1.1.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.1.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-3.1.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/dom4j/jars/dom4j-1.6.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jdom/jars/jdom-1.0.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3x.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/portlet-api/jars/portlet-api-1.0.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-jmx.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-common.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-common-lib.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-core-lib.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-portlet-lib.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jbossall-client-3.2.3.jar">
-  </classpathentry>
-  <classpathentry kind="lib" path="/home/tomek/java/sandbox/portal-extensions/shotoku/shotoku-base/target/shotoku-base.jar">
-  </classpathentry>
-  <classpathentry kind="var" path="MAVEN_REPO/shotoku/jars/shotoku-aop.jar">
-  </classpathentry>
-  <classpathentry kind="output" path="target/classes">
-  </classpathentry>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" path="src/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.9.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/aslibs/jars/javax.servlet.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/aslibs/jars/javax.servlet.jsp.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.1.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/activation.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/commons-fileupload/jars/commons-fileupload-1.0.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/commons-configuration/jars/commons-configuration-1.1.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.1.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-3.1.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/dom4j/jars/dom4j-1.6.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jdom/jars/jdom-1.0.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3x.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-ejb3.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/portlet-api/jars/portlet-api-1.0.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-jmx.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jboss-common.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-common-lib.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-core-lib.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/portal-portlet-lib.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/jboss/jars/jbossall-client-3.2.3.jar"/>
+	<classpathentry kind="lib" path="/home/tomek/java/sandbox/portal-extensions/shotoku/shotoku-base/target/shotoku-base.jar"/>
+	<classpathentry kind="var" path="MAVEN_REPO/shotoku/jars/shotoku-aop.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/wiki-common"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/DictionaryTest.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/DictionaryTest.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/DictionaryTest.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -49,13 +49,9 @@
 		WikiPage wikiPage2 = wikiEngine.getByName(page2, null, langCode);
 		
 		// set apropriate content of pages
-		wikiPage1.setContent("1 ["+page2+"]");
-		wikiPage1.setLastVersion(wikiPage1.getLastVersion()+1);
-		wikiPage1.save(plainUser, wikiEngine.getEditSessionId(), langCode, testWikiSession);
+		wikiPage1.save(plainUser, wikiEngine.getEditSessionId(), langCode, testWikiSession,"1 ["+page2+"]");
 		
-		wikiPage2.setContent("1 ["+page2+"]");
-		wikiPage2.setLastVersion(wikiPage2.getLastVersion()+1);
-		wikiPage2.save(plainUser, wikiEngine.getEditSessionId(), langCode, testWikiSession);
+		wikiPage2.save(plainUser, wikiEngine.getEditSessionId(), langCode, testWikiSession,"1 ["+page2+"]");
 		
 		int i = 0;
 		String newPage2Name = page2 + (i++);

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/GetSavePageTest.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/GetSavePageTest.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/GetSavePageTest.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -92,7 +92,7 @@
 		}
 		
 		// try saving page with wrong sessionId
-		wikiPage.save(plainUser, NUM_OF_SESSIDS * 2, langCode, testWikiSession);
+		wikiPage.save(plainUser, NUM_OF_SESSIDS * 2, langCode, testWikiSession, wikiPage.getPageContent());
 
 		// check what wikiEngine thinks
 		assertTrue(wikiEngine.arePagesEdited());

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/WikiTest.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/WikiTest.java	2006-12-11 21:38:12 UTC (rev 8243)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-test/src/java/org/jboss/wiki/test/WikiTest.java	2006-12-11 22:47:10 UTC (rev 8244)
@@ -136,7 +136,7 @@
 				new Date(), wikiEngine, true, true, null, null, pageContent
 						.length(), langCode);
 
-		wikiPage.save(plainUser, wikiEngine.getEditSessionId(), langCode, testWikiSession);
+		wikiPage.save(plainUser, wikiEngine.getEditSessionId(), langCode, testWikiSession, pageContent);
 
 		pagesToDelete.add(testPageName);
 




More information about the jboss-svn-commits mailing list