Thank you! Fixed in trunk On Tuesday, 9 February 2016 14:25:52 UTC-6, SanDiego wrote: > > When used with buttons as follows, SQL form misses the offset causing the > buttons misplaced towards left (see buttons-misaligned.png file). > > buttons = [ > TAG.button(T('Save'),_type="submit",_value="save",_class="btn > btn-primary"), > TAG.button(T('Cancel'),_type="button", _class="btn btn-cancel > pull-right",_onClick = "parent.location='%s' " % URL('index')) > ] > > form = SQLFORM(db.person, buttons= buttons) > > As a workaround, inside gluon/sqlhtml.py file I modified the following > line > _controls = DIV(controls, _help, _class=col_class) > with > _controls = DIV(controls, _help, _class="%s %s" % > (offset_class, col_class)) > Then the form looks as expected (see "buttons-aligned.png" file). I am not > sure whether my fix has any side-effects though. > > As a reference this is the whole function: > def formstyle_bootstrap3_inline_factory(col_label_size=3): > """ bootstrap 3 horizontal form layout > > Note: > Experimental! > """ > 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) > offset_class = "col-sm-offset-%d" % col_label_size > parent = CAT() > for id, label, controls, help in fields: > # wrappers > _help = SPAN(help, _class='help-block') > # embed _help into _controls > # SALIH changed the following line > # _controls = DIV(controls, _help, _class=col_class) > _controls = DIV(controls, _help, _class="%s %s" % > (offset_class, 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') > elif controls['_type'] in ('text', 'password'): > controls.add_class('form-control') > elif controls['_type'] == 'checkbox': > label['_for'] = None > label.insert(0, controls) > _controls = DIV(DIV(label, _help, _class="checkbox"), > _class="%s %s" % (offset_class, > col_class)) > label = '' > elif isinstance(controls, (SELECT, TEXTAREA)): > controls.add_class('form-control') > > 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') > elif controls is None or isinstance(controls, basestring): > _controls = P(controls, _class="form-control-static %s" % > col_class) > if isinstance(label, LABEL): > label['_class'] = > add_class(label.get('_class'),'control-label %s' % label_col_class) > > parent.append(DIV(label, _controls, _class='form-group', > _id=id)) > return parent > return _inner > > I wanted to share it and your feedback from fellow developers. >
-- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.