From 841757914786638a5324c5c7c231edfcabff7044 Mon Sep 17 00:00:00 2001 From: Brian Warner <warner@lothar.com> Date: Wed, 9 May 2012 14:18:44 -0700 Subject: [PATCH] webui: merge 'move' form with 'rename' form --- src/allmydata/test/test_web.py | 13 ++-------- src/allmydata/web/directory.py | 40 +---------------------------- src/allmydata/web/directory.xhtml | 1 - src/allmydata/web/move-form.xhtml | 36 -------------------------- src/allmydata/web/rename-form.xhtml | 27 ++++++++++++++++--- 5 files changed, 27 insertions(+), 90 deletions(-) delete mode 100644 src/allmydata/web/move-form.xhtml diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py index 7c7b0cae..4421ef8a 100644 --- a/src/allmydata/test/test_web.py +++ b/src/allmydata/test/test_web.py @@ -1267,7 +1267,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi r'\s+<td align="right">%d</td>' % len(self.BAR_CONTENTS), ]) self.failUnless(re.search(get_bar, res), res) - for label in ['unlink', 'rename', 'move']: + for label in ['unlink', 'rename/move']: for line in res.split("\n"): # find the line that contains the relevant button for bar.txt if ("form action" in line and @@ -1285,7 +1285,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi self.failUnlessIn('method="post"', line) break else: - self.fail("unable to find '%s bar.txt' line" % (label,), res) + self.fail("unable to find '%s bar.txt' line" % (label,)) # the DIR reference just points to a URI sub_url = ("%s/uri/%s/" % (ROOT, urllib.quote(self._sub_uri))) @@ -3480,15 +3480,6 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi d.addCallback(_check) return d - def test_GET_move_form(self): - d = self.GET(self.public_url + "/foo?t=move-form&name=bar.txt", - followRedirect=True) - def _check(res): - self.failUnless('name="when_done" value="."' in res, res) - self.failUnless(re.search(r'name="from_name" value="bar\.txt"', res)) - d.addCallback(_check) - return d - def log(self, res, msg): #print "MSG: %s RES: %s" % (msg, res) log.msg(msg) diff --git a/src/allmydata/web/directory.py b/src/allmydata/web/directory.py index 112595cd..bb1d6746 100644 --- a/src/allmydata/web/directory.py +++ b/src/allmydata/web/directory.py @@ -169,8 +169,6 @@ class DirectoryNodeHandler(RenderMixin, rend.Page, ReplaceMeMixin): return DirectoryReadonlyURI(ctx, self.node) if t == 'rename-form': return RenameForm(self.node) - if t == 'move-form': - return MoveForm(self.node) raise WebError("GET directory: bad t=%s" % t) @@ -718,7 +716,6 @@ class DirectoryAsHTML(rend.Page): if self.node.is_unknown() or self.node.is_readonly(): unlink = "-" rename = "-" - move = "-" else: # this creates a button which will cause our _POST_unlink method # to be invoked, which unlinks the file and then redirects the @@ -734,19 +731,11 @@ class DirectoryAsHTML(rend.Page): T.input(type='hidden', name='t', value='rename-form'), T.input(type='hidden', name='name', value=name), T.input(type='hidden', name='when_done', value="."), - T.input(type='submit', value='rename', name="rename"), - ] - - move = T.form(action=here, method="get")[ - T.input(type='hidden', name='t', value='move-form'), - T.input(type='hidden', name='name', value=name), - T.input(type='hidden', name='when_done', value="."), - T.input(type='submit', value='move', name="move"), + T.input(type='submit', value='rename/move', name="rename"), ] ctx.fillSlots("unlink", unlink) ctx.fillSlots("rename", rename) - ctx.fillSlots("move", move) times = [] linkcrtime = metadata.get('tahoe', {}).get("linkcrtime") @@ -1008,33 +997,6 @@ class RenameForm(rend.Page): ctx.tag.attributes['value'] = name return ctx.tag -class MoveForm(rend.Page): - addSlash = True - docFactory = getxmlfile("move-form.xhtml") - - def render_title(self, ctx, data): - return ctx.tag["Directory SI=%s" % abbreviated_dirnode(self.original)] - - def render_header(self, ctx, data): - header = ["Move " - "from directory SI=%s" % abbreviated_dirnode(self.original), - ] - - if self.original.is_readonly(): - header.append(" (readonly!)") - header.append(":") - return ctx.tag[header] - - def render_when_done(self, ctx, data): - return T.input(type="hidden", name="when_done", value=".") - - def render_get_name(self, ctx, data): - req = IRequest(ctx) - name = get_arg(req, "name", "") - ctx.tag.attributes['value'] = name - return ctx.tag - - class ManifestResults(rend.Page, ReloadMixin): docFactory = getxmlfile("manifest.xhtml") diff --git a/src/allmydata/web/directory.xhtml b/src/allmydata/web/directory.xhtml index 6c2b5800..540da00d 100644 --- a/src/allmydata/web/directory.xhtml +++ b/src/allmydata/web/directory.xhtml @@ -33,7 +33,6 @@ <td><n:slot name="times"/></td> <td><n:slot name="unlink"/></td> <td><n:slot name="rename"/></td> - <td><n:slot name="move"/></td> <td><n:slot name="info"/></td> </tr> diff --git a/src/allmydata/web/move-form.xhtml b/src/allmydata/web/move-form.xhtml deleted file mode 100644 index 1df427cc..00000000 --- a/src/allmydata/web/move-form.xhtml +++ /dev/null @@ -1,36 +0,0 @@ -<html xmlns:n="http://nevow.com/ns/nevow/0.1"> - <head> - <title n:render="title"></title> - <link href="/tahoe.css" rel="stylesheet" type="text/css"/> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - </head> - -<body> - -<h2 n:render="header" /> - -<div class="freeform-form"> - <form action="." method="post" enctype="multipart/form-data"> - <fieldset> - <legend class="freeform-form-label">Rename child</legend> - <input type="hidden" name="t" value="move" /> - <input n:render="when_done" /> - - Move child: - <input type="text" name="from_name" readonly="true" - n:render="get_name" /><br /> - to - <input type="text" name="to_dir" /><br /> - <input checked="checked" type="radio" id="tt-name" - value="name" name="target_type" /> - <label for="tt-name"> Subdirectory</label> - <input type="radio" id="tt-uri" value="uri" name="target_type"/> - <label for="tt-uri"> URI</label> <br /><br /> - New name? - <input type="text" name="to_name" /> - <input type="submit" value="move" /><br /> - </fieldset> - </form> -</div> - -</body></html> diff --git a/src/allmydata/web/rename-form.xhtml b/src/allmydata/web/rename-form.xhtml index 97a41390..cac8c2ac 100644 --- a/src/allmydata/web/rename-form.xhtml +++ b/src/allmydata/web/rename-form.xhtml @@ -18,12 +18,33 @@ <input n:render="when_done" /> Rename child: - <input type="text" name="from_name" readonly="true" n:render="get_name" /> - to - <input type="text" name="to_name" /> + <input type="text" name="from_name" readonly="true" n:render="get_name" /><br /> + to name: + <input type="text" name="to_name" /><br /> <input type="submit" value="rename" /> </fieldset> </form> + + <form action="." method="post" enctype="multipart/form-data"> + <fieldset> + <legend class="freeform-form-label">Move Child to Different Directory</legend> + <input type="hidden" name="t" value="move" /> + <input n:render="when_done" /> + + Move child: <input type="text" name="from_name" readonly="true" + n:render="get_name" /><br /> + to name: <input type="text" name="to_name" n:render="get_name"/><br /> + in directory: <input type="text" name="to_dir" /> + <input checked="checked" type="radio" id="tt-name" + value="name" name="target_type" /> + <label for="tt-name"> Subdirectory</label> + <input type="radio" id="tt-uri" value="uri" name="target_type"/> + <label for="tt-uri"> URI</label> + <br /> + <input type="submit" value="move" /><br /> + </fieldset> + </form> + </div> </body></html> -- 2.45.2