u = from_string_dirnode(dirnode.get_uri())
return u.abbrev_si()
+SPACE = u"\u00A0"*2
+
class DirectoryAsHTML(rend.Page):
# The remainder of this class is to render the directory into
# human+browser -oriented HTML.
return ctx.tag
- # XXX: Duplicated from root.py.
+ # XXX: similar to render_upload_form and render_mkdir_form in root.py.
def render_forms(self, ctx, data):
forms = []
if self.dirnode_children is None:
return T.div["No upload forms: directory is unreadable"]
- mdmf_directory_input = T.input(type='radio', name='mutable-type',
- id='mutable-directory-mdmf',
- value='mdmf')
- sdmf_directory_input = T.input(type='radio', name='mutable-type',
- id='mutable-directory-sdmf',
- value='sdmf', checked='checked')
- mkdir = T.form(action=".", method="post",
- enctype="multipart/form-data")[
+ mkdir_sdmf = T.input(type='radio', name='format',
+ value='sdmf', id='mkdir-sdmf',
+ checked='checked')
+ mkdir_mdmf = T.input(type='radio', name='format',
+ value='mdmf', id='mkdir-mdmf')
+
+ mkdir_form = T.form(action=".", method="post",
+ enctype="multipart/form-data")[
T.fieldset[
T.input(type="hidden", name="t", value="mkdir"),
T.input(type="hidden", name="when_done", value="."),
T.legend(class_="freeform-form-label")["Create a new directory in this directory"],
- "New directory name: ",
- T.input(type="text", name="name"), " ",
- T.label(for_='mutable-directory-sdmf')["SDMF"],
- sdmf_directory_input,
- T.label(for_='mutable-directory-mdmf')["MDMF"],
- mdmf_directory_input,
- T.input(type="submit", value="Create"),
+ "New directory name:"+SPACE,
+ T.input(type="text", name="name"), SPACE,
+ T.input(type="submit", value="Create"), SPACE*2,
+ mkdir_sdmf, T.label(for_='mutable-directory-sdmf')[" SDMF"], SPACE,
+ mkdir_mdmf, T.label(for_='mutable-directory-mdmf')[" MDMF (experimental)"],
]]
- forms.append(T.div(class_="freeform-form")[mkdir])
-
- # Build input elements for mutable file type. We do this outside
- # of the list so we can check the appropriate format, based on
- # the default configured in the client (which reflects the
- # default configured in tahoe.cfg)
- if self.default_mutable_format == MDMF_VERSION:
- mdmf_input = T.input(type='radio', name='mutable-type',
- id='mutable-type-mdmf', value='mdmf',
- checked='checked')
- else:
- mdmf_input = T.input(type='radio', name='mutable-type',
- id='mutable-type-mdmf', value='mdmf')
-
- if self.default_mutable_format == SDMF_VERSION:
- sdmf_input = T.input(type='radio', name='mutable-type',
- id='mutable-type-sdmf', value='sdmf',
- checked="checked")
- else:
- sdmf_input = T.input(type='radio', name='mutable-type',
- id='mutable-type-sdmf', value='sdmf')
-
- upload = T.form(action=".", method="post",
- enctype="multipart/form-data")[
+ forms.append(T.div(class_="freeform-form")[mkdir_form])
+
+ upload_chk = T.input(type='radio', name='format',
+ value='chk', id='upload-chk',
+ checked='checked')
+ upload_sdmf = T.input(type='radio', name='format',
+ value='sdmf', id='upload-sdmf')
+ upload_mdmf = T.input(type='radio', name='format',
+ value='mdmf', id='upload-mdmf')
+
+ upload_form = T.form(action=".", method="post",
+ enctype="multipart/form-data")[
T.fieldset[
T.input(type="hidden", name="t", value="upload"),
T.input(type="hidden", name="when_done", value="."),
T.legend(class_="freeform-form-label")["Upload a file to this directory"],
- "Choose a file to upload: ",
- T.input(type="file", name="file", class_="freeform-input-file"),
- " ",
- T.input(type="submit", value="Upload"),
- " Mutable?:",
- T.input(type="checkbox", name="mutable"),
- sdmf_input, T.label(for_="mutable-type-sdmf")["SDMF"],
- mdmf_input,
- T.label(for_="mutable-type-mdmf")["MDMF (experimental)"],
+ "Choose a file to upload:"+SPACE,
+ T.input(type="file", name="file", class_="freeform-input-file"), SPACE,
+ T.input(type="submit", value="Upload"), SPACE*2,
+ upload_chk, T.label(for_="upload-chk") [" Immutable"], SPACE,
+ upload_sdmf, T.label(for_="upload-sdmf")[" SDMF"], SPACE,
+ upload_mdmf, T.label(for_="upload-mdmf")[" MDMF (experimental)"],
]]
- forms.append(T.div(class_="freeform-form")[upload])
+ forms.append(T.div(class_="freeform-form")[upload_form])
- mount = T.form(action=".", method="post",
- enctype="multipart/form-data")[
+ attach_form = T.form(action=".", method="post",
+ enctype="multipart/form-data")[
T.fieldset[
T.input(type="hidden", name="t", value="uri"),
T.input(type="hidden", name="when_done", value="."),
T.legend(class_="freeform-form-label")["Add a link to a file or directory which is already in Tahoe-LAFS."],
- "New child name: ",
- T.input(type="text", name="name"), " ",
- "URI of new child: ",
- T.input(type="text", name="uri"), " ",
+ "New child name:"+SPACE,
+ T.input(type="text", name="name"), SPACE*2,
+ "URI of new child:"+SPACE,
+ T.input(type="text", name="uri"), SPACE,
T.input(type="submit", value="Attach"),
]]
- forms.append(T.div(class_="freeform-form")[mount])
+ forms.append(T.div(class_="freeform-form")[attach_form])
return forms
def render_results(self, ctx, data):
from allmydata import get_package_versions_string
from allmydata import provisioning
from allmydata.util import idlib, log
-from allmydata.interfaces import IFileNode, MDMF_VERSION, SDMF_VERSION
+from allmydata.interfaces import IFileNode
from allmydata.web import filenode, directory, unlinked, status, operations
from allmydata.web import reliability, storage
from allmydata.web.common import abbreviate_size, getxmlfile, WebError, \
</html>
''')
+SPACE = u"\u00A0"*2
+
class Root(rend.Page):
addSlash = True
enctype="multipart/form-data")[
T.fieldset[
T.legend(class_="freeform-form-label")["Download a file"],
- T.div["Tahoe-URI to download: ",
+ T.div["Tahoe-URI to download:"+SPACE,
T.input(type="text", name="uri")],
- T.div["Filename to download as: ",
+ T.div["Filename to download as:"+SPACE,
T.input(type="text", name="filename")],
T.input(type="submit", value="Download!"),
]]
enctype="multipart/form-data")[
T.fieldset[
T.legend(class_="freeform-form-label")["View a file or directory"],
- "Tahoe-URI to view: ",
- T.input(type="text", name="uri"), " ",
+ "Tahoe-URI to view:"+SPACE,
+ T.input(type="text", name="uri"), SPACE*2,
T.input(type="submit", value="View!"),
]]
return T.div[form]
def render_upload_form(self, ctx, data):
- # this is a form where users can upload unlinked files
- #
- # for mutable files, users can choose the format by selecting
- # MDMF or SDMF from a radio button. They can also configure a
- # default format in tahoe.cfg, which they rightly expect us to
- # obey. we convey to them that we are obeying their choice by
- # ensuring that the one that they've chosen is selected in the
- # interface.
- if self.client.mutable_file_default == MDMF_VERSION:
- mdmf_input = T.input(type='radio', name='mutable-type',
- value='mdmf', id='mutable-type-mdmf',
- checked='checked')
- else:
- mdmf_input = T.input(type='radio', name='mutable-type',
- value='mdmf', id='mutable-type-mdmf')
-
- if self.client.mutable_file_default == SDMF_VERSION:
- sdmf_input = T.input(type='radio', name='mutable-type',
- value='sdmf', id='mutable-type-sdmf',
- checked='checked')
- else:
- sdmf_input = T.input(type='radio', name='mutable-type',
- value='sdmf', id='mutable-type-sdmf')
+ # This is a form where users can upload unlinked files.
+ # Users can choose immutable, SDMF, or MDMF from a radio button.
+ upload_chk = T.input(type='radio', name='format',
+ value='chk', id='upload-chk',
+ checked='checked')
+ upload_sdmf = T.input(type='radio', name='format',
+ value='sdmf', id='upload-sdmf')
+ upload_mdmf = T.input(type='radio', name='format',
+ value='mdmf', id='upload-mdmf')
form = T.form(action="uri", method="post",
enctype="multipart/form-data")[
T.fieldset[
T.legend(class_="freeform-form-label")["Upload a file"],
- T.div["Choose a file: ",
+ T.div["Choose a file:"+SPACE,
T.input(type="file", name="file", class_="freeform-input-file")],
T.input(type="hidden", name="t", value="upload"),
- T.div[T.input(type="checkbox", name="mutable"), T.label(for_="mutable")["Create mutable file"],
- sdmf_input, T.label(for_="mutable-type-sdmf")["SDMF"],
- mdmf_input,
- T.label(for_='mutable-type-mdmf')['MDMF (experimental)'],
- " ", T.input(type="submit", value="Upload!")],
+ T.div[upload_chk, T.label(for_="upload-chk") [" Immutable"], SPACE,
+ upload_sdmf, T.label(for_="upload-sdmf")[" SDMF"], SPACE,
+ upload_mdmf, T.label(for_="upload-mdmf")[" MDMF (experimental)"], SPACE*2,
+ T.input(type="submit", value="Upload!")],
]]
return T.div[form]
def render_mkdir_form(self, ctx, data):
- # this is a form where users can create new directories
- mdmf_input = T.input(type='radio', name='mutable-type',
- value='mdmf', id='mutable-directory-mdmf')
- sdmf_input = T.input(type='radio', name='mutable-type',
- value='sdmf', id='mutable-directory-sdmf',
+ # This is a form where users can create new directories.
+ # Users can choose SDMF or MDMF from a radio button.
+
+ mkdir_sdmf = T.input(type='radio', name='format',
+ value='sdmf', id='mkdir-sdmf',
checked='checked')
+ mkdir_mdmf = T.input(type='radio', name='format',
+ value='mdmf', id='mkdir-mdmf')
+
form = T.form(action="uri", method="post",
enctype="multipart/form-data")[
T.fieldset[
T.legend(class_="freeform-form-label")["Create a directory"],
- T.label(for_='mutable-directory-sdmf')["SDMF"],
- sdmf_input,
- T.label(for_='mutable-directory-mdmf')["MDMF"],
- mdmf_input,
+ mkdir_sdmf, T.label(for_='mkdir-sdmf')[" SDMF"], SPACE,
+ mkdir_mdmf, T.label(for_='mkdir-mdmf')[" MDMF (experimental)"], SPACE*2,
T.input(type="hidden", name="t", value="mkdir"),
T.input(type="hidden", name="redirect_to_result", value="true"),
T.input(type="submit", value="Create a directory"),
T.fieldset[
T.legend(class_="freeform-form-label")["Report an Incident"],
T.input(type="hidden", name="t", value="report-incident"),
- "What went wrong?: ",
- T.input(type="text", name="details"), " ",
+ "What went wrong?:"+SPACE,
+ T.input(type="text", name="details"), SPACE,
T.input(type="submit", value="Report!"),
]]
return T.div[form]