author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Wed, 03 Feb 2010 21:02:15 +0100 | |
changeset 4446 | a413fac5ff5e |
parent 4443 | 83ff2bb898a5 |
child 4465 | 18fb359f5c7a |
permissions | -rw-r--r-- |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
1 |
Form construction |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
2 |
------------------ |
4443
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
3 |
CubicWeb provides usual form/field/widget/renderer abstraction to provde |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
4 |
some generic building blocks which will greatly help you in building forms |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
5 |
properly integrated with |cubicweb| (coherent display, error handling, etc...) |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
6 |
|
4443
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
7 |
A form basically only hold a set of fields, and is bound to a renderer that is |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
8 |
responsible to layout them. Each field is bound to a widget that will be used |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
9 |
to fill in value(s) for that field. |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
10 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
11 |
The Field class and basic fields |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
12 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
13 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
14 |
.. autoclass: cubicweb.web.formfields.Field |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
15 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
16 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
17 |
Existing field types are: |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
18 |
|
4443
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
19 |
.. autoclass: cubicweb.web.formfields.StringField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
20 |
.. autoclass: cubicweb.web.formfields.PasswordField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
21 |
.. autoclass: cubicweb.web.formfields.RichTextField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
22 |
.. autoclass: cubicweb.web.formfields.FileField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
23 |
.. autoclass: cubicweb.web.formfields.EditableFileField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
24 |
.. autoclass: cubicweb.web.formfields.IntField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
25 |
.. autoclass: cubicweb.web.formfields.BooleanField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
26 |
.. autoclass: cubicweb.web.formfields.FloatField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
27 |
.. autoclass: cubicweb.web.formfields.DateField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
28 |
.. autoclass: cubicweb.web.formfields.DateTimeField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
29 |
.. autoclass: cubicweb.web.formfields.TimeField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
30 |
.. autoclass: cubicweb.web.formfields.RelationField |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
31 |
.. XXX still necessary? |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
32 |
.. autoclass: cubicweb.web.formfields.CompoundField |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
33 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
34 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
35 |
Widgets |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
36 |
~~~~~~~ |
4443
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
37 |
Base class for widget is :class:cubicweb.web.formwidgets.FieldWidget class. |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
38 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
39 |
Existing widget types are: |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
40 |
.. autoclass: cubicweb.web.formwidgets.HiddenInput |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
41 |
.. autoclass: cubicweb.web.formwidgets.TextInput |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
42 |
.. autoclass: cubicweb.web.formwidgets.PasswordInput |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
43 |
.. autoclass: cubicweb.web.formwidgets.PasswordSingleInput |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
44 |
.. autoclass: cubicweb.web.formwidgets.FileInput |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
45 |
.. autoclass: cubicweb.web.formwidgets.ButtonInput |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
46 |
.. autoclass: cubicweb.web.formwidgets.TextArea |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
47 |
.. autoclass: cubicweb.web.formwidgets.FCKEditor |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
48 |
.. autoclass: cubicweb.web.formwidgets.Select |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
49 |
.. autoclass: cubicweb.web.formwidgets.CheckBox |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
50 |
.. autoclass: cubicweb.web.formwidgets.Radio |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
51 |
.. autoclass: cubicweb.web.formwidgets.DateTimePicker |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
52 |
.. autoclass: cubicweb.web.formwidgets.JQueryDateTimePicker |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
53 |
.. autoclass: cubicweb.web.formwidgets.JQueryDatePicker |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
54 |
.. autoclass: cubicweb.web.formwidgets.JQueryTimePicker |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
55 |
.. autoclass: cubicweb.web.formwidgets.AjaxWidget |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
56 |
.. autoclass: cubicweb.web.formwidgets.AutoCompletionWidget |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
57 |
.. autoclass: cubicweb.web.formwidgets.EditableURLWidget |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
58 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
59 |
.. XXX StaticFileAutoCompletionWidget, RestrictedAutoCompletionWidget, AddComboBoxWidget, IntervalWidget, HorizontalLayoutWidget |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
60 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
61 |
The following classes may also be useful: Button, SubmitButton, ResetButton, |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
62 |
ImgButton, which are not proper widget (they are not associated to field) but are |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
63 |
used are form controls. |
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
64 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
65 |
|
83ff2bb898a5
start documenting forms
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
2172
diff
changeset
|
66 |
Of course you can not use any widget with any field... |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
67 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
68 |
Renderers |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
69 |
~~~~~~~~~ |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
70 |
XXX feed me |