Exemplo n.º 1
0
 def render(self):
     r = TemplateIO(html=True)
     r += self.render_title(self.get_title())
     add_element_widget = self.get_widget('add_element')
     for widget in self.get_widgets():
         if widget is add_element_widget:
             continue
         r += widget.render()
     r += add_element_widget.render()
     r += self.render_hint(self.get_hint())
     return r.getvalue()
Exemplo n.º 2
0
 def __call__(self, request):
     r = TemplateIO(html=0)
     file_name = request.get_path()[1:]  # drop leading '/'
     r += header(get_title_from_path(file_name))
     body = StaticFile.__call__(self, request)
     if isinstance(body, Stream):
         for hunk in body:
             r += hunk
     else:
         r += body
     r += footer()
     return r.getvalue()
Exemplo n.º 3
0
 def render(self, request, action_url):
     # render(request : HTTPRequest,
     #           action_url : string)
     #    -> HTML text
     #
     # Render a form as HTML.
     assert type(action_url) in (StringType, htmltext)
     r = TemplateIO(html=1)
     r += self._render_start(request, action_url,
                             enctype=self.enctype, method=self.method)
     r += self._render_body(request)
     r += self._render_finish(request)
     return r.getvalue()
Exemplo n.º 4
0
 def _render_start(self,
                   request,
                   action,
                   enctype=None,
                   method='post',
                   name=None):
     r = TemplateIO(html=1)
     r += htmltag('form',
                  enctype=enctype,
                  method=method,
                  action=action,
                  name=name)
     r += self._render_hidden_widgets(request)
     return r.getvalue()
Exemplo n.º 5
0
 def render_content(self):
     r = TemplateIO(html=True)
     for name in self.element_names:
         if name in ('add_element', 'added_elements'):
             continue
         key_widget = self.get_widget(name + 'key')
         value_widget = self.get_widget(name + 'value')
         r += htmltext('%s<div class="widget">: </div>%s') % (
             key_widget.render(), value_widget.render())
         if self.render_br:
             r += htmltext('<br clear="left" class="widget" />')
         r += htmltext('\n')
     r += self.get_widget('add_element').render()
     r += self.get_widget('added_elements').render()
     return r.getvalue()
Exemplo n.º 6
0
 def render(self):
     r = TemplateIO(html=True)
     classnames = '%s widget' % self.__class__.__name__
     r += htmltext('<div class="%s">') % classnames
     r += self.render_title(self.get_title())
     r += htmltext('<div class="content">')
     r += self.render_content()
     r += self.render_hint(self.get_hint())
     r += self.render_error(self.get_error())
     r += htmltext('</div>')
     r += htmltext('</div>')
     if self.render_br:
         r += htmltext('<br class="%s" />') % classnames
     r += htmltext('\n')
     return r.getvalue()
Exemplo n.º 7
0
 def _render_widget_row(self, request, widget):
     if widget.widget_type == 'hidden':
         return ''
     title = self.title[widget.name] or ''
     if self.required.get(widget.name):
         title = title + htmltext('&nbsp;*')
     r = TemplateIO(html=1)
     r += htmltext('<tr><th colspan="3" align="left">')
     r += title
     r += htmltext('</th></tr>' '<tr><td>&nbsp;&nbsp;</td><td>')
     r += widget.render(request)
     r += htmltext('</td><td>')
     r += self._render_error(self.error.get(widget.name))
     r += self._render_hint(self.hint.get(widget.name))
     r += htmltext('</td></tr>')
     return r.getvalue()
Exemplo n.º 8
0
def dump_request(request=None):
    if request is None:
        request = quixote.get_request()
    """Dump an HTTPRequest object as HTML."""
    row_fmt = htmltext('<tr><th>%s</th><td>%s</td></tr>')
    r = TemplateIO(html=True)
    r += htmltext('<h3>form</h3>' '<table>')
    for k, v in request.form.items():
        r += row_fmt % (k, v)
    r += htmltext('</table>' '<h3>cookies</h3>' '<table>')
    for k, v in request.cookies.items():
        r += row_fmt % (k, v)
    r += htmltext('</table>' '<h3>environ</h3>' '<table>')
    for k, v in request.environ.items():
        r += row_fmt % (k, v)
    r += htmltext('</table>')
    return r.getvalue()
Exemplo n.º 9
0
 def _q_index(self):
     """
     If directory listings are allowed, generate a simple HTML
     listing of the directory's contents with each item hyperlinked;
     if the item is a subdirectory, place a '/' after it. If not allowed,
     return a page to that effect.
     """
     if self.index_filenames:
         for name in self.index_filenames:
             try:
                 obj = self._q_lookup(name)
             except errors.TraversalError:
                 continue
             if (not isinstance(obj, StaticDirectory)
                     and hasattr(obj, '__call__')):
                 return obj()
     if self.list_directory:
         title = 'Index of %s' % quixote.get_path()
         r = TemplateIO(html=True)
         template = htmltext('<a href="%s">%s</a>%s\n')
         r += htmltext('<pre>')
         r += template % ('..', '..', '')
         files = os.listdir(self.path)
         files.sort()
         for filename in files:
             filepath = os.path.join(self.path, filename)
             marker = os.path.isdir(filepath) and "/" or ""
             r += template % (urllib.parse.quote(filename), filename,
                              marker)
         r += htmltext('</pre>')
         body = r.getvalue()
     else:
         title = 'Directory listing denied'
         body = htmltext('<p>This directory does not allow its contents '
                         'to be listed.</p>')
     return errors.format_page(title, body)
Exemplo n.º 10
0
 def _render_hidden_widgets(self):
     r = TemplateIO(html=True)
     for widget in self.hidden_widgets:
         r += widget.render()
     return r.getvalue()
Exemplo n.º 11
0
 def _render_visible_widgets(self, request):
     r = TemplateIO(html=1)
     for widget in self.widget_order:
         r += self._render_widget_row(request, widget)
     return r.getvalue()
Exemplo n.º 12
0
 def _render_finish(self, request):
     r = TemplateIO(html=1)
     r += htmltext('</form>')
     r += self._render_javascript(request)
     return r.getvalue()
Exemplo n.º 13
0
 def render_content(self):
     r = TemplateIO(html=True)
     for widget in self.get_widgets():
         r += widget.render()
     return r.getvalue()