[Yanel-commits] rev 22426 - public/yanel/trunk/src/core/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Sun Feb 4 13:06:20 CET 2007


Author: michi
Date: 2007-02-04 13:06:19 +0100 (Sun, 04 Feb 2007)
New Revision: 22426

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
source added, but it doesn't seem to be correct

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-02-04 11:09:52 UTC (rev 22425)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-02-04 12:06:19 UTC (rev 22426)
@@ -176,9 +176,9 @@
         }
 
         String yanelWebDAV = request.getParameter("yanel.webdav");
-        if(yanelWebDAV != null && yanelWebDAV.equals("edit")) {
+        if(yanelWebDAV != null && yanelWebDAV.equals("propfind1")) {
             Resource resource = getResource(request, response);
-            log.error("DEBUG: WebDAV client (" + request.getHeader("User-Agent") + ") requests to edit a resource: " + resource.getRealm() + ", " + resource.getPath());
+            log.error("DEBUG: WebDAV client (" + request.getHeader("User-Agent") + ") requests to \"edit\" a resource: " + resource.getRealm() + ", " + resource.getPath());
             //return;
         }
 
@@ -1102,6 +1102,12 @@
                 sb.append("        <resourcetype/>");
                 // TODO: Does getcontenttype also be set for resources?
                 sb.append("        <getcontenttype>http/unix-directory</getcontenttype>");
+                sb.append("        <source>\n");
+                sb.append("          <link>\n");
+                sb.append("            <src>" + request.getRequestURI() + "</src>\n");
+                sb.append("            <dst>" + request.getRequestURI() + "?yanel.resource.modifiable.source</dst>\n");
+                sb.append("          </link>\n");
+                sb.append("        </source>\n");
                 sb.append("      </prop>");
                 sb.append("      <status>HTTP/1.1 200 OK</status>");
                 sb.append("    </propstat>");
@@ -1128,12 +1134,19 @@
                         sb.append("  </response>\n");
                     } else if(children[i].isResource()) {
                         sb.append("  <response>\n");
-                        sb.append("    <href>" + request.getRequestURI() + "/" + children[i].getName() + "?yanel.webdav=edit</href>\n");
+                        sb.append("    <href>" + request.getRequestURI() + "/" + children[i].getName() + "?yanel.webdav=propfind1</href>\n");
                         sb.append("    <propstat>\n");
                         sb.append("      <prop>\n");
                         sb.append("        <displayname>R: " + children[i].getName() + "</displayname>\n");
                         sb.append("        <resourcetype/>\n");
                         sb.append("        <getcontenttype>http/unix-directory</getcontenttype>\n");
+                        // http://www.webdav.org/specs/rfc2518.html#PROPERTY_source, http://wiki.zope.org/HiperDom/RoundtripEditingDiscussion
+                        sb.append("        <source>\n");
+                        sb.append("          <link>\n");
+                        sb.append("            <src>" + request.getRequestURI() + "/" + children[i].getName() + "</src>\n");
+                        sb.append("            <dst>" + request.getRequestURI() + "/" + children[i].getName() + "?yanel.resource.modifiable.source</dst>\n");
+                        sb.append("          </link>\n");
+                        sb.append("        </source>\n");
                         sb.append("      </prop>\n");
                         sb.append("      <status>HTTP/1.1 200 OK</status>\n");
                         sb.append("    </propstat>\n");




More information about the Yanel-commits mailing list