Commit | Line | Data |
---|---|---|
76c9ea6b WKG |
1 | {# |
2 | # GNU MediaGoblin -- federated, autonomous media hosting | |
cf29e8a8 | 3 | # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. |
76c9ea6b WKG |
4 | # |
5 | # This program is free software: you can redistribute it and/or modify | |
6 | # it under the terms of the GNU Affero General Public License as published by | |
7 | # the Free Software Foundation, either version 3 of the License, or | |
8 | # (at your option) any later version. | |
9 | # | |
10 | # This program is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU Affero General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU Affero General Public License | |
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | #} | |
8566cdda | 18 | |
cde7a07d E |
19 | {# Render the label for a field #} |
20 | {% macro render_label(field) %} | |
21 | {%- if field.label.text -%} | |
665b9c42 | 22 | <label for="{{ field.label.field_id }}">{{ field.label.text }}</label> |
cde7a07d E |
23 | {%- endif -%} |
24 | {%- endmacro %} | |
25 | ||
26 | {# Render the label in a <p> for a field #} | |
27 | {% macro render_label_p(field) %} | |
28 | {%- if field.label.text %} | |
29 | <p class="form_field_label"> | |
30 | {{- render_label(field) -}} | |
31 | </p> | |
32 | {%- endif %} | |
33 | {%- endmacro %} | |
34 | ||
528f9acd | 35 | {# Generically render a field #} |
e4deacd9 | 36 | {% macro render_field_div(field, autofocus_first=False) %} |
f7998c33 RE |
37 | {% if field.type == 'BooleanField' %} |
38 | {{ render_bool(field) }} | |
39 | {% else %} | |
40 | {{- render_label_p(field) }} | |
41 | <div class="form_field_input"> | |
42 | {% if autofocus_first %} | |
43 | {{ field(autofocus=True) }} | |
1e21471a | 44 | {% else %} |
f7998c33 | 45 | {{ field }} |
1e21471a | 46 | {% endif %} |
f7998c33 RE |
47 | {%- if field.errors -%} |
48 | {% for error in field.errors %} | |
49 | <p class="form_field_error">{{ error }}</p> | |
50 | {% endfor %} | |
51 | {%- endif %} | |
52 | {%- if field.description %} | |
53 | <p class="form_field_description">{{ field.description|safe }}</p> | |
54 | {%- endif %} | |
55 | </div> | |
56 | {% endif %} | |
528f9acd CAW |
57 | {%- endmacro %} |
58 | ||
8566cdda | 59 | {# Auto-render a form as a series of divs #} |
e4deacd9 | 60 | {% macro render_divs(form, autofocus_first=False) -%} |
8566cdda | 61 | {% for field in form %} |
e4deacd9 RE |
62 | {% if autofocus_first and loop.first %} |
63 | {{ render_field_div(field, True) }} | |
64 | {% else %} | |
65 | {{ render_field_div(field) }} | |
66 | {% endif %} | |
8566cdda CAW |
67 | {% endfor %} |
68 | {%- endmacro %} | |
69 | ||
70 | {# Auto-render a form as a table #} | |
ef7cdac5 CAW |
71 | {% macro render_table(form) -%} |
72 | {% for field in form %} | |
73 | <tr> | |
665b9c42 | 74 | <th>{{ field.label.text }}</th> |
ef7cdac5 CAW |
75 | <td> |
76 | {{field}} | |
77 | {% if field.errors %} | |
78 | <br /> | |
79 | <ul class="errors"> | |
80 | {% for error in field.errors %} | |
81 | <li>{{error}}</li> | |
82 | {% endfor %} | |
83 | </ul> | |
84 | {% endif %} | |
85 | </td> | |
86 | </tr> | |
87 | {% endfor %} | |
88 | {%- endmacro %} | |
f7998c33 RE |
89 | |
90 | {# Render a boolean field #} | |
91 | {% macro render_bool(field) %} | |
a937ea9e | 92 | <div class="boolean"> |
643f07af RE |
93 | <label for="{{ field.label.field_id }}"> |
94 | {{ field }}</input> | |
95 | {{ field.description|safe }} | |
96 | </label> | |
97 | {%- if field.errors -%} | |
98 | {% for error in field.errors %} | |
99 | <p class="form_field_error">{{ error }}</p> | |
100 | {% endfor %} | |
101 | {% endif %} | |
102 | </div> | |
f7998c33 RE |
103 | {% endmacro %} |
104 |