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