def url(self, name, value=None, id=None, **attrs): kw = {'type': 'text', 'maxlength': 150, 'class_': 'url'} kw.update(attrs) value = self.value(name, value) if value and value.startswith('http://'): value = value[len('http://'):] return literal(u'http://') + tags.text(name, value, id, **kw)
def url(self, name, value=None, id=None, **attrs): kw = {'type': 'text', 'maxlength': 150, 'class_': 'url'} kw.update(attrs) value = self.value(name, value) if value and value.startswith('http://'): value = value[len('http://'):] return literal('http://') + tags.text(name, value, id, **kw)
def text(self, name, value=None, id=NotGiven, **attrs): """ Return a ``text`` input tag. """ name = self._get_name(name) return tags.text(name, self.value(name, value), self._get_id(id, name), **attrs)
def date_field(name, value=None, data_options=None, **kwargs): id = gen_id() format = get_date_format() # this hack is need for datebox correct working format = format.replace('yy', 'yyyy') _data_options = """ editable:false, formatter:function(date){return dt_formatter(date, %s);}, parser:function(s){return dt_parser(s, %s);} """ % ( jsonify(format), jsonify(format) ) if data_options: _data_options += ",%s" % data_options if value: value = format_date(value, format) html = tags.text( name, value, class_="easyui-datebox text w10", id=id, data_options=_data_options, **kwargs ) return html + HTML.literal(""" <script type="text/javascript"> add_datebox_clear_btn("#%s"); </script> """) % id
def __call__(self, *args, **kwargs): val = '' if self.form.data and self.field.name in self.form.data: val = self.form.data[self.field.name] elif self.form.untrusted_data and self.field.name in self.form.untrusted_data: val = self.form.untrusted_data[self.field.name] return tags.text(self.field.name, val, *args, **kwargs)
def text(self, name, value=None, id=None, **attrs): """ Outputs text input. """ return tags.text( name, self.value(name, value), self._get_id(id, name), **attrs )
def colour(self, name, value=None, id=None, **attrs): kw = {'maxlength': 50, 'size': 20, 'class_': 'colour'} kw.update(attrs) kw['size'] = min((kw['maxlength'], kw['size'])) id = id or name value = self.value(name, value) if value and value[0] == '#': value = value[1:] return literal('#') + tags.text(name, value, id, **kw)
def date(self, name, value=None, id=None, **attrs): kw = {"maxlength": 200, "size": const.DATE_TEXT_SIZE} kw.update(attrs) if kw["size"] is not None: kw["size"] = min((kw["maxlength"], kw["size"])) kw["class_"] = self._fix_class(attrs, "DatePicker") kw["id"] = self._fix_id(id or name) value = self.value(name, value) value = format_date(value, self.form.request) return tags.text(name, value, **kw)
def __call__(self): if self._show_toolbar: toolbar = self._render_toolbar() else: toolbar = None return HTML( tags.text( self._name, self._value, id=self._id, class_="easyui-combogrid text w20", data_options=self._render_data_options(), **self._html_attrs ), toolbar if toolbar else '' )
def date(self, name, value=None, id=None, date_format=None, **attrs): """ Outputs text input with an optionally formatted datetime. """ value = self.value(name, value) if isinstance(value, datetime.date) and date_format: value = value.strftime(date_format) return tags.text( name, value, self._get_id(id, name), **attrs )
def colour(self, name, value=None, id=None, **attrs): kw = {"maxlength": 50, "size": 20} kw.update(attrs) if kw["size"] is not None: kw["size"] = min((kw["maxlength"], kw["size"])) kw["class_"] = self._fix_class(attrs, "colour") id = id or name value = self.value(name, value) if value and value[0] == "#": value = value[1:] return literal("#") + tags.text(name, value, self._fix_id(id), **kw)
def text_field(name, value=None, **options): """ Creates a standard text field. ``value`` is a string, the content of the text field Options: * ``disabled`` - If set to True, the user will not be able to use this input. * ``size`` - The number of visible characters that will fit in the input. * ``maxlength`` - The maximum number of characters that the browser will allow the user to enter. Remaining keyword options will be standard HTML options for the tag. """ _update_fa(options, name) return text(name, value=value, **options)
def navigations_combotree_field( name, position_id, value=None, data_options=None, **kwargs ): _data_options = """ url: '/navigations/list', onBeforeLoad: function(node, param){ param.position_id = %s; param.sort = 'sort_order'; param.order = 'asc'; """ % position_id if value: _data_options += """ if(!node){ param.id = %s; param.with_chain = true; } """ % value _data_options += """ } """ if value: _data_options += """, onLoadSuccess: function(node, data){ if(!node){ var n = $(this).tree('find', %s); $(this).tree('expandTo', n.target); $(this).tree('scrollTo', n.target); } } """ % value if data_options: _data_options += ',%s' % data_options return tags.text( name, value, class_="easyui-combotree text w20", data_options=_data_options, **kwargs )
def services_types_combobox_field(name, value=None): ids = map( lambda x: str(x.id), get_resources_types_by_interface(IServiceType) ) data_options = """ url: '/resources_types/list', valueField: 'id', textField: 'humanize', editable: false, onBeforeLoad: function(param){ param.sort = 'humanize'; param.rows = 0; param.page = 1; param.id = %s }, loadFilter: function(data){ return data.rows; } """ % jsonify(','.join(ids)) return tags.text( name, value, class_="easyui-combobox text w20", data_options=data_options )
def _combotree_field( name, value, url, sort, order='asc', data_options=None, **kwargs ): _data_options = """ url: '%(url)s', onBeforeLoad: function(node, param){ param.sort = '%(sort)s'; param.order = '%(order)s'; """ % {'url': url, 'sort': sort, 'order': order} if value: _data_options += """ if(!node){ param.id = %s; param.with_chain = true; } """ % value _data_options += """ } """ if value: _data_options += """, onLoadSuccess: function(node, data){ if(!node){ var n = $(this).tree('find', %s); $(this).tree('expandTo', n.target); $(this).tree('scrollTo', n.target); } } """ % value if data_options: _data_options += ',%s' % data_options return tags.text( name, value, class_="easyui-combotree text w20", data_options=_data_options, **kwargs )
def datetime_field(name, value=None, data_options=None, **kwargs): id = gen_id() _data_options = """ editable:false, showSeconds:false, formatter:function(date){return dt_formatter(date, %s);}, parser:function(s){return dt_parser(s, %s);} """ % ( jsonify(get_datetime_format()), jsonify(get_datetime_format()) ) if data_options: _data_options += ",%s" % data_options if value: value = format_datetime(value) html = tags.text( name, value, class_="easyui-datetimebox text w10", id=id, data_options=_data_options, **kwargs ) return html + HTML.literal(""" <script type="text/javascript"> add_datetimebox_clear_btn("#%s"); </script> """) % id
def text(self, name, value=None, id=None, **attrs): id = id or name attrs.update(self.validation_attrs(name)) return tags.text(name, self.value(name, value), id, **attrs)
def reset(name, value=None, id=NotGiven, **attrs): return tags.text(name, value, id, type="reset", **attrs)
def field_renderers(self): return [tags.text(name=f.name) for f in self.fields]
def __call__(self, *args, **kwargs): val = self.data print('text widget', self.data) if val is colander.null: val = '' return tags.text(self.name, val, *args, **kwargs)
def empty_text(self, name, id, **attrs): id = id or name attrs.update(self.validation_attrs(name)) return tags.text(name, None, id, **attrs)