webish: link to directory URIs rather than a child path. Addresses #103.

This commit is contained in:
Brian Warner 2008-01-29 18:04:32 -07:00
parent c2c922b5e9
commit d9d0920177
2 changed files with 7 additions and 6 deletions

View File

@ -599,7 +599,8 @@ class Web(WebMixin, unittest.TestCase):
'\s+<td>FILE</td>'
'\s+<td>%d</td>' % len(self.BAR_CONTENTS)
, res))
self.failUnless(re.search(r'<td><a href="sub">sub</a></td>'
# the DIR reference just points to a URI
self.failUnless(re.search(r'<td><a href="/uri/URI%3ADIR2%3A[^"]+">sub</a></td>'
'\s+<td>DIR</td>', res))
d.addCallback(_check)
@ -615,7 +616,7 @@ class Web(WebMixin, unittest.TestCase):
d.addCallback(lambda res:
self.GET(self.public_url, followRedirect=True))
def _check3(res):
self.failUnless(re.search(r'<td><a href="reedownlee">reedownlee</a>'
self.failUnless(re.search(r'<td><a href="/uri/URI%3ADIR2-RO%3A[^"]+">reedownlee</a>'
'</td>\s+<td>DIR-RO</td>', res))
d.addCallback(_check3)
@ -653,7 +654,8 @@ class Web(WebMixin, unittest.TestCase):
d.addCallback(_check)
def _done(res):
self.failUnless('<a href="%d">%d</a>' % (COUNT-1, COUNT-1) in res)
m = r'<a href="/uri/URI%3ADIR2%3A[^"]+">' + ("%d" % (COUNT-1)) + r'</a>'
self.failUnless(re.search(m, res))
self.failIf("maximum recursion depth exceeded" in res)
d.addCallback(_done)
return d

View File

@ -256,9 +256,8 @@ class Directory(rend.Page):
elif IDirectoryNode.providedBy(target):
# directory
subdir_url = urllib.quote(name)
ctx.fillSlots("filename",
T.a(href=subdir_url)[html.escape(name)])
T.a(href=uri_link)[html.escape(name)])
if target.is_readonly():
dirtype = "DIR-RO"
else:
@ -1296,7 +1295,7 @@ class Root(rend.Page):
return rend.NotFound
uri = segments[1]
d = defer.maybeDeferred(client.create_node_from_uri, uri)
d.addCallback(lambda node: VDrive(node, "from-uri"))
d.addCallback(lambda node: VDrive(node, uri))
d.addCallback(lambda vd: vd.locateChild(ctx, segments[2:]))
def _trap_KeyError(f):
f.trap(KeyError)