ugo 2003/08/07 15:11:03
Modified: src/blocks/linotype/samples sitemap.xmap flow.js src/blocks/linotype/java/org/apache/cocoon/components Repository.java Log: Ported Linotype to the FOM. Revision Changes Path 1.4 +3 -1 cocoon-2.1/src/blocks/linotype/samples/sitemap.xmap Index: sitemap.xmap =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/linotype/samples/sitemap.xmap,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- sitemap.xmap 29 Jul 2003 03:15:46 -0000 1.3 +++ sitemap.xmap 7 Aug 2003 22:11:03 -0000 1.4 @@ -146,7 +146,7 @@ <!-- ========================== Flowscript ================================= --> - <map:flow language="JavaScript"> + <map:flow language="javascript"> <map:script src="flow.js"/> </map:flow> @@ -300,6 +300,7 @@ <map:match pattern="private/edit/news/*/*"> <map:call function="main"> <map:parameter name="page" value="edit"/> + <map:parameter name="root" value="{realpath:/}"/> <map:parameter name="id" value="{1}"/> <map:parameter name="type" value="news"/> <map:parameter name="subpage" value="{2}"/> @@ -309,6 +310,7 @@ <map:match pattern="private/**"> <map:call function="main"> <map:parameter name="page" value="{1}"/> + <map:parameter name="root" value="{realpath:/}"/> </map:call> </map:match> 1.8 +22 -17 cocoon-2.1/src/blocks/linotype/samples/flow.js Index: flow.js =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/linotype/samples/flow.js,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- flow.js 7 Aug 2003 08:41:44 -0000 1.7 +++ flow.js 7 Aug 2003 22:11:03 -0000 1.8 @@ -11,22 +11,22 @@ * Yeah, I know that hardwiring those is hacky as hell. But I'll try to * fix this with link translation later on. */ -var home = cocoon.context.getRealPath("/") + "samples/linotype/"; -var stream = new java.io.FileInputStream(home + "linotype.users.properties"); -var users = new Packages.org.apache.cocoon.components.UserManager.getInstance(stream); var repo = new Packages.org.apache.cocoon.components.Repository.getInstance(); +var users; +var home; var userid = ""; var username = ""; /* * Main entry point for the flow. This is where user authorization takes place. */ -function main(action) { - var args = new Array(arguments.length - 1); - for (var i = 1; i < arguments.length; i++) { - args[i-1] = arguments[i]; +function main(action, root) { + home = root + "samples/linotype/"; + var args = new Array(arguments.length - 2); + for (var i = 2; i < arguments.length; i++) { + args[i-2] = arguments[i]; } if ((userid == undefined) || (userid == "")) { @@ -46,10 +46,15 @@ var passError = ""; while (true) { - sendPageAndWait("screen/login", { username : name, userError : userError, passError : passError}); + cocoon.sendPageAndWait("screen/login", { username : name, userError : userError, passError : passError}); name = cocoon.request.getParameter("username"); password = cocoon.request.getParameter("password"); + + if (users == undefined) { + var stream = new java.io.FileInputStream(home + "linotype.users.properties"); + users = new Packages.org.apache.cocoon.components.UserManager.getInstance(stream); + } if (users.isValidName(name)) { if (users.isValidPassword(name,password)) { @@ -66,7 +71,7 @@ } } - cocoon.createSession(); + // cocoon.createSession(); } /* @@ -81,7 +86,7 @@ if (func != undefined) { func.apply(this,args); } else { - sendPage("screen/" + action, {"user" : username}); + cocoon.sendPage("screen/" + action, {"user" : username}); } } @@ -93,7 +98,7 @@ */ function logout() { userid = ""; - sendPage("screen/logout"); + cocoon.sendPage("screen/logout"); } /* @@ -105,15 +110,15 @@ if (id == "template") { id = repo.getID(repository); repo.copy(repository + "template", repository + id); - redirect("../" + id + "/"); + cocoon.redirectTo("../" + id + "/"); } else if ((subpage != undefined) && (subpage != "")) { - sendPage("edit/" + type + "/" + id + "/" + subpage,{}); + cocoon.sendPage("edit/" + type + "/" + id + "/" + subpage,{}); } else { var document = repository + id; while (true) { var versions = repo.getVersions(document); - sendPageAndWait("edit/" + type + "/" + id + "/", { + cocoon.sendPageAndWait("edit/" + type + "/" + id + "/", { userid : userid, username : username, versions : versions, @@ -128,14 +133,14 @@ repo.revertFrom(document,version); } else { var output = repo.getOutputStream(document); - process("samples/linotype/action/save-" + type,{},output); + cocoon.processPipelineTo("/samples/linotype/action/save-" + type,{},output); output.close(); - repo.save(cocoon.request, document); + repo.fomSave(cocoon, document); if (action == "finish") break; } } - redirect("../../../" + type); + cocoon.redirectTo("../../../" + type); } } 1.2 +5 -0 cocoon-2.1/src/blocks/linotype/java/org/apache/cocoon/components/Repository.java Index: Repository.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/linotype/java/org/apache/cocoon/components/Repository.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Repository.java 17 Jun 2003 01:32:45 -0000 1.1 +++ Repository.java 7 Aug 2003 22:11:03 -0000 1.2 @@ -59,6 +59,7 @@ import java.util.ArrayList; import java.util.Enumeration; +import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon; import org.apache.cocoon.environment.Request; import org.apache.cocoon.servlet.multipart.Part; @@ -112,6 +113,10 @@ } } } + + public static void fomSave(FOM_Cocoon cocoon, String dirName) throws Exception { + save(cocoon.getRequest(), dirName); + } public static void save(Request request, String param, String file) throws Exception { Part part = (Part) request.get(param);