webui: merge 'move' form with 'rename' form

This commit is contained in:
Brian Warner 2012-05-09 14:18:44 -07:00
parent 81c30b1cd1
commit 8417579147
5 changed files with 27 additions and 90 deletions

View File

@ -1267,7 +1267,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi
r'\s+<td align="right">%d</td>' % len(self.BAR_CONTENTS), r'\s+<td align="right">%d</td>' % len(self.BAR_CONTENTS),
]) ])
self.failUnless(re.search(get_bar, res), res) 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"): for line in res.split("\n"):
# find the line that contains the relevant button for bar.txt # find the line that contains the relevant button for bar.txt
if ("form action" in line and if ("form action" in line and
@ -1285,7 +1285,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi
self.failUnlessIn('method="post"', line) self.failUnlessIn('method="post"', line)
break break
else: 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 # the DIR reference just points to a URI
sub_url = ("%s/uri/%s/" % (ROOT, urllib.quote(self._sub_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) d.addCallback(_check)
return d 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): def log(self, res, msg):
#print "MSG: %s RES: %s" % (msg, res) #print "MSG: %s RES: %s" % (msg, res)
log.msg(msg) log.msg(msg)

View File

@ -169,8 +169,6 @@ class DirectoryNodeHandler(RenderMixin, rend.Page, ReplaceMeMixin):
return DirectoryReadonlyURI(ctx, self.node) return DirectoryReadonlyURI(ctx, self.node)
if t == 'rename-form': if t == 'rename-form':
return RenameForm(self.node) return RenameForm(self.node)
if t == 'move-form':
return MoveForm(self.node)
raise WebError("GET directory: bad t=%s" % t) 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(): if self.node.is_unknown() or self.node.is_readonly():
unlink = "-" unlink = "-"
rename = "-" rename = "-"
move = "-"
else: else:
# this creates a button which will cause our _POST_unlink method # this creates a button which will cause our _POST_unlink method
# to be invoked, which unlinks the file and then redirects the # 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='t', value='rename-form'),
T.input(type='hidden', name='name', value=name), T.input(type='hidden', name='name', value=name),
T.input(type='hidden', name='when_done', value="."), T.input(type='hidden', name='when_done', value="."),
T.input(type='submit', value='rename', name="rename"), T.input(type='submit', value='rename/move', 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"),
] ]
ctx.fillSlots("unlink", unlink) ctx.fillSlots("unlink", unlink)
ctx.fillSlots("rename", rename) ctx.fillSlots("rename", rename)
ctx.fillSlots("move", move)
times = [] times = []
linkcrtime = metadata.get('tahoe', {}).get("linkcrtime") linkcrtime = metadata.get('tahoe', {}).get("linkcrtime")
@ -1008,33 +997,6 @@ class RenameForm(rend.Page):
ctx.tag.attributes['value'] = name ctx.tag.attributes['value'] = name
return ctx.tag 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): class ManifestResults(rend.Page, ReloadMixin):
docFactory = getxmlfile("manifest.xhtml") docFactory = getxmlfile("manifest.xhtml")

View File

@ -33,7 +33,6 @@
<td><n:slot name="times"/></td> <td><n:slot name="times"/></td>
<td><n:slot name="unlink"/></td> <td><n:slot name="unlink"/></td>
<td><n:slot name="rename"/></td> <td><n:slot name="rename"/></td>
<td><n:slot name="move"/></td>
<td><n:slot name="info"/></td> <td><n:slot name="info"/></td>
</tr> </tr>

View File

@ -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>

View File

@ -18,12 +18,33 @@
<input n:render="when_done" /> <input n:render="when_done" />
Rename child: Rename child:
<input type="text" name="from_name" readonly="true" n:render="get_name" /> <input type="text" name="from_name" readonly="true" n:render="get_name" /><br />
to to name:
<input type="text" name="to_name" /> <input type="text" name="to_name" /><br />
<input type="submit" value="rename" /> <input type="submit" value="rename" />
</fieldset> </fieldset>
</form> </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> </div>
</body></html> </body></html>