[web2py] Re: Custom Style of a textarea.

2013-10-07 Thread Ykä Marjanen
Glad to help back, as I've gotten so much help from here.

If you like to have a more generic code to add your classes to the form 
objects, you can use the code below. It will add a new class to all 
elements while keeping the web2py classes. I think you could even add this 
to the layout with try-statement, so anytime you use any form, it would 
include new classes.

!-- Additing bootstrap 3 classes to web2py form--
{{for element in form.elements():}}
{{if element['_class']:}}
{{element['_class'] = str(element['_class']) +  form-control}}
{{else:}}
{{element['_class'] = 'form-control'}}
{{pass}}
{{pass}}

Ykä

On Sunday, October 6, 2013 10:31:19 PM UTC+3, Francisco García wrote:

 Hello Ykä and Paolo,

 Your answers are very useful for me. The problem is solved.
 All I needed was this sentence:

 form.custom.widget.FIELD['_class'] = 'text myclass'}

 Thank you for your fast answer.
 Regards.


 El sábado, 5 de octubre de 2013 09:24:59 UTC+2, Ykä Marjanen escribió:

 Hi Francisco,

 happy to help you, as I've gone a 4 day intensive bootstrap 3 integration 
 to web2py and learned a lot about customizing the views and forms. This 
 might not be the best (or only) solution, but has worked well for me:

 - Web2py form includes classes based on their type, which I recommend to 
 keep, if you want any added web2py functionality.
 - You need to use custom form style (form.custom.begin) and then 
 manipulate each widget separately (or all of them in a for loop)

 Here's my form code in a view (controller is not modified). In this form 
 I have added form-control class of bootstrap 3 and kept the original 
 class as well. For textarea you can do 
 form.custom.widget.textfield['_rows'] = 3 if you want to make a smaller 
 textarea.

 
 form action= enctype=multipart/form-data method=post role=form
 div class=form-group
 {{form.custom.widget.campaign['_class'] = 
 'generic-widget form-control'}}
 {{form.custom.widget.topic['_class'] = 'string 
 form-control'}}
 {{form.custom.widget.topic['_placeholder'] = 'Idea 
 topic'}}
 {{form.custom.widget.description['_class'] = 'text 
 form-control'}}
 {{form.custom.widget.description['_placeholder'] = 
 'Idea description'}}
 div class=form-group
 label for=exampleSelectSelect a 
 campaign/label
 {{=form.custom.widget.campaign}}
 /div
 div class=form-group
 label for=exampleInputTopicInput idea topic 
 and description/label
 {{=form.custom.widget.topic}}
 /div
 div class=form-group
 {{=form.custom.widget.description}}
 /div
 button type=submit class=btn btn-primarySubmit 
 your idea/button
 /div
 {{=form.custom.end}}

 

 Ykä

 On Friday, October 4, 2013 8:14:33 PM UTC+3, Francisco García wrote:

 Hello all,

 I am loading a form from a database table, with CRUD or SQLFORM (It is 
 the same for me).
 This form contains text fields and textarea fields between others.

 Now, I need to change in the views the class of all textareas,  from 
 class=text  to class=myclass
 How can I do this from controllers or views?   (I can't edit any css 
 file).

 I am trying with form.custom.widget  but I can't change it.
 I'm not sure if it is something simple, or it is impossible to do this 
 way.


 Thank you in advance.
 Regards,
 Francisco



-- 
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/groups/opt_out.


[web2py] Re: Custom Style of a textarea.

2013-10-07 Thread Anthony
There are multiple ways to handle this, including Javascript on the client 
side, manipulation of form.custom.widget, the web2py server-side DOM, and 
custom widgets. Note, when adding a class to an existing element on the 
server side, you can use the .add_class method, which intelligently handles 
cases where there is already an existing class.

At the form level, you can use the server-side DOM:

form.elements('textarea', replace=lambda el: el.add_class('form-control'))

The above affects only this particular form.

Another option is to create a custom widget, which works at the table level 
and therefore affects all forms based on the table:

def text_widget(field, value, text_class='form-control'):
return SQLFORM.widgets.text.widget(field, value).add_class(text_class)

db.define_table('mytable',
Field('myfield', 'text', widget=text_widget))

Finally, you could monkey patch the text widget directly, which would 
affect all text fields in all tables:

SQLFORM.widgets.text._class = 'text form-control'

Anthony

On Monday, October 7, 2013 6:32:53 AM UTC-4, Ykä Marjanen wrote:

 Glad to help back, as I've gotten so much help from here.

 If you like to have a more generic code to add your classes to the form 
 objects, you can use the code below. It will add a new class to all 
 elements while keeping the web2py classes. I think you could even add this 
 to the layout with try-statement, so anytime you use any form, it would 
 include new classes.

 !-- Additing bootstrap 3 classes to web2py form--
 {{for element in form.elements():}}
 {{if element['_class']:}}
 {{element['_class'] = str(element['_class']) +  form-control}}
 {{else:}}
 {{element['_class'] = 'form-control'}}
 {{pass}}
 {{pass}}

 Ykä

 On Sunday, October 6, 2013 10:31:19 PM UTC+3, Francisco García wrote:

 Hello Ykä and Paolo,

 Your answers are very useful for me. The problem is solved.
 All I needed was this sentence:

 form.custom.widget.FIELD['_class'] = 'text myclass'}

 Thank you for your fast answer.
 Regards.


 El sábado, 5 de octubre de 2013 09:24:59 UTC+2, Ykä Marjanen escribió:

 Hi Francisco,

 happy to help you, as I've gone a 4 day intensive bootstrap 3 
 integration to web2py and learned a lot about customizing the views and 
 forms. This might not be the best (or only) solution, but has worked well 
 for me:

 - Web2py form includes classes based on their type, which I recommend to 
 keep, if you want any added web2py functionality.
 - You need to use custom form style (form.custom.begin) and then 
 manipulate each widget separately (or all of them in a for loop)

 Here's my form code in a view (controller is not modified). In this form 
 I have added form-control class of bootstrap 3 and kept the original 
 class as well. For textarea you can do 
 form.custom.widget.textfield['_rows'] = 3 if you want to make a smaller 
 textarea.

 
 form action= enctype=multipart/form-data method=post role=form
 div class=form-group
 {{form.custom.widget.campaign['_class'] = 
 'generic-widget form-control'}}
 {{form.custom.widget.topic['_class'] = 'string 
 form-control'}}
 {{form.custom.widget.topic['_placeholder'] = 'Idea 
 topic'}}
 {{form.custom.widget.description['_class'] = 'text 
 form-control'}}
 {{form.custom.widget.description['_placeholder'] = 
 'Idea description'}}
 div class=form-group
 label for=exampleSelectSelect a 
 campaign/label
 {{=form.custom.widget.campaign}}
 /div
 div class=form-group
 label for=exampleInputTopicInput idea topic 
 and description/label
 {{=form.custom.widget.topic}}
 /div
 div class=form-group
 {{=form.custom.widget.description}}
 /div
 button type=submit class=btn btn-primarySubmit 
 your idea/button
 /div
 {{=form.custom.end}}

 

 Ykä

 On Friday, October 4, 2013 8:14:33 PM UTC+3, Francisco García wrote:

 Hello all,

 I am loading a form from a database table, with CRUD or SQLFORM (It is 
 the same for me).
 This form contains text fields and textarea fields between others.

 Now, I need to change in the views the class of all textareas,  from 
 class=text  to class=myclass
 How can I do this from controllers or views?   (I can't edit any css 
 file).

 I am trying with form.custom.widget  but I can't change it.
 I'm not sure if it is something simple, or it is impossible to do this 
 way.


 Thank you in advance.
 Regards,
 Francisco



-- 
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 

[web2py] Re: Custom Style of a textarea.

2013-10-06 Thread Francisco García
Hello Ykä and Paolo,

Your answers are very useful for me. The problem is solved.
All I needed was this sentence:

form.custom.widget.FIELD['_class'] = 'text myclass'}

Thank you for your fast answer.
Regards.


El sábado, 5 de octubre de 2013 09:24:59 UTC+2, Ykä Marjanen escribió:

 Hi Francisco,

 happy to help you, as I've gone a 4 day intensive bootstrap 3 integration 
 to web2py and learned a lot about customizing the views and forms. This 
 might not be the best (or only) solution, but has worked well for me:

 - Web2py form includes classes based on their type, which I recommend to 
 keep, if you want any added web2py functionality.
 - You need to use custom form style (form.custom.begin) and then 
 manipulate each widget separately (or all of them in a for loop)

 Here's my form code in a view (controller is not modified). In this form I 
 have added form-control class of bootstrap 3 and kept the original class 
 as well. For textarea you can do form.custom.widget.textfield['_rows'] = 
 3 if you want to make a smaller textarea.

 
 form action= enctype=multipart/form-data method=post role=form
 div class=form-group
 {{form.custom.widget.campaign['_class'] = 
 'generic-widget form-control'}}
 {{form.custom.widget.topic['_class'] = 'string 
 form-control'}}
 {{form.custom.widget.topic['_placeholder'] = 'Idea 
 topic'}}
 {{form.custom.widget.description['_class'] = 'text 
 form-control'}}
 {{form.custom.widget.description['_placeholder'] = 
 'Idea description'}}
 div class=form-group
 label for=exampleSelectSelect a 
 campaign/label
 {{=form.custom.widget.campaign}}
 /div
 div class=form-group
 label for=exampleInputTopicInput idea topic 
 and description/label
 {{=form.custom.widget.topic}}
 /div
 div class=form-group
 {{=form.custom.widget.description}}
 /div
 button type=submit class=btn btn-primarySubmit 
 your idea/button
 /div
 {{=form.custom.end}}

 

 Ykä

 On Friday, October 4, 2013 8:14:33 PM UTC+3, Francisco García wrote:

 Hello all,

 I am loading a form from a database table, with CRUD or SQLFORM (It is 
 the same for me).
 This form contains text fields and textarea fields between others.

 Now, I need to change in the views the class of all textareas,  from 
 class=text  to class=myclass
 How can I do this from controllers or views?   (I can't edit any css 
 file).

 I am trying with form.custom.widget  but I can't change it.
 I'm not sure if it is something simple, or it is impossible to do this 
 way.


 Thank you in advance.
 Regards,
 Francisco



-- 
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/groups/opt_out.


[web2py] Re: Custom Style of a textarea.

2013-10-05 Thread Ykä Marjanen
Hi Francisco,

happy to help you, as I've gone a 4 day intensive bootstrap 3 integration 
to web2py and learned a lot about customizing the views and forms. This 
might not be the best (or only) solution, but has worked well for me:

- Web2py form includes classes based on their type, which I recommend to 
keep, if you want any added web2py functionality.
- You need to use custom form style (form.custom.begin) and then manipulate 
each widget separately (or all of them in a for loop)

Here's my form code in a view (controller is not modified). In this form I 
have added form-control class of bootstrap 3 and kept the original class 
as well. For textarea you can do form.custom.widget.textfield['_rows'] = 
3 if you want to make a smaller textarea.


form action= enctype=multipart/form-data method=post role=form
div class=form-group
{{form.custom.widget.campaign['_class'] = 
'generic-widget form-control'}}
{{form.custom.widget.topic['_class'] = 'string 
form-control'}}
{{form.custom.widget.topic['_placeholder'] = 'Idea 
topic'}}
{{form.custom.widget.description['_class'] = 'text 
form-control'}}
{{form.custom.widget.description['_placeholder'] = 
'Idea description'}}
div class=form-group
label for=exampleSelectSelect a campaign/label
{{=form.custom.widget.campaign}}
/div
div class=form-group
label for=exampleInputTopicInput idea topic and 
description/label
{{=form.custom.widget.topic}}
/div
div class=form-group
{{=form.custom.widget.description}}
/div
button type=submit class=btn btn-primarySubmit 
your idea/button
/div
{{=form.custom.end}}



Ykä

On Friday, October 4, 2013 8:14:33 PM UTC+3, Francisco García wrote:

 Hello all,

 I am loading a form from a database table, with CRUD or SQLFORM (It is the 
 same for me).
 This form contains text fields and textarea fields between others.

 Now, I need to change in the views the class of all textareas,  from class
 =text  to class=myclass
 How can I do this from controllers or views?   (I can't edit any css file).

 I am trying with form.custom.widget  but I can't change it.
 I'm not sure if it is something simple, or it is impossible to do this way.


 Thank you in advance.
 Regards,
 Francisco


-- 
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/groups/opt_out.


[web2py] Re: Custom Style of a textarea.

2013-10-05 Thread Paolo Caruccio
By using server-side DOM and parsing ( see the book 
http://www.web2py.com/books/default/chapter/29/05/the-views?search=DOM#Server-side-DOM-and-parsing
 ) 
you could collect all textareas and after make a loop on the collection to 
change the css class. For example in your controller

all_textareas = the_form.elements('textarea.text')

for a_textarea in all_textareas:
a_textarea['_class'] = myclass



Il giorno venerdì 4 ottobre 2013 19:14:33 UTC+2, Francisco García ha 
scritto:

 Hello all,

 I am loading a form from a database table, with CRUD or SQLFORM (It is the 
 same for me).
 This form contains text fields and textarea fields between others.

 Now, I need to change in the views the class of all textareas,  from class
 =text  to class=myclass
 How can I do this from controllers or views?   (I can't edit any css file).

 I am trying with form.custom.widget  but I can't change it.
 I'm not sure if it is something simple, or it is impossible to do this way.


 Thank you in advance.
 Regards,
 Francisco


-- 
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/groups/opt_out.