1 <div class="no-padding" |
|
2 tal:attributes="class string:${view.css_class} ${view.padding_class | default}; |
|
3 id view.id;"> |
|
4 <div tal:define="prefix provider:form_prefix" |
|
5 tal:replace="structure prefix">Form prefix</div> |
|
6 <form method="post" |
|
7 data-async |
|
8 tal:define="action view.get_form_action()" |
|
9 tal:omit-tag="not:action" |
|
10 tal:attributes="id view.id; |
|
11 name view.name; |
|
12 action action; |
|
13 method view.method; |
|
14 enctype view.enctype; |
|
15 acceptCharset view.acceptCharset; |
|
16 accept view.accept; |
|
17 autocomplete view.autocomplete; |
|
18 class view.css_class; |
|
19 data-ams-data extension:object_data(view); |
|
20 data-ams-form-handler view.get_ajax_handler() | nothing; |
|
21 data-ams-form-options view.get_form_options() | nothing; |
|
22 data-ams-form-submit-target view.form_target | nothing; |
|
23 data-ams-form-download-target view.download_target | nothing; |
|
24 data-ams-warn-on-change view.warn_on_change;"> |
|
25 <fieldset tal:define="legend view.legend" |
|
26 tal:attributes="class view.fieldset_class | nothing" |
|
27 tal:omit-tag="not:legend"> |
|
28 <legend class="inner" tal:condition="legend" |
|
29 tal:define="legend_class view.legend_class | nothing" |
|
30 tal:attributes="class string:inner ${legend_class}; |
|
31 data-ams-switcher-state view.switcher_state | nothing;"> |
|
32 <i tal:attributes="class view.icon_css_class | nothing"></i> |
|
33 <tal:var content="legend">Legend</tal:var> |
|
34 <tal:var condition="python:getattr(view, 'show_widget_title', False)" |
|
35 content="structure provider:pyams.widget_title" /> |
|
36 </legend> |
|
37 <tal:var content="structure provider:form_help" /> |
|
38 <div class="widgets-prefix" |
|
39 tal:omit-tag="getattr(view, 'hide_widgets_prefix_div', False)" |
|
40 tal:define="prefix provider:widgets_prefix" |
|
41 tal:condition="prefix" |
|
42 tal:content="structure prefix">Widgets prefix</div> |
|
43 <div class="clearfix"></div> |
|
44 <tal:loop repeat="group view.groups"> |
|
45 <fieldset tal:define="legend group.legend" |
|
46 tal:omit-tag="not:legend" |
|
47 tal:attributes="class (group.fieldset_class or '') + (' bordered' if group.bordered else '')"> |
|
48 <tal:if condition="group.checkbox_switch"> |
|
49 <legend data-ams-checker-value="selected" |
|
50 tal:condition="legend" |
|
51 tal:attributes="class group.css_class; |
|
52 data-ams-checker-fieldname '{0}:list'.format(group.checkbox_widget.name); |
|
53 data-ams-checker-readonly 'readonly' if group.checkbox_widget.mode == 'display' else None; |
|
54 data-ams-checker-mode 'disable' if group.checkbox_mode == 'disable' else None; |
|
55 data-ams-checker-marker '{0}-empty-marker'.format(group.checkbox_widget.name); |
|
56 data-ams-checker-state group.checker_state;"> |
|
57 <label tal:content="legend">Legend</label> |
|
58 </legend> |
|
59 </tal:if> |
|
60 <tal:if condition="not:group.checkbox_switch"> |
|
61 <legend tal:condition="legend" |
|
62 tal:content="legend" |
|
63 tal:attributes="class group.css_class; |
|
64 data-ams-switcher-state group.switcher_state;">Legend</legend> |
|
65 </tal:if> |
|
66 <tal:var define="help group.help" condition="help"> |
|
67 <div class="alert alert-info padding-5" |
|
68 tal:define="i18n_help request.localizer.translate(help);" |
|
69 tal:content="structure extension:html(i18n_help)"></div> |
|
70 </tal:var> |
|
71 <tal:loop repeat="widget group.visible_widgets"> |
|
72 <input type="hidden" |
|
73 tal:condition="widget.mode == 'hidden'" |
|
74 tal:replace="structure widget.render()" /> |
|
75 <tal:if condition="widget.mode != 'hidden'"> |
|
76 <div tal:define="required 'required-field' if widget.required and widget.label and (widget.mode != 'display') else ''" |
|
77 tal:attributes="class string:${widget.group_css_class | group.group_css_class | view.group_css_class | 'form-group'} ${required}"> |
|
78 <label tal:attributes="class widget.label_css_class | group.label_css_class | view.label_css_class"> |
|
79 <span> |
|
80 <tal:var content="widget.label" /> |
|
81 <i class="fa fa-question-circle hint" title="Input hint" |
|
82 tal:define="description getattr(widget, 'description', widget.field.description)" |
|
83 tal:condition="description" |
|
84 tal:attributes="title description; |
|
85 data-ams-hint-html '<' in description;"></i> |
|
86 </span> |
|
87 </label> |
|
88 <div tal:attributes="class widget.input_css_class | group.input_css_class | view.input_css_class"> |
|
89 <label class="input" |
|
90 tal:attributes="class widget.widget_css_class | default; |
|
91 data-ams-form-validator view.get_widget_callback(widget.field.getName())"> |
|
92 <div tal:define="notice widget.before_widget_notice | nothing" |
|
93 tal:condition="notice" |
|
94 tal:content="structure notice">Notice</div> |
|
95 <input tal:replace="structure widget.render()" /> |
|
96 <div tal:define="notice widget.after_widget_notice | nothing" |
|
97 tal:condition="notice" |
|
98 tal:content="structure notice">Notice</div> |
|
99 </label> |
|
100 </div> |
|
101 </div> |
|
102 </tal:if> |
|
103 </tal:loop> |
|
104 </fieldset> |
|
105 <div class="subforms" |
|
106 tal:condition="group.subforms"> |
|
107 <fieldset tal:define="title group.subforms_legend" |
|
108 tal:omit-tag="not:title"> |
|
109 <legend tal:condition="title" tal:content="title" i18n:translate="">Title</legend> |
|
110 <tal:loop repeat="subform group.subforms"> |
|
111 <tal:var replace="structure subform.render()" /> |
|
112 </tal:loop> |
|
113 </fieldset> |
|
114 </div> |
|
115 </tal:loop> |
|
116 <div class="widgets-suffix" |
|
117 tal:omit-tag="getattr(view, 'hide_widgets_suffix_div', False)" |
|
118 tal:define="suffix provider:widgets_suffix" |
|
119 tal:condition="suffix" |
|
120 tal:content="structure suffix">Widgets suffix</div> |
|
121 <div class="subforms" |
|
122 tal:condition="view.subforms"> |
|
123 <fieldset tal:define="title view.subforms_legend" |
|
124 tal:omit-tag="not:title"> |
|
125 <legend tal:condition="title" tal:content="title" i18n:translate="">legend</legend> |
|
126 <tal:loop repeat="subform view.subforms"> |
|
127 <tal:var replace="structure subform.render()" /> |
|
128 </tal:loop> |
|
129 </fieldset> |
|
130 </div> |
|
131 <div class="tabforms" |
|
132 tal:condition="view.tabforms"> |
|
133 <ul class="nav nav-tabs"> |
|
134 <li tal:repeat="tabform view.tabforms" |
|
135 tal:attributes="class '{active} {errors}'.format(active='active' if repeat['tabform'].start() else '', |
|
136 errors='state-error' if tabform.widgets.errors else '')"> |
|
137 <a data-toggle="tab" |
|
138 tal:attributes="href string:#${tabform.id}; |
|
139 data-ams-url python:getattr(tabform, 'tab_target', None);" |
|
140 tal:content="tabform.tab_label" i18n:translate="">Tab label</a> |
|
141 </li> |
|
142 </ul> |
|
143 <div class="tab-content"> |
|
144 <div class="tab-pane fade in" |
|
145 tal:repeat="tabform view.tabforms" |
|
146 tal:attributes="id tabform.id; |
|
147 class 'tab-pane {active} fade in'.format(active='active' if repeat['tabform'].start() else '');" |
|
148 tal:content="structure tabform.render()"></div> |
|
149 </div> |
|
150 </div> |
|
151 </fieldset> |
|
152 <footer tal:condition="view.actions and (view.is_dialog or (view.mode == 'input'))"> |
|
153 <button tal:repeat="action view.actions.values()" |
|
154 tal:replace="structure action.render()">Action</button> |
|
155 </footer> |
|
156 </form> |
|
157 <div class="form-suffix" |
|
158 tal:define="suffix provider:form_suffix" |
|
159 tal:condition="suffix" |
|
160 tal:content="structure suffix">Form suffix</div> |
|
161 </div> |
|