def render_option(cls, value, label, mixed): """ Render option as HTML tag, but not forget to wrap options into ``optgroup`` tag if ``label`` var is ``list`` or ``tuple``. """ if isinstance(label, (list, tuple)): children = [] for item_value, item_label in label: item_html = cls.render_option(item_value, item_label, mixed) children.append(item_html) html = u'<optgroup label="%s">%s</optgroup>' data = (escape(unicode(value)), u'\n'.join(children)) else: coerce_func, data = mixed selected = coerce_func(value) == data options = {'value': value} if selected: options['selected'] = u'selected' html = u'<option %s>%s</option>' data = (html_params(**options), escape(unicode(label))) return HTMLString(html % data)
def __call__(self, field, **kwargs): kwargs.setdefault('id', field.id) html = '' html += '<div class=\"btn-toolbar m-b-sm btn-editor\" data-role=\"editor-toolbar\"data-target=\"#editor\"><div class=\"btn-group\"><a class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" title=\"Font\"><i class=\"fa fa-font\"></i><b class=\"caret\"></b></a><ul class=\"dropdown-menu\"></ul></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" title=\"Font Size\"><i class=\"fa fa-text-height\"></i> <b class=\"caret\"></b></a><ul class=\"dropdown-menu\"><li><a data-edit=\"fontSize 5\"><font size=\"5\"> Huge</font></a></li><li><a data-edit=\"fontSize 3\"><font size=\"3\"> Normal</font></a></li><li><a data-edit=\"fontSize 1\"><font size=\"1\"> Small</font></a></li></ul></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"bold\" title=\"Bold (Ctrl/Cmd+B)\"><i class=\"fa fa-bold\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"italic\" title=\"Italic (Ctrl/Cmd+I)\"><i class=\"fa fa-italic\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"strikethrough\" title=\"Strikethrough\"><i class=\"fa fa-strikethrough\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"underline\" title=\"Underline (Ctrl/Cmd+U)\"><i class=\"fa fa-underline\"></i></a></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"insertunorderedlist\" title=\"Bullet list\"><i class=\"fa fa-list-ul\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"insertorderedlist\" title=\"Number list\"><i class=\"fa fa-list-ol\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"outdent\" title=\"Reduce indent (Shift+Tab)\"><i class=\"fa fa-dedent\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"indent\" title=\"Indent (Tab)\"><i class=\"fa fa-indent\"></i></a></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"justifyleft\" title=\"Align Left (Ctrl/Cmd+L)\"><i class=\"fa fa-align-left\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"justifycenter\" title=\"Center (Ctrl/Cmd+E)\"><i class=\"fa fa-align-center\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"justifyright\" title=\"Align Right (Ctrl/Cmd+R)\"><i class=\"fa fa-align-right\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"justifyfull\" title=\"Justify (Ctrl/Cmd+J)\"><i class=\"fa fa-align-justify\"></i></a></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" title=\"Hyperlink\"><i class=\"fa fa-link\"></i></a><div class=\"dropdown-menu\"><div class=\"input-group m-l-xs m-r-xs\"><input class=\"form-control input-sm\" placeholder=\"URL\" type=\"text\" data-edit=\"createLink\" /><div class=\"input-group-btn\"><button class=\"btn btn-default btn-sm\" type=\"button\"> Add</button></div></div></div><a class=\"btn btn-default btn-sm\" data-edit=\"unlink\" title=\"Remove Hyperlink\"><i class=\"fa fa-cut\"></i></a></div><div class=\"btn-group hide\"><a class=\"btn btn-default btn-sm\" title=\"Insert picture (or just drag & drop)\" id=\"pictureBtn\"><i class=\"fa fa-picture-o\"></i></a><input type=\"file\" data-role=\"magic-overlay\" data-target=\"#pictureBtn\" data-edit=\"insertImage\" /></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"undo\" title=\"Undo (Ctrl/Cmd+Z)\"><i class=\"fa fa-undo\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"redo\" title=\"Redo (Ctrl/Cmd+Y)\"><i class=\"fa fa-repeat\"></i></a></div></div>' html += '<textarea class=\"hide flask-wysiwyg\" data-editor=\"editor\" %s>%s</textarea>' html += '<div id=\"editor\" style=\"overflow:scroll;height:150px;max-height:150px\" class="bootstrap-wysiwyg form-control" >%s</div>' return HTMLString(html % (html_params( name=field.name, **kwargs), escape(text_type( field._value())), escape(text_type(field._value()))))
def render_option(cls, value, label, selected, **kwargs): value, tracker_id = value options = dict(kwargs, value=value) if selected: options['selected'] = True options['data-tracker_id'] = tracker_id return HTMLString('<option %s>%s</option>' % (html_params(**options), escape(text_type(label))))
def render_option(cls, val, label, photo_file_path): options = {'value': val} if photo_file_path: options['data-img-src'] = photo_file_path return widgets.HTMLString( u'<option %s>%s</option>' % (widgets.html_params(**options), escape(unicode(label))))
def __call__(self, field, **kwargs): kwargs.setdefault('type', 'submit') kwargs["class"] = self.class_ title = kwargs.pop('title', field.description or '') params = html_params(title=title, **kwargs) html = '<button %s>%s</button>' return Markup(html % (params, escape(field.label.text)))
def __call__(self, field, **kwargs): kwargs.setdefault('id', field.id) html='' html+='<div class=\"btn-toolbar m-b-sm btn-editor\" data-role=\"editor-toolbar\"data-target=\"#editor\"><div class=\"btn-group\"><a class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" title=\"Font\"><i class=\"fa fa-font\"></i><b class=\"caret\"></b></a><ul class=\"dropdown-menu\"></ul></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" title=\"Font Size\"><i class=\"fa fa-text-height\"></i> <b class=\"caret\"></b></a><ul class=\"dropdown-menu\"><li><a data-edit=\"fontSize 5\"><font size=\"5\"> Huge</font></a></li><li><a data-edit=\"fontSize 3\"><font size=\"3\"> Normal</font></a></li><li><a data-edit=\"fontSize 1\"><font size=\"1\"> Small</font></a></li></ul></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"bold\" title=\"Bold (Ctrl/Cmd+B)\"><i class=\"fa fa-bold\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"italic\" title=\"Italic (Ctrl/Cmd+I)\"><i class=\"fa fa-italic\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"strikethrough\" title=\"Strikethrough\"><i class=\"fa fa-strikethrough\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"underline\" title=\"Underline (Ctrl/Cmd+U)\"><i class=\"fa fa-underline\"></i></a></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"insertunorderedlist\" title=\"Bullet list\"><i class=\"fa fa-list-ul\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"insertorderedlist\" title=\"Number list\"><i class=\"fa fa-list-ol\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"outdent\" title=\"Reduce indent (Shift+Tab)\"><i class=\"fa fa-dedent\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"indent\" title=\"Indent (Tab)\"><i class=\"fa fa-indent\"></i></a></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"justifyleft\" title=\"Align Left (Ctrl/Cmd+L)\"><i class=\"fa fa-align-left\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"justifycenter\" title=\"Center (Ctrl/Cmd+E)\"><i class=\"fa fa-align-center\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"justifyright\" title=\"Align Right (Ctrl/Cmd+R)\"><i class=\"fa fa-align-right\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"justifyfull\" title=\"Justify (Ctrl/Cmd+J)\"><i class=\"fa fa-align-justify\"></i></a></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm dropdown-toggle\" data-toggle=\"dropdown\" title=\"Hyperlink\"><i class=\"fa fa-link\"></i></a><div class=\"dropdown-menu\"><div class=\"input-group m-l-xs m-r-xs\"><input class=\"form-control input-sm\" placeholder=\"URL\" type=\"text\" data-edit=\"createLink\" /><div class=\"input-group-btn\"><button class=\"btn btn-default btn-sm\" type=\"button\"> Add</button></div></div></div><a class=\"btn btn-default btn-sm\" data-edit=\"unlink\" title=\"Remove Hyperlink\"><i class=\"fa fa-cut\"></i></a></div><div class=\"btn-group hide\"><a class=\"btn btn-default btn-sm\" title=\"Insert picture (or just drag & drop)\" id=\"pictureBtn\"><i class=\"fa fa-picture-o\"></i></a><input type=\"file\" data-role=\"magic-overlay\" data-target=\"#pictureBtn\" data-edit=\"insertImage\" /></div><div class=\"btn-group\"><a class=\"btn btn-default btn-sm\" data-edit=\"undo\" title=\"Undo (Ctrl/Cmd+Z)\"><i class=\"fa fa-undo\"></i></a><a class=\"btn btn-default btn-sm\" data-edit=\"redo\" title=\"Redo (Ctrl/Cmd+Y)\"><i class=\"fa fa-repeat\"></i></a></div></div>' html+='<textarea class=\"hide flask-wysiwyg\" data-editor=\"editor\" %s>%s</textarea>' html+='<div id=\"editor\" style=\"overflow:scroll;height:150px;max-height:150px\" class="bootstrap-wysiwyg form-control" >%s</div>' return HTMLString(html % (html_params(name=field.name, **kwargs), escape(text_type(field._value())),escape(text_type(field._value()))))
def __call__(self, field, **kwargs): kwargs.setdefault('id', field.id) html='' html+='<div class=\"btn-toolbar\" data-role=\"editor-toolbar\" data-target=\"#editor\">' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn dropdown-toggle\" data-toggle=\"dropdown\" title=\"Font\"><i class=\"icon-font\"></i><b class=\"caret\"></b></a>' html+=' <ul class=\"dropdown-menu\">' html+=' </ul>' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn dropdown-toggle\" data-toggle=\"dropdown\" title=\"Font Size\"><i class=\"icon-text-height\"></i> <b class=\"caret\"></b></a>' html+=' <ul class=\"dropdown-menu\">' html+=' <li><a data-edit=\"fontSize 5\"><font size=\"5\">Huge</font></a></li>' html+=' <li><a data-edit=\"fontSize 3\"><font size=\"3\">Normal</font></a></li>' html+=' <li><a data-edit=\"fontSize 1\"><font size=\"1\">Small</font></a></li>' html+=' </ul>' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn\" data-edit=\"bold\" title=\"Bold (Ctrl/Cmd+B)\"><i class=\"icon-bold\"></i></a>' html+=' <a class=\"btn\" data-edit=\"italic\" title=\"Italic (Ctrl/Cmd+I)\"><i class=\"icon-italic\"></i></a>' html+=' <a class=\"btn\" data-edit=\"strikethrough\" title=\"Strikethrough\"><i class=\"icon-strikethrough\"></i></a>' html+=' <a class=\"btn\" data-edit=\"underline\" title=\"Underline (Ctrl/Cmd+U)\"><i class=\"icon-underline\"></i></a>' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn\" data-edit=\"insertunorderedlist\" title=\"Bullet list\"><i class=\"icon-list-ul\"></i></a>' html+=' <a class=\"btn\" data-edit=\"insertorderedlist\" title=\"Number list\"><i class=\"icon-list-ol\"></i></a>' html+=' <a class=\"btn\" data-edit=\"outdent\" title=\"Reduce indent (Shift+Tab)\"><i class=\"icon-indent-left\"></i></a>' html+=' <a class=\"btn\" data-edit=\"indent\" title=\"Indent (Tab)\"><i class=\"icon-indent-right\"></i></a>' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn\" data-edit=\"justifyleft\" title=\"Align Left (Ctrl/Cmd+L)\"><i class=\"icon-align-left\"></i></a>' html+=' <a class=\"btn\" data-edit=\"justifycenter\" title=\"Center (Ctrl/Cmd+E)\"><i class=\"icon-align-center\"></i></a>' html+=' <a class=\"btn\" data-edit=\"justifyright\" title=\"Align Right (Ctrl/Cmd+R)\"><i class=\"icon-align-right\"></i></a>' html+=' <a class=\"btn\" data-edit=\"justifyfull\" title=\"Justify (Ctrl/Cmd+J)\"><i class=\"icon-align-justify\"></i></a>' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn dropdown-toggle\" data-toggle=\"dropdown\" title=\"Hyperlink\"><i class=\"icon-link\"></i></a>' html+=' <div class=\"dropdown-menu input-append\">' html+=' <input class=\"span2\" placeholder=\"URL\" type=\"text\" data-edit=\"createLink\"/>' html+=' <button class=\"btn\" type=\"button\">Add</button>' html+=' </div>' html+=' <a class=\"btn\" data-edit=\"unlink\" title=\"Remove Hyperlink\"><i class=\"icon-cut\"></i></a>' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn\" title=\"Insert picture (or just drag & drop)\" id=\"pictureBtn\"><i class=\"icon-picture\"></i></a>' html+=' <input type=\"file\" data-role=\"magic-overlay\" data-target=\"#pictureBtn\" data-edit=\"insertImage\" />' html+=' </div>' html+=' <div class=\"btn-group\">' html+=' <a class=\"btn\" data-edit=\"undo\" title=\"Undo (Ctrl/Cmd+Z)\"><i class=\"icon-undo\"></i></a>' html+=' <a class=\"btn\" data-edit=\"redo\" title=\"Redo (Ctrl/Cmd+Y)\"><i class=\"icon-repeat\"></i></a>' html+=' </div>' html+=' <input type=\"text\" data-edit=\"inserttext\" id=\"voiceBtn\" x-webkit-speech=\"\">' html+=' </div> ' html+=' <div id=\"editor\" %s>%s</div> ' return HTMLString(html % (html_params(name=field.name, **kwargs), escape(text_type(field._value()))))
def render_option(cls, value, label, selected, **kwargs): if value is True: # Handle the special case of a 'True' value. value = text_type(value) options = dict(kwargs, value=value) if selected: options['selected'] = True return HTMLString('<option %s>%s</option>' % (html_params(**options), escape(text_type(label), quote=False)))
def __call__(self, field, **kwargs): items = [] for val, label, selected in field.iter_choices(): args = { 'id': val, 'name': field.name, 'label': escape(label), 'selected': ' checked' if selected else '', } items.append(self.template % args) return Markup(''.join(items))
def __call__(self, field, **kwargs): kwargs.setdefault('type', 'input') # Allow passing title= or alternately use field.description title = kwargs.pop('title', field.description or '') params = html_params(title=title, **kwargs) html = '<div class="form-group has-feedback .has-feedback-left"> ' \ '<input type="text" class="form-control" placeholder="Search" %s>%s' \ '<i class="class="glyphicon glyphicon-user form-control-feedback""></i>' \ '</div>' return HTMLString(html % (params, escape(field.label.text)))
def __call__(self, field, **kwargs): items = [] for val, label, selected in field.iter_choices(): args = { 'id': val, 'name': field.name, 'label': escape(label), 'selected': ' checked' if selected else '', } items.append(self.template % args) return HTMLString(''.join(items))
def render_option(cls, value, label, selected, disabled, **kwargs): if value is True: # Handle the special case of a 'True' value. value = text_type(value) options = dict(kwargs, value=value) if selected: options['selected'] = True # if disabled: # options['hidden'] = True return Markup('<option %s>%s</option>' % (html_params(**options), escape(label)))
def __call__(self, field, **kwargs): # create the widget of the wtforms c = kwargs.pop('class', '') or kwargs.pop('class_', '') kwargs['class'] = u'%s %s' % ('wangEditor', c) kwargs.setdefault('id', field.id) if 'required' not in kwargs and 'required' in getattr( field, 'flags', []): kwargs['required'] = True editor_id = field.name + '_editor' return HTMLString( '<div id={id}></div><input hidden=true %s value="%s"></input>'. format(id=editor_id) % (html_params(name=field.name, **kwargs), escape(text_type(field._value()), quote=False)) ) # div is the editor, input will get the content from div by onchange callback in js code
def __call__(self, field, **kwargs): kwargs.setdefault('id', field.id) return HTMLString('<textarea rows="10" cols="100" ' '%s>%s</textarea>' % ( html_params(name=field.name, **kwargs), escape(text_type(field._value()))))