Merge pull request #1876 from leonelcamara/bs4checkboxes
Update bootstrap from a v4-alpha version to the latest release
This commit is contained in:
@@ -13,14 +13,17 @@
|
|||||||
'**%(items)s** items, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** items, **%(bytes)s** %%{byte(bytes)}',
|
'**%(items)s** items, **%(bytes)s** %%{byte(bytes)}': '**%(items)s** items, **%(bytes)s** %%{byte(bytes)}',
|
||||||
'**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)',
|
'**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '**not available** (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)',
|
||||||
'?': '?',
|
'?': '?',
|
||||||
|
'@markmin\x01An error occured, please [[reload %s]] the page': 'An error occured, please [[reload %s]] the page',
|
||||||
|
'@markmin\x01Number of entries: **%s**': 'Number of entries: **%s**',
|
||||||
'``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)',
|
'``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)': '``**not available**``:red (requires the Python [[guppy http://pypi.python.org/pypi/guppy/ popup]] library)',
|
||||||
'About': 'About',
|
'About': 'Sobre',
|
||||||
'Access Control': 'Controle de acesso',
|
'Access Control': 'Controle de acesso',
|
||||||
'admin': 'administrador',
|
'admin': 'administrador',
|
||||||
'Administrative Interface': 'Interface Administrativa',
|
'Administrative Interface': 'Interface Administrativa',
|
||||||
'Administrative interface': 'Painel Administrativo',
|
'Administrative interface': 'Painel Administrativo',
|
||||||
'Ajax Recipes': 'Formulas Ajax',
|
'Ajax Recipes': 'Formulas Ajax',
|
||||||
'An error occured, please [[reload %s]] the page': 'Ocorreu um erro, por favor [[recarregue %s]] a página',
|
'An error occured, please [[reload %s]] the page': 'Ocorreu um erro, por favor [[recarregue %s]] a página',
|
||||||
|
'API Example': 'API Example',
|
||||||
'appadmin is disabled because insecure channel': 'appadmin está desactivada pois o canal é inseguro',
|
'appadmin is disabled because insecure channel': 'appadmin está desactivada pois o canal é inseguro',
|
||||||
'Are you sure you want to delete this object?': 'Tem a certeza que quer deletar este objeto?',
|
'Are you sure you want to delete this object?': 'Tem a certeza que quer deletar este objeto?',
|
||||||
'Author Reference Auth User': 'Author Reference Auth User',
|
'Author Reference Auth User': 'Author Reference Auth User',
|
||||||
@@ -73,27 +76,31 @@
|
|||||||
'Disk Cache Keys': 'Disk Cache Keys',
|
'Disk Cache Keys': 'Disk Cache Keys',
|
||||||
'Disk Cleared': 'Disk Cleared',
|
'Disk Cleared': 'Disk Cleared',
|
||||||
'DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
|
'DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
|
||||||
'Documentation': 'Documentation',
|
'Documentation': 'Documentação',
|
||||||
"Don't know what to do?": "Don't know what to do?",
|
"Don't know what to do?": 'Não sabe o que fazer?',
|
||||||
'done!': 'concluído!',
|
'done!': 'concluído!',
|
||||||
'Download': 'Download',
|
'Download': 'Download',
|
||||||
|
'E-mail': 'E-mail',
|
||||||
'Edit': 'Editar',
|
'Edit': 'Editar',
|
||||||
'edit category': 'edit category',
|
'edit category': 'editar categoria',
|
||||||
'edit comment': 'edit comment',
|
'edit comment': 'editar comentário',
|
||||||
'Edit current record': 'Edição de registo currente',
|
'Edit current record': 'Edição de registo currente',
|
||||||
'edit post': 'edit post',
|
'edit post': 'editar post',
|
||||||
'edit profile': 'Editar perfil',
|
'edit profile': 'Editar perfil',
|
||||||
'Edit This App': 'Edite esta aplicação',
|
'Edit This App': 'Edite esta aplicação',
|
||||||
'Email': 'Email',
|
'Email': 'Email',
|
||||||
'Email and SMS': 'Email and SMS',
|
'Email and SMS': 'Email e SMS',
|
||||||
'Errors': 'Errors',
|
'Enter an integer between %(min)g and %(max)g': 'Enter an integer between %(min)g and %(max)g',
|
||||||
|
'Errors': 'Erros',
|
||||||
'export as csv file': 'exportar como ficheiro csv',
|
'export as csv file': 'exportar como ficheiro csv',
|
||||||
'FAQ': 'FAQ',
|
'FAQ': 'FAQ',
|
||||||
|
'First name': 'First name',
|
||||||
'First Name': 'First Name',
|
'First Name': 'First Name',
|
||||||
'For %s #%s': 'For %s #%s',
|
'For %s #%s': 'For %s #%s',
|
||||||
'Forms and Validators': 'Forms and Validators',
|
'Forms and Validators': 'Forms and Validators',
|
||||||
'Free Applications': 'Free Applications',
|
'Free Applications': 'Free Applications',
|
||||||
'Graph Model': 'Graph Model',
|
'Graph Model': 'Graph Model',
|
||||||
|
'Grid Example': 'Grid Example',
|
||||||
'Groups': 'Groups',
|
'Groups': 'Groups',
|
||||||
'Hello World': 'Olá Mundo',
|
'Hello World': 'Olá Mundo',
|
||||||
'Helping web2py': 'Helping web2py',
|
'Helping web2py': 'Helping web2py',
|
||||||
@@ -106,10 +113,11 @@
|
|||||||
'insert new': 'inserir novo',
|
'insert new': 'inserir novo',
|
||||||
'insert new %s': 'inserir novo %s',
|
'insert new %s': 'inserir novo %s',
|
||||||
'Internal State': 'Estado interno',
|
'Internal State': 'Estado interno',
|
||||||
'Introduction': 'Introduction',
|
'Introduction': 'Introdução',
|
||||||
'Invalid Query': 'Consulta Inválida',
|
'Invalid Query': 'Consulta Inválida',
|
||||||
'invalid request': 'Pedido Inválido',
|
'invalid request': 'Pedido Inválido',
|
||||||
'Key': 'Key',
|
'Key': 'Key',
|
||||||
|
'Last name': 'Last name',
|
||||||
'Last Name': 'Last Name',
|
'Last Name': 'Last Name',
|
||||||
'Layout': 'Esboço',
|
'Layout': 'Esboço',
|
||||||
'Layout Plugins': 'Layout Plugins',
|
'Layout Plugins': 'Layout Plugins',
|
||||||
@@ -117,8 +125,9 @@
|
|||||||
'Live Chat': 'Live Chat',
|
'Live Chat': 'Live Chat',
|
||||||
'Log In': 'Log In',
|
'Log In': 'Log In',
|
||||||
'login': 'login',
|
'login': 'login',
|
||||||
|
'Login': 'Login',
|
||||||
'logout': 'logout',
|
'logout': 'logout',
|
||||||
'Lost Password': 'Lost Password',
|
'Lost Password': 'Perdeu a Senha',
|
||||||
'Main Menu': 'Menu Principal',
|
'Main Menu': 'Menu Principal',
|
||||||
'Manage %(action)s': 'Manage %(action)s',
|
'Manage %(action)s': 'Manage %(action)s',
|
||||||
'Manage Access Control': 'Manage Access Control',
|
'Manage Access Control': 'Manage Access Control',
|
||||||
@@ -128,7 +137,7 @@
|
|||||||
'Modified By': 'Modified By',
|
'Modified By': 'Modified By',
|
||||||
'Modified On': 'Modified On',
|
'Modified On': 'Modified On',
|
||||||
'My Sites': 'My Sites',
|
'My Sites': 'My Sites',
|
||||||
'Name': 'Name',
|
'Name': 'Nome',
|
||||||
'New Record': 'Novo Registo',
|
'New Record': 'Novo Registo',
|
||||||
'new record inserted': 'novo registo inserido',
|
'new record inserted': 'novo registo inserido',
|
||||||
'next %s rows': 'next %s rows',
|
'next %s rows': 'next %s rows',
|
||||||
@@ -136,7 +145,7 @@
|
|||||||
'No Data': 'No Data',
|
'No Data': 'No Data',
|
||||||
'No databases in this application': 'Não há bases de dados nesta aplicação',
|
'No databases in this application': 'Não há bases de dados nesta aplicação',
|
||||||
'Number of entries: **%s**': 'Number of entries: **%s**',
|
'Number of entries: **%s**': 'Number of entries: **%s**',
|
||||||
'Online book': 'Online book',
|
'Online book': 'Livro Online',
|
||||||
'Online examples': 'Exemplos online',
|
'Online examples': 'Exemplos online',
|
||||||
'or import from csv file': 'ou importe a partir de ficheiro csv',
|
'or import from csv file': 'ou importe a partir de ficheiro csv',
|
||||||
'Other Plugins': 'Other Plugins',
|
'Other Plugins': 'Other Plugins',
|
||||||
@@ -160,13 +169,17 @@
|
|||||||
'RAM Cache Keys': 'RAM Cache Keys',
|
'RAM Cache Keys': 'RAM Cache Keys',
|
||||||
'Ram Cleared': 'Ram Cleared',
|
'Ram Cleared': 'Ram Cleared',
|
||||||
'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
|
'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.': 'RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.',
|
||||||
'Recipes': 'Recipes',
|
'Recipes': 'Receitas',
|
||||||
'Record': 'registo',
|
'Record': 'registo',
|
||||||
'record does not exist': 'registo inexistente',
|
'record does not exist': 'registo inexistente',
|
||||||
'Record id': 'id de registo',
|
'Record id': 'id de registo',
|
||||||
'Register': 'Register',
|
'Register': 'Registar',
|
||||||
'register': 'register',
|
'register': 'registar',
|
||||||
|
'Registration identifier': 'Registration identifier',
|
||||||
|
'Registration key': 'Registration key',
|
||||||
|
'Remember me (for 30 days)': 'Lembrar de mim (por 30 dias)',
|
||||||
'Replyto Reference Post': 'Replyto Reference Post',
|
'Replyto Reference Post': 'Replyto Reference Post',
|
||||||
|
'Reset Password key': 'Reset Password key',
|
||||||
'Role': 'Role',
|
'Role': 'Role',
|
||||||
'Roles': 'Roles',
|
'Roles': 'Roles',
|
||||||
'Rows in Table': 'Linhas numa tabela',
|
'Rows in Table': 'Linhas numa tabela',
|
||||||
@@ -183,12 +196,14 @@
|
|||||||
'show category': 'show category',
|
'show category': 'show category',
|
||||||
'show comment': 'show comment',
|
'show comment': 'show comment',
|
||||||
'show post': 'show post',
|
'show post': 'show post',
|
||||||
'Sign Up': 'Sign Up',
|
'Sign Up': 'Registar-se',
|
||||||
|
'Sign up': 'Registar-se',
|
||||||
'Size of cache:': 'Size of cache:',
|
'Size of cache:': 'Size of cache:',
|
||||||
'state': 'estado',
|
'state': 'estado',
|
||||||
'Statistics': 'Statistics',
|
'Statistics': 'Statistics',
|
||||||
'Stylesheet': 'Folha de estilo',
|
'Stylesheet': 'Folha de estilo',
|
||||||
'submit': 'submit',
|
'submit': 'submeter',
|
||||||
|
'Submit': 'Submit',
|
||||||
'Support': 'Support',
|
'Support': 'Support',
|
||||||
'Sure you want to delete this object?': 'Tem a certeza que deseja eliminar este objecto?',
|
'Sure you want to delete this object?': 'Tem a certeza que deseja eliminar este objecto?',
|
||||||
'Table': 'tabela',
|
'Table': 'tabela',
|
||||||
@@ -212,9 +227,10 @@
|
|||||||
'Welcome %s': 'Bem-vindo(a) %s',
|
'Welcome %s': 'Bem-vindo(a) %s',
|
||||||
'Welcome to Gluonization': 'Bem vindo ao Web2py',
|
'Welcome to Gluonization': 'Bem vindo ao Web2py',
|
||||||
'Welcome to web2py': 'Bem-vindo(a) ao web2py',
|
'Welcome to web2py': 'Bem-vindo(a) ao web2py',
|
||||||
'Welcome to web2py!': 'Welcome to web2py!',
|
'Welcome to web2py!': 'Bem-vindo(a) ao web2py!',
|
||||||
'When': 'When',
|
'When': 'When',
|
||||||
'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s',
|
'Which called the function %s located in the file %s': 'Which called the function %s located in the file %s',
|
||||||
|
'Wiki Example': 'Wiki Example',
|
||||||
'Working...': 'Working...',
|
'Working...': 'Working...',
|
||||||
'You are successfully running web2py': 'You are successfully running web2py',
|
'You are successfully running web2py': 'You are successfully running web2py',
|
||||||
'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs',
|
'You can modify this application and adapt it to your needs': 'You can modify this application and adapt it to your needs',
|
||||||
|
|||||||
+4
-4
File diff suppressed because one or more lines are too long
@@ -1,7 +1,4 @@
|
|||||||
ul.navbar-nav.navbar-right {
|
|
||||||
position: absolute;
|
|
||||||
right: 100px;
|
|
||||||
}
|
|
||||||
label, th {
|
label, th {
|
||||||
font-weigth: bold;
|
font-weigth: bold;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -318,9 +315,6 @@ td.w2p_fc,
|
|||||||
.web2py_grid table {
|
.web2py_grid table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
input[type=checkbox], input[type=radio] {
|
|
||||||
margin: 4px 4px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* for backward compatbility with pre-font-awesome */
|
/* for backward compatbility with pre-font-awesome */
|
||||||
.icon.plus,.icon.arrowleft,.icon.download,.icon.trash,.icon.pen,.icon.arrowright,.icon.magnifier {
|
.icon.plus,.icon.arrowleft,.icon.download,.icon.trash,.icon.pen,.icon.arrowright,.icon.magnifier {
|
||||||
@@ -337,4 +331,4 @@ input[type=checkbox], input[type=radio] {
|
|||||||
.icon.trash:before { content: "\f1f8";}
|
.icon.trash:before { content: "\f1f8";}
|
||||||
.icon.pen:before { content: "\f040";}
|
.icon.pen:before { content: "\f040";}
|
||||||
.icon.arrowright:before { content: "\f061";}
|
.icon.arrowright:before { content: "\f061";}
|
||||||
.icon.magnifier:before { content: "\f002";}
|
.icon.magnifier:before { content: "\f002";}
|
||||||
|
|||||||
+5
-6
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -10,10 +10,10 @@
|
|||||||
{{
|
{{
|
||||||
if request.args(0)=='login':
|
if request.args(0)=='login':
|
||||||
if not 'register' in auth.settings.actions_disabled:
|
if not 'register' in auth.settings.actions_disabled:
|
||||||
form.add_button(T('Sign Up'),URL(args='register', vars={'_next': request.vars._next} if request.vars._next else None),_class='btn btn-default btn-secondary')
|
form.add_button(T('Sign Up'),URL(args='register', vars={'_next': request.vars._next} if request.vars._next else None),_class='btn btn-default btn-secondary ml-1')
|
||||||
pass
|
pass
|
||||||
if not 'request_reset_password' in auth.settings.actions_disabled:
|
if not 'request_reset_password' in auth.settings.actions_disabled:
|
||||||
form.add_button(T('Lost Password'),URL(args='request_reset_password'),_class='btn btn-default btn-secondary')
|
form.add_button(T('Lost Password'),URL(args='request_reset_password'),_class='btn btn-default btn-secondary ml-1')
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
=form
|
=form
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="w2p_flash alert alert-dismissable">{{=response.flash or ''}}</div>
|
<div class="w2p_flash alert alert-dismissable">{{=response.flash or ''}}</div>
|
||||||
<!-- Navbar ======================================= -->
|
<!-- Navbar ======================================= -->
|
||||||
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
|
<nav class="navbar navbar-expand-lg navbar-light bg-faded">
|
||||||
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||||
</form>
|
</form>
|
||||||
{{if 'auth' in globals():}}
|
{{if 'auth' in globals():}}
|
||||||
<ul class="navbar-nav navbar-right">
|
<ul class="navbar-nav ml-lg-auto"">
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
{{if auth.user:}}{{=auth.user.first_name}}{{else:}}LOGIN{{pass}}
|
{{if auth.user:}}{{=auth.user.first_name}}{{else:}}LOGIN{{pass}}
|
||||||
@@ -111,6 +111,7 @@
|
|||||||
</footer>
|
</footer>
|
||||||
{{end}}
|
{{end}}
|
||||||
<!-- The javascript =============================== -->
|
<!-- The javascript =============================== -->
|
||||||
|
<script src="{{=URL('static','js/popper.js')}}"></script>
|
||||||
<script src="{{=URL('static','js/bootstrap.min.js')}}"></script>
|
<script src="{{=URL('static','js/bootstrap.min.js')}}"></script>
|
||||||
<script src="{{=URL('static','js/web2py-bootstrap4.js')}}"></script>
|
<script src="{{=URL('static','js/web2py-bootstrap4.js')}}"></script>
|
||||||
{{block page_js}}{{end page_js}}
|
{{block page_js}}{{end page_js}}
|
||||||
|
|||||||
+12
-11
@@ -1106,14 +1106,16 @@ def formstyle_bootstrap4_stacked(form, fields):
|
|||||||
if controls['_type'] == 'button':
|
if controls['_type'] == 'button':
|
||||||
controls.add_class('btn btn-secondary')
|
controls.add_class('btn btn-secondary')
|
||||||
elif controls['_type'] == 'file':
|
elif controls['_type'] == 'file':
|
||||||
controls.add_class('input-file')
|
controls.add_class('form-control-file')
|
||||||
elif controls['_type'] in ('text', 'password'):
|
elif controls['_type'] in ('text', 'password'):
|
||||||
controls.add_class('form-control')
|
controls.add_class('form-control')
|
||||||
elif controls['_type'] == 'checkbox':
|
elif controls['_type'] == 'checkbox' or controls['_type'] == 'radio':
|
||||||
|
controls.add_class('form-check-input')
|
||||||
label['_for'] = None
|
label['_for'] = None
|
||||||
|
label.add_class('form-check-label')
|
||||||
label.insert(0, controls)
|
label.insert(0, controls)
|
||||||
label.insert(0, ' ')
|
label.insert(0, ' ')
|
||||||
_controls = DIV(label, _help, _class="checkbox")
|
_controls = DIV(label, _help, _class="form-check")
|
||||||
label = ''
|
label = ''
|
||||||
elif isinstance(controls, (SELECT, TEXTAREA)):
|
elif isinstance(controls, (SELECT, TEXTAREA)):
|
||||||
controls.add_class('form-control')
|
controls.add_class('form-control')
|
||||||
@@ -1142,7 +1144,6 @@ def formstyle_bootstrap4_inline_factory(col_label_size=3):
|
|||||||
Experimental!
|
Experimental!
|
||||||
"""
|
"""
|
||||||
def _inner(form, fields):
|
def _inner(form, fields):
|
||||||
form.add_class('form-horizontal')
|
|
||||||
label_col_class = "col-sm-%d" % col_label_size
|
label_col_class = "col-sm-%d" % col_label_size
|
||||||
col_class = "col-sm-%d" % (12 - col_label_size)
|
col_class = "col-sm-%d" % (12 - col_label_size)
|
||||||
offset_class = "col-sm-offset-%d" % col_label_size
|
offset_class = "col-sm-offset-%d" % col_label_size
|
||||||
@@ -1162,19 +1163,19 @@ def formstyle_bootstrap4_inline_factory(col_label_size=3):
|
|||||||
controls.add_class('input-file')
|
controls.add_class('input-file')
|
||||||
elif controls['_type'] in ('text', 'password'):
|
elif controls['_type'] in ('text', 'password'):
|
||||||
controls.add_class('form-control')
|
controls.add_class('form-control')
|
||||||
elif controls['_type'] == 'checkbox':
|
elif controls['_type'] == 'checkbox' or controls['_type'] == 'radio':
|
||||||
label['_for'] = None
|
controls.add_class('form-check-input')
|
||||||
|
label.add_class('form-check-label')
|
||||||
label.insert(0, controls)
|
label.insert(0, controls)
|
||||||
label.insert(1, ' ')
|
#label.insert(0, ' ')
|
||||||
_controls = DIV(DIV(label, _help, _class="checkbox"),
|
_controls = DIV(DIV(label, _help, _class="form-check"), _class="%s" % col_class)
|
||||||
_class="%s %s" % (offset_class, col_class))
|
label = DIV(_class="sm-hidden %s" % label_col_class)
|
||||||
label = ''
|
|
||||||
elif isinstance(controls, (SELECT, TEXTAREA)):
|
elif isinstance(controls, (SELECT, TEXTAREA)):
|
||||||
controls.add_class('form-control')
|
controls.add_class('form-control')
|
||||||
|
|
||||||
elif isinstance(controls, SPAN):
|
elif isinstance(controls, SPAN):
|
||||||
_controls = P(controls.components,
|
_controls = P(controls.components,
|
||||||
_class="form-control-static %s" % col_class)
|
_class="form-control-plaintext %s" % col_class)
|
||||||
elif isinstance(controls, UL):
|
elif isinstance(controls, UL):
|
||||||
for e in controls.elements("input"):
|
for e in controls.elements("input"):
|
||||||
e.add_class('form-control')
|
e.add_class('form-control')
|
||||||
|
|||||||
Reference in New Issue
Block a user