From 2066e8ddfcb3fb7c4f4d5a8fbd1591e249cc058b Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Fri, 15 Jun 2007 02:31:23 -0700 Subject: [PATCH] webish: add option to export/import shared directories (always read-write) --- src/allmydata/web/directory.xhtml | 3 +++ src/allmydata/webish.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/allmydata/web/directory.xhtml b/src/allmydata/web/directory.xhtml index 430223cd..03f26d8d 100644 --- a/src/allmydata/web/directory.xhtml +++ b/src/allmydata/web/directory.xhtml @@ -13,6 +13,9 @@
Refresh this view
Parent Directory
+
To share this directory, paste the following FURL string into an + "Add Shared Directory" box: +
diff --git a/src/allmydata/webish.py b/src/allmydata/webish.py index 9671ef6b..618c34b0 100644 --- a/src/allmydata/webish.py +++ b/src/allmydata/webish.py @@ -136,6 +136,9 @@ class Directory(rend.Page): def render_header(self, ctx, data): return "Directory of '%s':" % self._dirname + def data_share_url(self, ctx, data): + return self._dirnode.furl + def data_children(self, ctx, data): d = self._dirnode.list() return d @@ -265,6 +268,21 @@ class Directory(rend.Page): d.addCallback(_done) return d + def bind_mount(self, ctx): + namearg = annotate.Argument("name", + annotate.String("Name to place incoming directory: ")) + furlarg = annotate.Argument("furl", + annotate.String("FURL of Shared Directory")) + meth = annotate.Method(arguments=[namearg, furlarg], + label="Add Shared Directory") + return annotate.MethodBinding("mount", meth, + action="Mount Shared Directory") + + def mount(self, name, furl): + d = self._dirnode.attach_shared_directory(name, furl) + d.addCallback(lambda done: url.here.child(name)) + return d + def child__delete(self, ctx): # perform the delete, then redirect back to the directory page args = inevow.IRequest(ctx).args -- 2.45.2