r1042 - in xwiki-clients/FoXWiki: . chrome chrome/content chrome/locale chrome/locale/en-UK

Robin Fernandes rewbs at users.forge.objectweb.org
Tue Apr 11 02:58:40 CEST 2006


Author: rewbs
Date: 2006-04-11 02:58:40 +0200 (Tue, 11 Apr 2006)
New Revision: 1042

Added:
   xwiki-clients/FoXWiki/bin/
   xwiki-clients/FoXWiki/chrome/
   xwiki-clients/FoXWiki/chrome/content/
   xwiki-clients/FoXWiki/chrome/content/overlay.js
   xwiki-clients/FoXWiki/chrome/content/overlay.xul
   xwiki-clients/FoXWiki/chrome/locale/
   xwiki-clients/FoXWiki/chrome/locale/en-UK/
   xwiki-clients/FoXWiki/chrome/locale/en-UK/overlay.dtd
Log:
<rewbs> FoXWiki initial commit.

Added: xwiki-clients/FoXWiki/chrome/content/overlay.js
===================================================================
--- xwiki-clients/FoXWiki/chrome/content/overlay.js	2006-04-11 00:48:24 UTC (rev 1041)
+++ xwiki-clients/FoXWiki/chrome/content/overlay.js	2006-04-11 00:58:40 UTC (rev 1042)
@@ -0,0 +1,88 @@
+/*
+---( FoXWiki by Robin Fernandes )---
+More info: http://soal.xwiki.com/xwiki/bin/view/Code/FoXWiki
+
+This work is licensed under the Creative Commons Attribution 2.5 License. 
+This means you are free to use any of this code for any purpose as long as
+you give credit to Robin Fernandes. View a copy of the license here:
+http://creativecommons.org/licenses/by/2.5/
+
+*/
+
+FoXWiki = new FoXWikiClass();
+window.addEventListener("load", function(e) { FoXWiki.onLoad(e); }, false); 
+
+function FoXWikiClass() {
+
+	//////////////////////////////////////////////////////////////////////
+	// Interface
+	//////////////////////////////////////////////////////////////////////
+	this.onLoad = onLoad;
+	this.contextPopupShowing = contextPopupShowing;
+	this.onXWikiAction = onXWikiAction;
+
+	//URL transforms
+	this.EditContent= new XWikiActionSetterClass("edit");
+	this.EditForm 	= new XWikiActionSetterClass("inline");
+    this.ViewPage 	= new XWikiActionSetterClass("view");
+    this.DeletePage = new XWikiActionSetterClass("delete");
+    this.EditObjects= new XWikiTemplateSetterClass("editobject");
+    this.EditRights = new XWikiTemplateSetterClass("editrights");
+	this.ViewCode 	= new XWikiTemplateSetterClass("code");
+
+
+	//////////////////////////////////////////////////////////////////////
+	// Implementation:
+	//////////////////////////////////////////////////////////////////////
+
+	var XWikiBase	= "xwiki/bin"; 			// TODO: make this customisable
+	var XWikiID		= XWikiBase + "/view"; 	//if the URL contains this string, show menu.
+	
+	//Initialisation
+	function onLoad(event) {
+		var menu = document.getElementById("contentAreaContextMenu");
+		menu.addEventListener("popupshowing", this.contextPopupShowing, false);	
+		this.initialized = true;
+	}
+
+	//Called when context-menu is about to be shown, thanks to listener added 
+	//in onLoad. Allows us to manipulate content of menu before it is displayed.
+	function contextPopupShowing(event) {
+		var isXWikiViewLink = gContextMenu.linkURL.indexOf(XWikiID) > -1;
+		gContextMenu.showItem("context-FoxXWiki-menu", isXWikiViewLink);
+		gContextMenu.showItem("context-FoxXWiki-menuseparator", isXWikiViewLink);
+	}
+
+	//Called from menu, takes a URL transform as an argument
+	function onXWikiAction(e, urlTransform) {
+		window._content.location = urlTransform.morphUrl(gContextMenu.linkURL);
+	}
+
+
+	///////////////////////////
+	// URL transform types
+		
+	function XWikiActionSetterClass(inAction)  {
+		//public
+		this.morphUrl=morphUrl;	
+		
+		//private
+		var action = inAction;
+		function morphUrl(inUrl) {
+			//TODO: use XWikiBase and XWikiID variables.
+			return inUrl.replace(/xwiki\/bin\/view/g, "xwiki/bin/"+action);
+		}
+	}
+
+	function XWikiTemplateSetterClass(inTemplate)  {
+		//public
+		this.morphUrl=morphUrl;	
+		
+		//private			
+		var template = inTemplate;
+		function morphUrl(inUrl) {
+			return inUrl + "?xpage=" + template;
+		}			
+	}
+
+};

