def widget(self, field, value): TagsInputWidget.widget_files() wgt_default = StringWidget.widget( field, value, **{"_data-role": "tagsinput", "_placeholder": current.T("Add Tag")} ) wgt_id = wgt_default.attributes.get("_id", "no_id") wgt_value = wgt_default.attributes.get("_value", "") js = """ jQuery(document).ready(function(){ var tagnames = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: '%(url_tags_json)s', filter: function(list) { return $.map(list, function(tagname) { return { name: tagname }; }); } } }); tagnames.clearPrefetchCache(); tagnames.initialize(true); $('#%(wgt_id)s').tagsinput({ typeaheadjs: { name: 'tagnames', displayKey: 'name', valueKey: 'name', source: tagnames.ttAdapter() } }); $('form').submit(function() { var value = $('#%(wgt_id)s').val(); $('#%(wgt_id)s').val(value); return true; }); }); """ % { "wgt_id": wgt_id, "url_tags_json": self.url, } jq_script = SCRIPT(js, _type="text/javascript") wrapper = DIV(_class="TagsInputWidget") wrapper.components.extend([wgt_default, jq_script]) return wrapper
def widget(self, field, value, **attributes): MaskWidget.widget_files() attributes["_class"] = "span4 string" attributes["_placeholder"] = self.mask wgt_default = StringWidget.widget(field, value, **attributes) wgt_id = wgt_default.attributes.get("_id", "no_id") js = """ jQuery(document).ready(function(){ jQuery('#%(field_name)s').each( function(){ jQuery(this).mask('%(mask)s'); }); }); """ % dict( field_name=wgt_id, mask=self.mask ) jq_script = SCRIPT(js, _type="text/javascript") wrapper = DIV(_class="onx-widget MaskWidget") wrapper.components.extend([wgt_default, jq_script]) return wrapper
def widget(self, field, value, **attr): attr["_type"] = "email" return StringWidget.widget(field, value, **attr)