mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 21:43:09 +00:00
WUI: hook up an "overwrite" button on mutable files
This commit is contained in:
parent
97de6a03d2
commit
85b972a4c3
@ -31,6 +31,7 @@
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>Checker Results</td>
|
||||
</tr>
|
||||
<tr n:pattern="item" n:render="row">
|
||||
@ -39,7 +40,9 @@
|
||||
<td><n:slot name="size"/></td>
|
||||
<td><n:slot name="data"/></td>
|
||||
<td><n:slot name="delete"/></td>
|
||||
<td><div n:render="overwrite"/></td>
|
||||
<td><n:slot name="rename"/></td>
|
||||
|
||||
<td><n:slot name="check"/></td>
|
||||
<td><n:slot name="checker_results"/></td>
|
||||
</tr>
|
||||
|
@ -332,6 +332,25 @@ class Directory(rend.Page):
|
||||
T.div(class_="freeform-form")[mount],
|
||||
]
|
||||
|
||||
def render_overwrite(self, ctx, data):
|
||||
name, target = data
|
||||
if IMutableFileNode.providedBy(target):
|
||||
overwrite = T.form(action=".", method="post",
|
||||
enctype="multipart/form-data")[
|
||||
T.fieldset[
|
||||
T.input(type="hidden", name="t", value="overwrite"),
|
||||
T.input(type='hidden', name='name', value=name),
|
||||
T.input(type='hidden', name='when_done', value=url.here),
|
||||
T.legend(class_="freeform-form-label")["Overwrite"],
|
||||
"Choose new file: ",
|
||||
T.input(type="file", name="file", class_="freeform-input-file"),
|
||||
" ",
|
||||
T.input(type="submit", value="Overwrite")
|
||||
]]
|
||||
return [T.div(class_="freeform-form")[overwrite],]
|
||||
else:
|
||||
return []
|
||||
|
||||
def render_results(self, ctx, data):
|
||||
req = inevow.IRequest(ctx)
|
||||
if "results" in req.args:
|
||||
@ -790,6 +809,17 @@ class POSTHandler(rend.Page):
|
||||
return newnode.get_uri()
|
||||
d.addCallback(_done)
|
||||
|
||||
elif t == "overwrite":
|
||||
contents = req.fields["file"]
|
||||
# SDMF: files are small, and we can only upload data.
|
||||
contents.file.seek(0)
|
||||
data = contents.file.read()
|
||||
d = self._node.get(name)
|
||||
def _got_child(child_node):
|
||||
child_node.replace(data)
|
||||
return child_node.get_uri()
|
||||
d.addCallback(_got_child)
|
||||
|
||||
elif t == "check":
|
||||
d = self._node.get(name)
|
||||
def _got_child(child_node):
|
||||
|
Loading…
Reference in New Issue
Block a user