diff --git a/src/allmydata/web/directory.xhtml b/src/allmydata/web/directory.xhtml
index 478f5bc8c..27302b1f1 100644
--- a/src/allmydata/web/directory.xhtml
+++ b/src/allmydata/web/directory.xhtml
@@ -31,6 +31,7 @@
|
|
|
+ |
Checker Results |
@@ -39,7 +40,9 @@
|
|
|
+ |
|
+
|
|
diff --git a/src/allmydata/webish.py b/src/allmydata/webish.py
index a8e888a62..afd808f5e 100644
--- a/src/allmydata/webish.py
+++ b/src/allmydata/webish.py
@@ -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):