unico 2004/01/27 08:01:06
Modified: src/blocks/slide/samples/screens login.jx
src/blocks/slide/samples flow.js
Log:
share global variables between flow and sitemap; fix login when contextPath
other than root
Revision Changes Path
1.2 +1 -1 cocoon-2.1/src/blocks/slide/samples/screens/login.jx
Index: login.jx
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/samples/screens/login.jx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- login.jx 12 Jan 2004 17:10:33 -0000 1.1
+++ login.jx 27 Jan 2004 16:01:06 -0000 1.2
@@ -14,7 +14,7 @@
before trying these examples. You will also need enabled uploads in
web.xml .
</p>
<table border="0" cellspacing="0" cellpadding="2">
- <form action="${prefix}/login.cont" method="post">
+ <form action="${request.contextPath}${base}/login.cont"
method="post">
<input type="hidden" name="continuationId"
value="${continuation.id}"/>
<tr>
<td>Username</td>
1.9 +28 -35 cocoon-2.1/src/blocks/slide/samples/flow.js
Index: flow.js
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/samples/flow.js,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- flow.js 20 Jan 2004 12:42:27 -0000 1.8
+++ flow.js 27 Jan 2004 16:01:06 -0000 1.9
@@ -1,31 +1,24 @@
+importPackage(Packages.org.apache.cocoon.components.modules.input);
importPackage(Packages.org.apache.cocoon.components.slide);
importPackage(Packages.org.apache.cocoon.components.source.helpers);
importPackage(Packages.org.apache.cocoon.samples.slide);
importPackage(Packages.org.apache.excalibur.source);
+importPackage(Packages.org.apache.cocoon.components.repository);
-// these variables need to be available in the sitemap as well
-// is/should there be a simple way to share these? an input module?
-var principal;
-var namespace = "cocoon";
-var base = "/samples/slide/";
-
-var repository =
cocoon.getComponent("org.apache.cocoon.components.repository.SourceRepository");
+var repository = cocoon.getComponent(SourceRepository.ROLE);
var resolver = cocoon.getComponent(SourceResolver.ROLE);
+var global = cocoon.getComponent(InputModule.ROLE +
"Selector").select("global");
+var namespace = global.getAttribute("namespace",null,null);
+var base = global.getAttribute("base",null,null);
var slide = cocoon.getComponent(SlideRepository.ROLE);
var nat = slide.getNamespaceToken(namespace);
-
-// ---------------------------------------------- utility functions
-
-function getBaseURI() {
- return "slide://" + principal + "@" + namespace + "/";
-}
+var principal;
// ---------------------------------------------- authentication
function protect() {
var path = cocoon.parameters["path"];
- cocoon.log.info("path: " + path);
if (principal == undefined){
login(path);
}
@@ -48,7 +41,7 @@
cocoon.session;
var userid = "";
while (principal == undefined) {
- cocoon.sendPageAndWait("screens/login.html",{userid:userid,prefix:base});
+ cocoon.sendPageAndWait("screens/login.html",{userid:userid,base:base});
userid = cocoon.request.getParameter("userid");
var password = cocoon.request.getParameter("password");
if (AdminHelper.login(nat,userid,password)) {
@@ -57,54 +50,54 @@
cocoon.session.setAttribute("slide-principal",principal);
}
}
- cocoon.redirectTo(base + path);
+ cocoon.redirectTo(path);
}
function logout() {
cocoon.session.invalidate();
- cocoon.redirectTo(base + "content/");
+ cocoon.redirectTo("content/");
}
// ---------------------------------------------- file management
// make a new collection
function protected_mkcol() {
- var baseUri = getBaseURI();
+ var baseUri = "slide://" + principal + "@" + namespace + "/";
var parentPath = cocoon.request.getParameter("parentPath");
var collectionName = cocoon.request.getParameter("collectionName");
var location = baseUri + parentPath + "/" + collectionName;
var status = repository.makeCollection(location);
- cocoon.redirectTo(base + "content/" + parentPath);
+ cocoon.redirectTo("content/" + parentPath);
}
// upload a file
function protected_upload() {
- var baseUri = getBaseURI();
+ var baseUri = "slide://" + principal + "@" + namespace + "/";
var parentPath = cocoon.request.getParameter("parentPath");
var resourceName = cocoon.request.getParameter("resourceName");
var dest = baseUri + parentPath + "/" + resourceName;
var src = "upload://uploadFile";
var status = repository.save(src,dest);
- cocoon.redirectTo(base + "content/" + parentPath);
+ cocoon.redirectTo("content/" + parentPath);
}
// delete a resource
function protected_delete() {
- var baseUri = getBaseURI();
+ var baseUri = "slide://" + principal + "@" + namespace + "/";
var parentPath = cocoon.request.getParameter("parentPath");
var resourceName = cocoon.request.getParameter("resourceName");
var location = baseUri + parentPath + "/" + resourceName;
var status = repository.remove(location);
- cocoon.redirectTo(base + "content/" + parentPath);
+ cocoon.redirectTo("content/" + parentPath);
}
// ---------------------------------------------- property management
function protected_addproperty() {
- var baseUri = getBaseURI();
+ var baseUri = "slide://" + principal + "@" + namespace + "/";
var resourcePath = cocoon.request.getParameter("resourcePath");
var location = baseUri + resourcePath;
var source = null;
@@ -122,11 +115,11 @@
resolver.release(source);
}
}
- cocoon.redirectTo(base + "properties/" + resourcePath);
+ cocoon.redirectTo("properties/" + resourcePath);
}
function protected_removeproperty() {
- var baseUri = getBaseURI();
+ var baseUri = "slide://" + principal + "@" + namespace + "/";
var resourcePath = cocoon.request.getParameter("resourcePath");
var location = baseUri + resourcePath;
var source = null;
@@ -141,7 +134,7 @@
resolver.release(source);
}
}
- cocoon.redirectTo(base + "properties/" + resourcePath);
+ cocoon.redirectTo("properties/" + resourcePath);
}
// ---------------------------------------------- permission management
@@ -152,7 +145,7 @@
var privilege = cocoon.request.getParameter("privilege");
AdminHelper.removePermission(nat,principal,resourcePath,subject,privilege);
- cocoon.redirectTo(base + "permissions/" + resourcePath);
+ cocoon.redirectTo("permissions/" + resourcePath);
}
function protected_addPermission() {
@@ -163,7 +156,7 @@
var negative = cocoon.request.getParameter("negative");
AdminHelper.addPermission(nat,principal,resourcePath,subject,action,inheritable,negative);
- cocoon.redirectTo(base + "permissions/" + resourcePath);
+ cocoon.redirectTo("permissions/" + resourcePath);
}
// ---------------------------------------------- lock management
@@ -174,7 +167,7 @@
var lockId = cocoon.request.getParameter("lockId");
AdminHelper.removeLock(nat,principal,objectUri,lockId);
- cocoon.redirectTo(base + "locks/" + resourcePath);
+ cocoon.redirectTo("locks/" + resourcePath);
}
function protected_addlock() {
@@ -186,7 +179,7 @@
AdminHelper.addLock(nat,principal,resourcePath,subject,type,exclusive,inheritable);
- cocoon.redirectTo(base + "locks/" + resourcePath);
+ cocoon.redirectTo("locks/" + resourcePath);
}
// ---------------------------------------------- user management
@@ -196,7 +189,7 @@
var password = cocoon.request.getParameter("password");
AdminHelper.addUser(nat,principal,username,password);
- cocoon.redirectTo(base + "users");
+ cocoon.redirectTo("users");
}
function protected_addrole () {
@@ -217,7 +210,7 @@
var objecturi = cocoon.request.getParameter("objecturi");
AdminHelper.removeObject(nat,principal,objecturi);
- cocoon.redirectTo(base + "users");
+ cocoon.redirectTo("users");
}
function protected_addmember() {
@@ -225,7 +218,7 @@
var subjecturi = cocoon.request.getParameter("subjecturi");
AdminHelper.addMember(nat,principal,objecturi,subjecturi);
- cocoon.redirectTo(base + "users");
+ cocoon.redirectTo("users");
}
function protected_removemember() {
@@ -233,7 +226,7 @@
var subjecturi = cocoon.request.getParameter("subjecturi");
AdminHelper.removeMember(nat,principal,objecturi,subjecturi);
- cocoon.redirectTo(base + "users");
+ cocoon.redirectTo("users");
}