def prepare(self): super(CustomisedForm, self).prepare() if self.blank_deleted: self.safe_modify('attrs') self.attrs['onsubmit'] = 'twd_blank_deleted()' if self.disable_enter: self.safe_modify('resources') self.resources.append( twc.JSSource(src='document.onkeypress = twd_suppress_enter;')) if self.prevent_multi_submit: self.submit.safe_modify('attrs') self.submit.attrs['onclick'] = 'return twd_no_multi_submit(this);'
def prepare(self): super(Wysihtml5, self).prepare() if not hasattr(self, 'id') or 'id' not in self.attrs: raise ValueError('WYSIHTML5 must be supplied an id') self.resources.append(parsers[self.parser]) self.toolbar_id = self.compound_id + '-toolbar' self.resources.append( twc.JSSource(src=""" var editor = new wysihtml5.Editor("%s", { toolbar: "%s", parserRules: wysihtml5ParserRules, stylesheets: ["/resources/%s/%s"] }); """ % (self.compound_id, self.toolbar_id, wysihtml5_editor_css.guess_modname(), wysihtml5_editor_css.filename)))
import tw2.core as twc import tw2.jqplugins.ui import testapi from nose.tools import eq_ js = twc.JSLink(link='paj') css = twc.CSSLink(link='joe') csssrc = twc.CSSSource(src='.bob { font-weight: bold; }') jssrc = twc.JSSource(src='bob') html = "<html><head><title>a</title></head><body>hello</body></html>" def simple_app(environ, start_response): req = wo.Request(environ) ct = 'text/html' if req.path == '/' else 'test/plain' resp = wo.Response(request=req, content_type="%s; charset=UTF8" % ct) resp.body = html return resp(environ, start_response) mw = twc.make_middleware(simple_app) def setup(): testapi.setup() def test_weird_case_for_zykes(): rl = testapi.request(1, mw) tw2.jqplugins.ui.jquery_ui.inject()
def __init__(self, **kwargs): super(GeocompleteField, self).__init__(**kwargs) self.resources = [ select2_persistence_js, twc.JSSource(src=''' function format_name(name, complement, postal_code, country) { var display_name = name; display_name += ' '; if(complement) { display_name += complement; } display_name += ' - '; display_name += postal_code; display_name += ', '; display_name += country; return display_name.toUpperCase(); } ''') ] self.options = [] self.ondemand = True self.validator = self.validator or Validator() self.opts.copy() self.opts['minimumInputLength'] = 1 self.opts['maximumInputLength'] = 125 self.opts['allowClear'] = True self.opts['dropdownAutoWidth'] = True self.opts['initSelection'] = twc.js_callback(""" function (element, callback) { var init_data; param = params['%(name)s']; if(typeof param !== "undefined" && param) { var elem = {}; param_dict = JSON.parse(param); elem.id = param; name = format_name( param_dict['name'], param_dict['complement'], param_dict['postal_code'], param_dict['country'] ); elem.name = name; elem.value = name; init_data = elem; } callback(init_data); } """ % dict(name=self.name)) self.opts['escapeMarkup'] = twc.js_callback(""" function(markup) { return markup; } """) self.opts['formatResult'] = twc.js_callback(""" function(location) { var markup = '<option value="' + location.value + '">' + location.name + '</option>'; return markup; } """) self.opts['formatSelection'] = twc.js_callback(""" function(location) { if(typeof location !== "undefined") { return location.value || location.text; } } """) self.opts['ajax'] = dict(url='/geocomplete', dataType='json', type='POST', quietMillis=100, cache=True, data=twc.js_callback(""" function(term) { return {address: term}; } """), results=twc.js_callback(""" function(data) { var results = []; if ('results' in data) { $.each(data['results'], function(i, v) { var o = {}; o.id = JSON.stringify(v); name = format_name( v['name'], v['complement'], v['postal_code'], v['country'] ); o.name = name; o.value = name; results.push(o); }); } return {results: results}; } """))
import tw2.core as twc import tw2.jqplugins.select2 as twsel from tw2.core.validation import Validator select2_persistence_js = twc.JSSource(src=''' // This function returns the value of the specified GET parameter. // The code has been found at the following url: // http://stackoverflow.com/questions/5448545/how-to-retrieve-get-parameters-from-javascript // Big Kudos to you mister Jonah. var params = function() { function urldecode(str) { return decodeURIComponent((str+'').replace(/\+/g, '%20')); } function transformToAssocArray( prmstr ) { var params = {}; var prmarr = prmstr.split("&"); for ( var i = 0; i < prmarr.length; i++) { var tmparr = prmarr[i].split("="); params[tmparr[0]] = urldecode(tmparr[1]); } return params; } var prmstr = window.location.search.substr(1); return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {}; }(); ''') class PersistentSelect2MultipleSelect(twsel.Select2MultipleSelectField): def __init__(self, **kwargs):