def Render(self): # Watermark js = '' if self._props.get('optional'): optional_string = self._props.get('optional_string', _("Optional")) js += "$('#%s').DefaultValue('optional-grey','%s');" % ( self.id, optional_string) if not self._props.get('class'): self._props['class'] = 'optional' else: self._props['class'] += ' optional' # Render the text field html = '<input type="%s"%s />' % (self.type, self.__get_input_props()) # Render the error reporting field html += '<div class="error"%s></div>' % (self.__get_error_div_props()) render = Widget.Render(self) render.html += html render.js += js render.headers += HEADER return render
def Render(self): render = Widget.Render(self) for e in self.entries: title, widget, comment, use_submitter = e id = self.id props = '' if use_submitter: submit = Submitter(self._url) submit += widget else: submit = widget widget_r = submit.Render() widget_html = widget_r.html html = HTML_ENTRY % (locals()) render.html += html render.js += widget_r.js render.headers += widget_r.headers render.helps += widget_r.helps render.html = HTML_TABLE % (render.html) render.headers += HEADERS return render
def Render(self): # Set the header rows/cols for num in self.header_rows: for field in self.rows[num - 1]: if field: field._tag = 'th' for num in self.header_cols: for row in self.rows: row[num]._tag = 'th' # Render content render = Widget.Render(self) # XXX: This is an ugly hack to set thead/tbody when only one row is a header if len(self.header_rows) == 1: render.html += '<thead>' render += self.rows[0].Render() render.html += '</thead><tbody>' for row in self.rows[1:]: render += row.Render() render.html += '</tbody>' else: for row in self.rows: render += row.Render() # Wrap the table props = " ".join(['%s="%s"' % (k, self.props[k]) for k in self.props]) if props: render.html = '<table id="%s" %s>%s</table>' % (self.id, props, render.html) else: render.html = '<table id="%s">%s</table>' % (self.id, render.html) return render
def Render(self): render = Widget.Render(self) # Total pages tmp = len(self.items) / float(self.items_per_page) if int(tmp) < tmp: total_pags = int(tmp) + 1 else: total_pags = int(tmp) or 1 if total_pags > 1 or self.show_footer_1pag: title = Box({'class': 'paginator-counter'}, RawHTML("Page %d of %d" % (self.page_num + 1, total_pags))) render += title.Render() # Content range_start = self.items_per_page * self.page_num range_end = self.items_per_page * (self.page_num + 1) for item in self.items[range_start:range_end]: render += item.Render() # Add footer if total_pags > 1 or self.show_footer_1pag: footer = Paginator_Footer(len(self.items), self.page_num, self.items_per_page, total_pags, self.refreshable) render += footer.Render() return render
def Render(self): id = self.id props = props_to_str(self.props) on_id = self.widget_on.id off_id = self.widget_off.id value = "01"[int(self.active)] # Render embedded widgets render_on = self.widget_on.Render() render_off = self.widget_off.Render() on_html = render_on.html off_html = render_off.html # Render render = Widget.Render(self) render.html += HTML % (locals()) render.js += JS % (locals()) # Merge the image renders, just in case render_on.html = '' render_off.html = '' render += render_on render += render_off return render
def Render(self): render = Widget.Render(self) render.html += HTML % ({'id': self.id, 'props': self.__get_props()}) render.js += JS % ({'id': self.id}) render.headers += HEADERS return render
def Render(self): render = Widget.Render(self) for c in self.child: tmp = c.Render() render += tmp return render
def Render(self): render = Widget.Render(self) for entry in self.entries: render += entry.Render() render.html = '<div class="help_group" id="help_group_%s">%s</div>' % ( self.name, render.html) return render
def Render(self): if not 'id' in self.props: self.props['id'] = self.id props = " ".join(['%s="%s"' % (k, self.props[k]) for k in self.props]) render = Widget.Render(self) render.html = '<img %s />' % (props) return render
def Render(self): # Render the text field html = '<input type="hidden" id="%s" %s/>' % (self.id, props_to_str(self.props)) render = Widget.Render(self) render.html += html return render
def Render(self): selected = self.props.get('selected') def render_str(o): if len(o) == 2: name, label = o props = {} elif len(o) == 3: name, label, props = o props_str = props_to_str(props) if selected and str(selected) == str(name): return '<option value="%s" selected="true" %s>%s</option>' % ( name, props_str, label) else: return '<option value="%s" %s>%s</option>' % (name, props_str, label) def render_list(o): if len(o) == 2: name, options = o props = {} elif len(o) == 3: name, options, props = o props_str = props_to_str(props) txt = '<optgroup label="%s" %s>' % (name, props_str) for o in options: txt += render_str(o) txt += '</optgroup>' return txt # Render entries content = '' for o in self._options: if type(o[1]) == str: content += render_str(o) elif type(o[1]) == list: content += render_list(o) else: raise ValueError # Render the container header = '' for p in filter(lambda x: x != 'selected', self.props): if self.props[p]: header += ' %s="%s"' % (p, self.props[p]) else: header += ' %s' % (p) html = '<select%s>%s</select>' % (header, content) render = Widget.Render(self) render.html += html return render
def Render(self): if '://' in self.ref: url = self.ref else: url = "/help/%s.html" % (self.ref) render = Widget.Render(self) render.html = '<div class="help_entry"><a href="%s" target="cherokee_help">%s</a></div>' % ( url, self.title) return render
def Render(self): render = Widget.Render(self) props = {'id': self.id, 'props': props_to_str(self.props)} render.html += HTML % (props) render.js += JS % (props) render.headers += HEADERS return render
def Render(self): # Empty response render = Widget.Render(self) # Render the help entries for entry in self.helps: render.html += entry.Render().html # Wrap the list of entries render.html = '<div class="help">%s</div>' % (render.html) return render
def Render(self): render = Widget.Render(self) props = props_to_str(self.props) render.html += HTML % ({ 'id': self.id, 'content': self.content, 'props': props }) return render
def Render(self): render = Widget.Render(self) props = { 'id_widget': self.id, 'proxy_url': self._url_local, 'extra_props': util.props_to_str(self.props) } render.html += HTML % (props) render.js += JAVASCRIPT % (props) return render
def Render (self): render = Widget.Render (self) props = {'id': self.id, 'value': self.value, 'props': props_to_str (self.props)} render.html += HTML %(props) render.js += PERCENT_INIT_JS %(props) render.headers += HEADERS return render
def Render(self): props = {'id': self.id, 'upload_url': self._url_local} raw_html = Uniq_Block(CSS) raw_html += HTML render = Widget.Render(self) render.html += raw_html % (props) render.js += JS % (props) render.headers += HEADERS return render
def Render(self): id = self.id caption = self.caption props = props_to_str(self.props) html = '<button id="%(id)s" %(props)s>%(caption)s</button>' % ( locals()) render = Widget.Render(self) render.html += html return render
def Render(self): id = self.id caption = self.caption props = props_to_str(self.props) html = '<a id="%(id)s" %(props)s><span>%(caption)s</span></a>' % ( locals()) render = Widget.Render(self) render.html += html return render
def Render(self): props = { 'id': self.id, 'url': self.url, 'props': props_to_str(self.props), 'content': '' } render = Widget.Render(self) render.html += HTML % (props) render.js += JS_URL_LOAD % (props) render.js += JS_URL_INIT % (props) return render
def Render(self): render = Widget.Render(self) props = { 'id_widget': self._id, 'proxy_url': self._url_local, 'async_bool': ['false', 'true'][self._async] } render.html += HTML % (props) render.js += JAVASCRIPT % (props) return render
def Render (self): render = Widget.Render(self) id = self._props['id'] ul_html = '' tab_html = '' num = 1 for title, widget in self._tabs: r = widget.Render() # Keep record of dependencies render.js += r.js render.headers += r.headers render.helps += r.helps tab_ref = '' for c in title: if c in string.letters + string.digits: tab_ref += c else: tab_ref += '_' tab_ref += '-%d' %(num) # Render <ul> props = {'id': id, 'tab_ref': tab_ref, 'widget': r.html, 'title': title} ul_html += HTML_LI %(props) tab_html += HTML_TAB %(props) num += 1 # Render the whole thing tmp = HTML_UL %({'li_tabs': ul_html}) tmp += tab_html html = HTML %({'id': id, 'html': tmp}) props = {'id': id, 'tabs': html} render.html = html render.js += JS_INIT %(props) render.headers += HEADER return render
def Render (self): # Deal with a couple of exceptions new_props = self._props.copy() if new_props.has_key('checked') and int(new_props.pop('checked')): new_props['checked'] = "checked" if new_props.has_key('disabled') and int(new_props.pop('disabled')): new_props['disabled'] = "disabled" # Render the widget render = Widget.Render (self) render.html += HTML %({'id': self.id, 'props': props_to_str (new_props)}) return render
def Render(self): # Render content render = Widget.Render(self) for field in self.entries: if field: render += field.Render() else: render.html += "<td></td>" # Wrap the table row props = " ".join(['%s="%s"' % (k, self.props[k]) for k in self.props]) if props: render.html = '<%s %s>%s</%s>' % (self.tag, props, render.html, self.tag) else: render.html = '<%s>%s</%s>' % (self.tag, render.html, self.tag) return render
def Render(self): # Render child if self.widget: w_rend = self.widget.Render() else: w_rend = Container().Render() w_html = w_rend.html w_rend.html = '' # Mix both render = Widget.Render(self) render += w_rend props = { 'id': self.id, 'props': props_to_str(self.props), 'title': self.title, 'widget_html': w_html, 'comment': self.comment } render.html += HTML_ENTRY % (props) return render
def Render(self): render = Widget.Render(self) render.html += self.html render.js += self.js return render