Added: xwiki-clients/FoXWiki/chrome/content/overlay.xul
===================================================================
--- xwiki-clients/FoXWiki/chrome/content/overlay.xul	2006-04-11 00:48:24 UTC (rev 1041)
+++ xwiki-clients/FoXWiki/chrome/content/overlay.xul	2006-04-11 00:58:40 UTC (rev 1042)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://FoXWiki/locale/overlay.dtd">
+<overlay id="FoXWiki-overlay"
+	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+    <script src="overlay.js"/>
+
+    <popup id="contentAreaContextMenu">
+        <menu id="context-FoxXWiki-menu" label="&XWiki;" insertbefore="context-openlink" accesskey="X">
+			<menupopup id="context-FoxXWiki-popup">
+                <menuitem id="context-FoxXWikiEdit" label="&EditContent;" accesskey="E"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.EditContent);"/>
+                <menuitem id="context-FoxXWikiEdit" label="&EditForm;" accesskey="F"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.EditForm);"/>
+                <menuitem id="context-FoxXWikiEdit" label="&EditObjects;" accesskey="O"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.EditObjects);"/>
+                <menuitem id="context-FoxXWikiEdit" label="&EditRights;" accesskey="R"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.EditRights);"/>
+
+                <menuseparator id="context-FoxXWiki-menuseparator1"/>
+                <menuitem id="context-FoxXWikiEdit" label="&ViewCode;" accesskey="C"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.ViewCode);"/>
+                <menuitem id="context-FoxXWikiEdit" label="&ViewPage;" accesskey="V"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.ViewPage);"/>
+
+                <menuseparator id="context-FoxXWiki-menuseparator2"/>
+                <menuitem id="context-FoxXWikiEdit" label="&DeletePage;" accesskey="D"
+                 oncommand="FoXWiki.onXWikiAction(event, FoXWiki.DeletePage);"/>
+            </menupopup>
+        </menu>
+        <menuseparator id="context-FoxXWiki-menuseparator" insertbefore="context-openlink" />
+    </popup>
+
+
+</overlay>

Added: xwiki-clients/FoXWiki/chrome/locale/en-UK/overlay.dtd
===================================================================
--- xwiki-clients/FoXWiki/chrome/locale/en-UK/overlay.dtd	2006-04-11 00:48:24 UTC (rev 1041)
+++ xwiki-clients/FoXWiki/chrome/locale/en-UK/overlay.dtd	2006-04-11 00:58:40 UTC (rev 1042)
@@ -0,0 +1,8 @@
+<!ENTITY XWiki "XWiki">
+<!ENTITY EditContent "Edit Content">
+<!ENTITY EditForm "Edit Form">
+<!ENTITY EditObjects "Edit Objects">
+<!ENTITY EditRights "Edit Rights">
+<!ENTITY ViewPage "View Page">
+<!ENTITY ViewCode "View Code">
+<!ENTITY DeletePage "Delete Page">





More information about the Xwiki-notifications mailing list