we should really abandon this format and come with something more user
friendly
On Thursday, 19 May 2016 05:42:56 UTC-5, Mirek Zvolský wrote:
>
> For me was problem with formstyle=bootstrap3_inline that each field is to
> much high: just first 5-7 items (from lets say ~20 form fields) were
> visible on the standard monitor.
>
> Now I use this as clone of the inline style:
>
> Problem is the movement of the label (with control-label css class) to
> much to down.
> In next code I have 'control-label-sm' as default css class, however this
> class I haven't defined yet. The labels display well but left justified. At
> this time I fix this issue with JavaScript:
> $('label').css('text-align', 'right');
>
> I think it will not work from private/appconfig.ini (because it is not
> registered formstyle in gluon/sqlhtml.py) and it the parameter formstyle in
> form() or SQLFORM.grid() must be used:
> formstyle = formstyle_bootstrap3_compact_factory()
>
> So if somebody is interested, he/she can try it.
> But it is not to much tested yet.
>
> def formstyle_bootstrap3_compact_factory(col_label_size=2, col_help_size=6,
> input_class='input-sm',
> control_label='control-label-sm'):
> """formstyle = formstyle_bootstrap3_compact_factory()
> """
> def _inner(form, fields):
> form.add_class('form-horizontal')
> label_col_class = "col-sm-%d" % col_label_size
> col_class = "col-sm-%d" % (12 - col_label_size - col_help_size)
> offset_class = "col-sm-offset-%d" % col_label_size
> help_class = "col-sm-%d" % col_help_size
> parent = CAT()
> for id, label, controls, help in fields:
> # wrappers
> _help = DIV(SPAN(help, _class='help-block'), _class="%s" %
> (help_class))
> # embed _help into _controls
> _controls = DIV(controls, _class="%s" % (col_class))
> if isinstance(controls, INPUT):
> if controls['_type'] == 'submit':
> controls.add_class('btn btn-primary')
> _controls = DIV(controls, _class="%s %s" % (col_class,
> offset_class))
> if controls['_type'] == 'button':
> controls.add_class('btn btn-default')
> elif controls['_type'] == 'file':
> controls.add_class('input-file')
> controls.add_class(input_class)
> elif controls['_type'] in ('text', 'password'):
> controls.add_class('form-control')
> controls.add_class(input_class)
> elif controls['_type'] == 'checkbox':
> label['_for'] = None
> label.insert(0, controls)
> label.insert(1, ' ')
> _controls = DIV(DIV(label, _class="checkbox"),
> _class="%s %s" % (offset_class,
> col_class))
> label = ''
> elif isinstance(controls, (SELECT, TEXTAREA)):
> controls.add_class('form-control')
> controls.add_class(input_class)
>
> elif isinstance(controls, SPAN):
> _controls = P(controls.components,
> _class="form-control-static %s" % col_class)
> elif isinstance(controls, UL):
> for e in controls.elements("input"):
> e.add_class('form-control')
> if isinstance(label, LABEL):
> label['_class'] = add_class(label.get('_class'), '%s %s' %
> (control_label, label_col_class))
>
> parent.append(DIV(label, _controls, _help, _class='row', _id=id))
> return DIV(parent, _class='form-group')
> return _inner
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.