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