コード例 #1
0
 def render_table(self, w, actions, paginate):
     view = self.view
     divid = view.domid
     if divid is not None:
         w(u'<div id="%s">' % divid)
     else:
         assert not (actions or paginate)
     nav_html = UStringIO()
     if paginate:
         view.paginate(w=nav_html.write,
                       show_all_option=self.show_all_option)
     w(nav_html.getvalue())
     if actions and self.display_actions == 'top':
         self.render_actions(w, actions)
     colrenderers = view.build_column_renderers()
     attrs = self.table_attributes()
     w(u'<table %s>' % sgml_attributes(attrs))
     if self.view.has_headers:
         self.render_table_headers(w, colrenderers)
     self.render_table_body(w, colrenderers)
     w(u'</table>')
     if actions and self.display_actions == 'bottom':
         self.render_actions(w, actions)
     w(nav_html.getvalue())
     if divid is not None:
         w(u'</div>')
コード例 #2
0
 def render_cell(self, w, rownum, colnum, renderer):
     attrs = self.cell_attributes(rownum, colnum, renderer)
     if colnum in self.header_column_idx:
         tag = u'th'
     else:
         tag = u'td'
     w(u'<%s %s>' % (tag, sgml_attributes(attrs)))
     renderer.render_cell(w, rownum)
     w(u'</%s>' % tag)
コード例 #3
0
ファイル: tags.py プロジェクト: zogzog/cubicweb
def select(name, id=None, multiple=False, options=[], **attrs):
    if multiple:
        attrs['multiple'] = 'multiple'
    if id:
        attrs['id'] = id
    attrs['name'] = name
    html = [u'<select %s>' % sgml_attributes(attrs)]
    html += options
    html.append(u'</select>')
    return u'\n'.join(html)
コード例 #4
0
ファイル: formrenderers.py プロジェクト: zogzog/cubicweb
 def close_form(self, form, values):
     """seems dumb but important for consistency w/ close form, and necessary
     for form renderers overriding open_form to use something else or more than
     and <form>
     """
     out = u'</form>'
     if form.cwtarget:
         attrs = {'name': form.cwtarget, 'id': form.cwtarget,
                  'width': '0px', 'height': '0px',
                  'src': 'javascript: void(0);'}
         out =  (u'<iframe %s></iframe>\n' % uilib.sgml_attributes(attrs)) + out
     return out
コード例 #5
0
ファイル: formrenderers.py プロジェクト: zogzog/cubicweb
 def open_form(self, form, values, **attrs):
     if form.needs_multipart:
         enctype = u'multipart/form-data'
     else:
         enctype = u'application/x-www-form-urlencoded'
     attrs.setdefault('enctype', enctype)
     attrs.setdefault('method', 'post')
     attrs.setdefault('action', form.form_action() or '#')
     if form.domid:
         attrs.setdefault('id', form.domid)
     if form.onsubmit:
         attrs.setdefault('onsubmit',  form.onsubmit)
     if form.cssstyle:
         attrs.setdefault('style', form.cssstyle)
     if form.cssclass:
         attrs.setdefault('class', form.cssclass)
     if form.cwtarget:
         attrs.setdefault('target', form.cwtarget)
     if not form.autocomplete:
         attrs.setdefault('autocomplete', 'off')
     return '<form %s>' % uilib.sgml_attributes(attrs)
コード例 #6
0
 def _render(self, form, field, renderer):
     curvalues, attrs = self.values_and_attributes(form, field)
     options = []
     optgroup_opened = False
     vocab = field.vocabulary(form)
     for option in vocab:
         try:
             label, value, oattrs = option
         except ValueError:
             label, value = option
             oattrs = {}
         if value is None:
             # handle separator
             if optgroup_opened:
                 options.append(u'</optgroup>')
             oattrs.setdefault('label', label or '')
             options.append(u'<optgroup %s>' %
                            uilib.sgml_attributes(oattrs))
             optgroup_opened = True
         elif self.value_selected(value, curvalues):
             options.append(
                 tags.option(label,
                             value=value,
                             selected='selected',
                             **oattrs))
         else:
             options.append(tags.option(label, value=value, **oattrs))
     if optgroup_opened:
         options.append(u'</optgroup>')
     if 'size' not in attrs:
         if self._multiple:
             size = str(min(self.default_size, len(vocab) or 1))
         else:
             size = u'1'
         attrs['size'] = size
     return tags.select(name=field.input_name(form, self.suffix),
                        multiple=self._multiple,
                        options=options,
                        **attrs)
コード例 #7
0
 def render_row(self, w, rownum, renderers):
     attrs = self.row_attributes(rownum)
     w(u'<tr %s>' % sgml_attributes(attrs))
     for colnum, renderer in enumerate(renderers):
         self.render_cell(w, rownum, colnum, renderer)
     w(u'</tr>\n')