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");
   }
   
   
  
  
  

Reply via email to