Wiki-Quellcode von Macros
Version 2.310 von Jip-jan Alunkel am August 16, 16:15
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | {{velocity}} | ||
2 | #macro(createFormStart $elementDataObj) | ||
3 | #if($elementDataObj.active == "false") | ||
4 | #set($formclass = "pagemaker") | ||
5 | #else | ||
6 | #set($formclass = "pagemaker active") | ||
7 | #end | ||
8 | #if($elementDataObj.use_captcha == "true") | ||
9 | <script> | ||
10 | const formAttributeValues = { | ||
11 | "id": "${elementDataObj.id}", | ||
12 | "action": "${elementDataObj.url}", | ||
13 | "method": "${elementDataObj.method}", | ||
14 | "data-form-product": "${elementDataObj.product}", | ||
15 | "class": "$formclass", | ||
16 | "novalidate": "novalidate" | ||
17 | } | ||
18 | </script> | ||
19 | <div class="pagemaker active"> | ||
20 | #else | ||
21 | <form action="${elementDataObj.url}" id="${elementDataObj.id}" method="${elementDataObj.method}" class="$formclass" data-form-product="${elementDataObj.product}" novalidate="novalidate"> | ||
22 | #end | ||
23 | #end | ||
24 | #macro(createFormEnd $elementDataObj) | ||
25 | <div role="alert" class="form-response-output form-validation-errors" style="display: none"> | ||
26 | <p> | ||
27 | $services.localization.render('pagemaker.line.global_error_msg') | ||
28 | </p> | ||
29 | </div> | ||
30 | <div role="alert" class="form-response-output form-validation-ok" style="display: none"> | ||
31 | <p> | ||
32 | $services.localization.render('pagemaker.line.global_ok_msg') | ||
33 | </p> | ||
34 | </div> | ||
35 | #if($elementDataObj.use_captcha == "true") | ||
36 | </div> | ||
37 | #else | ||
38 | </form> | ||
39 | #end | ||
40 | #end | ||
41 | #macro(createFormElement $elementDataObj) | ||
42 | #set($elementType = $elementDataObj.type) | ||
43 | #set($elementTagName = '') | ||
44 | #set($paragraphCSSClass = '') | ||
45 | #set($makeFocusable = '') | ||
46 | #set($spanCSSClass = '') | ||
47 | #set($hint = '') | ||
48 | #set($placeholder = '') | ||
49 | #if($elementDataObj.required == 'true') | ||
50 | #if($elementType == 'captcha') | ||
51 | #set($paragraphCSSClass = ' class="required slideCaptcha-box"') | ||
52 | #else | ||
53 | #set($paragraphCSSClass = ' class="required"') | ||
54 | #end | ||
55 | #elseif($elementDataObj.type == 'captcha') | ||
56 | #set($paragraphCSSClass = ' class="slideCaptcha-box"') | ||
57 | #end | ||
58 | #if($elementDataObj.data-query-type) | ||
59 | #set($makeFocusable = ' tabindex="-1"') | ||
60 | #end | ||
61 | #if($elementDataObj.type == 'captcha') | ||
62 | #set($captchaClass = ' class="slideCaptcha-box"') | ||
63 | #end | ||
64 | #if($elementType == "select") | ||
65 | #set($spanCSSClass = " select-wrap") | ||
66 | #set($elementTagName = "select") | ||
67 | #elseif($elementType == "text" || $elementType == "number" || $elementType == "range" || $elementType == "email" || $elementType == "password" || $elementType == "date" || $elementType == "tel" || $elementType == "url" || $elementType == "color") | ||
68 | #set($elementTagName = "input") | ||
69 | #elseif($elementType == "checkbox" || $elementType == "radio") | ||
70 | #set($spanCSSClass = " checkradio") | ||
71 | #set($elementTagName = "checkradio") | ||
72 | #elseif($elementType == "textarea") | ||
73 | #set($elementTagName = "textarea") | ||
74 | #elseif($elementType == "captcha") | ||
75 | #set($elementTagName = "captcha") | ||
76 | #else | ||
77 | #set($hint = "This type of element does not exist, read the manual for more information about element types.") | ||
78 | #end | ||
79 | #if($elementTagName == "select" || $elementTagName == "input" || $elementTagName == "textarea" || $elementTagName == "captcha") | ||
80 | <p${paragraphCSSClass}${makeFocusable}> | ||
81 | <label for="${elementDataObj.id}"> | ||
82 | $elementDataObj.label | ||
83 | <span class="input-wrap${spanCSSClass}"> | ||
84 | #if($elementTagName == "select") | ||
85 | #createSelectElement($elementDataObj $elementTagName) | ||
86 | #elseif($elementTagName == "textarea") | ||
87 | #createTextareaElement($elementDataObj $elementTagName) | ||
88 | #else | ||
89 | #if($elementType == "text") | ||
90 | #createTextElement($elementDataObj $elementType) | ||
91 | #elseif($elementType == "number") | ||
92 | #if(!$elementDataObj.data-decimals)#set($elementDataObj.data-decimals = 0)#end | ||
93 | #if(!$elementDataObj.decimals-step)#set($elementDataObj.decimals-step = 1)#end | ||
94 | #createNumberElement($elementDataObj $elementType) | ||
95 | #elseif($elementType == "email") | ||
96 | #createEmailElement($elementDataObj $elementType) | ||
97 | #elseif($elementType == "password") | ||
98 | #createPasswordElement($elementDataObj $elementType) | ||
99 | #elseif($elementType == "range") | ||
100 | #if($elementDataObj.range-minmax) | ||
101 | #set($minmax = $elementDataObj.range-minmax.split('-')) | ||
102 | #if($minmax.size() == 2) | ||
103 | #set($elementDataObj.range-min = $minmax[0]) | ||
104 | #set($elementDataObj.range-max = $minmax[1]) | ||
105 | #end | ||
106 | #else | ||
107 | #set($elementDataObj.range-min = 0) | ||
108 | #set($elementDataObj.range-max = 100) | ||
109 | #end | ||
110 | #createRangeElement($elementDataObj $elementType) | ||
111 | #elseif($elementType == "date") | ||
112 | #createDateElement($elementDataObj $elementType) | ||
113 | #elseif($elementType == "color") | ||
114 | #createColorElement($elementDataObj $elementType) | ||
115 | #elseif($elementType == "tel") | ||
116 | #createTelElement($elementDataObj $elementType) | ||
117 | #elseif($elementType == "url") | ||
118 | #createUrlElement($elementDataObj $elementType) | ||
119 | #elseif($elementType == "captcha") | ||
120 | #createCaptcha($elementDataObj) | ||
121 | #end | ||
122 | #end | ||
123 | #if($elementDataObj.help-block && $elementDataObj.help-block != "") | ||
124 | <span id="${elementDataObj.id}_helpBlock" class="help-block">${elementDataObj.help-block}</span> | ||
125 | #end | ||
126 | #if($elementDataObj.required == "true") | ||
127 | <span class="required-input-field" title="Required input"></span> | ||
128 | #end | ||
129 | <span role="alert" class="form-not-valid-tip"></span> | ||
130 | </span> | ||
131 | </label> | ||
132 | </p> | ||
133 | #if($elementDataObj.data-modal-input) | ||
134 | <div class="modal fade modal-input" id="${elementDataObj.id}Modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> | ||
135 | <div class="modal-dialog" role="document"> | ||
136 | <div class="modal-content"> | ||
137 | <div class="modal-header"> | ||
138 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | ||
139 | <h4 class="modal-title" id="${elementDataObj.id}ModalInputHeader">$elementDataObj.label</h4> | ||
140 | </div> | ||
141 | <div class="modal-body"> | ||
142 | #foreach($entry in $elementDataObj.data-modal-input) | ||
143 | <p> | ||
144 | <label for="input${foreach.count}">$entry | ||
145 | <span class="input-wrap"> | ||
146 | <input type="text" class="form-control full" id="input${foreach.count}" placeholder="$services.localization.render('global.multiword.enter', ["${entry.toLowerCase()}"])"> | ||
147 | </span> | ||
148 | </label> | ||
149 | </p> | ||
150 | #end | ||
151 | </div> | ||
152 | <div class="modal-footer"> | ||
153 | <button type="button" class="btn btn-default" data-dismiss="modal">Close</button><button type="button" class="btn btn-primary">Save changes</button> | ||
154 | </div> | ||
155 | </div> | ||
156 | </div> | ||
157 | </div> | ||
158 | #end | ||
159 | #end | ||
160 | #if($elementTagName == "checkradio") | ||
161 | <p${paragraphCSSClass}> | ||
162 | <span class="input-wrap${spanCSSClass}"> | ||
163 | <span class="fieldset no-fieldset-border"> | ||
164 | <label for="${elementDataObj.id}"> | ||
165 | #if($elementType == "checkbox") | ||
166 | #createCheckboxElement($elementDataObj) | ||
167 | #elseif($elementType == "radio") | ||
168 | #end | ||
169 | </label> | ||
170 | </span> | ||
171 | </span> | ||
172 | </p> | ||
173 | #end | ||
174 | #if($hint != "") | ||
175 | <p class="box errormessage">${hint}</p> | ||
176 | #end | ||
177 | #end | ||
178 | |||
179 | #macro(createSelectElement $O_elementData $O_tagName) | ||
180 | <select class="form-select form-control"#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-opener) data-opener="${O_elementData.data-opener}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if(${O_elementData.data-set-space}) data-set-space="${O_elementData.data-set-space}"#end#if($O_elementData.data-select-spaces-to-json) data-select-spaces-to-json="${O_elementData.data-select-spaces-to-json}"#end name="${O_elementData.id}" id="${O_elementData.id}"> | ||
181 | #if($O_elementData.placeholder) | ||
182 | #if($O_elementData.select-json && $O_elementData.select-json.keySet().contains($O_elementData.value)) | ||
183 | #else | ||
184 | <option value="" disabled=""#if(!$O_elementData.value) selected=""#end hidden="hidden">${O_elementData.placeholder}</option> | ||
185 | #end | ||
186 | #end | ||
187 | #set($mydoc = $xwiki.getDocument('assets.pagemaker.classes.pagemakerClass')) | ||
188 | #if($mydoc.isNew() && $hasProgramming) | ||
189 | #set ($myinternaldoc = $mydoc.getDocument()) | ||
190 | #set ($myclass = $myinternaldoc.getXClass()) | ||
191 | #set ($discard = $myclass.addTextField("pmSpaceOrder", "pageMaker space order", 10)) | ||
192 | #set ($discard = $mydoc.save()) | ||
193 | #end | ||
194 | #set($removedNr = 0) | ||
195 | |||
196 | #if($O_elementData.select-space-reference) | ||
197 | #set($space = $O_elementData.select-space-reference) | ||
198 | #set($codespace = "") | ||
199 | #if($xwiki.getSpaces().contains("${space}.${space}Code")) | ||
200 | #set($codespace = "${space}Code") | ||
201 | #elseif($xwiki.getSpaces().contains("${space}.Code")) | ||
202 | #set($codespace = "Code") | ||
203 | #elseif($xwiki.getSpaces().contains("${space}.code")) | ||
204 | #set($codespace = "code") | ||
205 | #end | ||
206 | |||
207 | #if(!$isGuest) | ||
208 | ## Add XObjects to current child spaces so the spaces can be queried on the XObject to generate the select options. | ||
209 | #set($nameExcludeRef = $codespace) | ||
210 | #set($spaceAbsRef = $space.replaceAll('([%_!])', '!$1')) | ||
211 | #set($query_add_xobj = $services.query.xwql("select space.name from XWikiSpace as space where space.parent = :space and space.name <> :nameExclude and space.name <> 'WebPreferences' order by space.name")) | ||
212 | #set($result_add_xobj = $query_add_xobj.bindValue('space', $spaceAbsRef).bindValue('nameExclude', $nameExcludeRef).addFilter('unique').execute()) | ||
213 | #foreach($item in $result_add_xobj) | ||
214 | #set($doc = $xwiki.getDocument("${space}.${item}.WebHome")) | ||
215 | #set($rightXObj = $doc.getObject("assets.pagemaker.classes.pagemakerClass", true)) | ||
216 | #set($discard = $rightXObj.set('pmSpaceOrder', $foreach.count)) | ||
217 | #set($discard = $doc.save()) | ||
218 | #end | ||
219 | #end | ||
220 | |||
221 | #set($spaceExcludeRef = $space.replaceAll('([%_!])', '!$1').concat(".${codespace}")) | ||
222 | #set($spaceLikeRef = $space.replaceAll('([%_!])', '!$1').concat('.%')) | ||
223 | #set($query = $services.query.xwql("from doc.object(assets.pagemaker.classes.pagemakerClass) met where doc.space like :space and doc.space <> :spaceExclude and doc.name <> 'WebPreferences' order by met.pmSpaceOrder asc")) | ||
224 | #set($result = $query.bindValue('space', $spaceLikeRef).bindValue('spaceExclude', $spaceExcludeRef).addFilter('unique').execute()) | ||
225 | |||
226 | ## Generate the select options from all child spaces that have the 'assets.pagemaker.pagemakerClass' XClass. | ||
227 | ## The order is still random but the JSON can be extracted from the console with the 'select-spaces-to-json' attribute. | ||
228 | #foreach($item in $result) | ||
229 | #set($doc = $xwiki.getDocument($item)) | ||
230 | <option value="$doc.space">$doc.getTitle()</option> | ||
231 | #end | ||
232 | #elseif($O_elementData.select-json) | ||
233 | #set($json = {}) | ||
234 | #if($O_elementData.select-json.keySet()) | ||
235 | #set($json = $O_elementData.select-json) | ||
236 | #else | ||
237 | #set($jsondoc = $xwiki.getDocument($O_elementData.select-json)) | ||
238 | #set($jsoncontent = $jsontool.fromString($jsontool.serialize($jsondoc.getContent()))) | ||
239 | #set($json = $jsontool.parse($jsoncontent)) | ||
240 | #end | ||
241 | #foreach($key in $json.keySet()) | ||
242 | #if(!$isGuest && $O_elementData.select-json-to-spaces == "true") | ||
243 | #set($spaceDocTitle = $json.get($key)) | ||
244 | #set($spaceDoc = $xwiki.getDocument("${key}.WebHome")) ## Fetch doc or create one if it does not exist by this name. | ||
245 | #set($spaceXObj = $spaceDoc.getObject("assets.pagemaker.classes.pagemakerClass", true)) ## Get or create the needed object. | ||
246 | #set($order_error = ($spaceXObj.getProperty('pmSpaceOrder').value != $foreach.count)) | ||
247 | #set($title_error = ($spaceDoc.getTitle() != $spaceDocTitle)) | ||
248 | #if($spaceDoc.isNew()) ## Doc did not exist so spaceDoc needs a title and a default locale. | ||
249 | #set($discard = $spaceDoc.setTitle($spaceDocTitle)) ## Title. | ||
250 | #set($discard = $spaceDoc.setDefaultLocale("en")) ## Locale. | ||
251 | #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value. | ||
252 | #set($discard = $spaceDoc.save()) | ||
253 | #else | ||
254 | #if($title_error) ## Doc did exist but the title did not match with the JSON value. | ||
255 | #set($discard = $spaceDoc.setTitle($spaceDocTitle)) | ||
256 | #end | ||
257 | #if($order_error) ## Either the property does not exist or the value is incorrect. | ||
258 | #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value. | ||
259 | #end | ||
260 | #if($title_error || $order_error) ## Save only if changed | ||
261 | #set($discard = $spaceDoc.save()) | ||
262 | #end | ||
263 | #end | ||
264 | #end | ||
265 | <option value="$key"#if($O_elementData.value=="$key") selected="selected"#end>$json[$key]</option> | ||
266 | #end | ||
267 | #end | ||
268 | </select> | ||
269 | #if($removedNr > 0) | ||
270 | $removedNr pages had the XObject ##${removeXObj}## removed. | ||
271 | #end | ||
272 | #end | ||
273 | #macro(createTextElement $O_elementData $O_tagName) | ||
274 | <input type="text" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end autocomplete="off"#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-pattern) data-pattern="${O_elementData.data-pattern}"#end#if($O_elementData.data-auto-first-capital) data-auto-first-capital="${O_elementData.data-auto-first-capital}"#end#if($O_elementData.data-query-type) data-query-type="${O_elementData.data-query-type}" data-query-reference="${O_elementData.data-query-reference}"#end#if($O_elementData.data-query-list-type) data-query-list-type="${O_elementData.data-query-list-type}"#end#if($O_elementData.data-query-list-header) data-query-list-header="${O_elementData.data-query-list-header}"#end#if($O_elementData.data-query-list-contents) data-query-list-contents="${O_elementData.data-query-list-contents}"#end#if($O_elementData.data-query-list-editable) data-query-list-editable="${O_elementData.data-query-list-editable}"#end#if($O_elementData.data-create-page) data-create-page="${O_elementData.data-create-page}"#end#if($O_elementData.data-query-scope) data-query-scope="${O_elementData.data-query-scope}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end#if($O_elementData.data-ajax-check) data-ajax-check="${O_elementData.data-ajax-check}"#end#if($O_elementData.data-modal-input) data-modal-input="${O_elementData.data-modal-input}" data-modal-input-glue="${O_elementData.data-modal-input-glue}"#end> | ||
275 | #if($O_elementData.data-modal-input) | ||
276 | <a href="#" class="btn btn-default" data-toggle="modal" data-target="#${O_elementData.id}Modal">Create</a> | ||
277 | #end | ||
278 | #end | ||
279 | #macro(createNumberElement $O_elementData $O_tagName) | ||
280 | <input type="number" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end autocomplete="off" min="0" pattern="[0-9]*[.,]?[0-9]+" data-decimals="${O_elementData.data-decimals}" step="${O_elementData.decimal-step}"#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-query-type) data-query-type="${O_elementData.data-query-type}"#end#if($O_elementData.data-query-list-type) data-query-list-type="${O_elementData.data-query-list-type}"#end#if($O_elementData.data-query-list-header) data-query-list-header="${O_elementData.data-query-list-header}"#end#if($O_elementData.data-query-list-contents) data-query-list-contents="${O_elementData.data-query-list-contents}"#end#if($O_elementData.data-query-list-editable) data-query-list-editable="${O_elementData.data-query-list-editable}"#end#if($O_elementData.data-create-page) data-create-page="${O_elementData.data-create-page}"#end#if($O_elementData.data-query-scope) data-query-scope="${O_elementData.data-query-scope}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
281 | #end | ||
282 | #macro(createEmailElement $O_elementData $O_tagName) | ||
283 | <input type="email" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end pattern="^[A-Za-z0-9._+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,63}$" autocomplete="off"#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
284 | #end | ||
285 | #macro(createPasswordElement $O_elementData $O_tagName) | ||
286 | <input type="password" class="form-control full password" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end autocomplete="off"#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-pattern) data-pattern="${O_elementData.data-pattern}"#end><span class="preview" title="$services.localization.render('pagemaker.multiword.show_hide_password')" data-content=""></span> | ||
287 | #end | ||
288 | #macro(createDateElement $O_elementData $O_tagName) | ||
289 | <input type="date" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end#if($O_elementData.date-min) min="${O_elementData.date-min}"#end#if($O_elementData.date-max) max="${O_elementData.date-max}"#end autocomplete="off" aria-describedby="${O_elementData.id}_helpBlock" #if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end #if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
290 | #end | ||
291 | #macro(createColorElement $O_elementData $O_tagName) | ||
292 | <input type="color" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}" value="#fffffe" autocomplete="off" aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
293 | #end | ||
294 | #macro(createRangeElement $O_elementData $O_tagName) | ||
295 | <input type="range" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end min="${O_elementData.range-min}" max="${O_elementData.range-max}"#if($O_elementData.range-step) step="${O_elementData.range-step}"#end autocomplete="off" aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
296 | #end | ||
297 | #macro(createTelElement $O_elementData $O_tagName) | ||
298 | <input type="tel" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end autocomplete="off"#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
299 | #end | ||
300 | #macro(createUrlElement $O_elementData $O_tagName) | ||
301 | <input type="url" class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end autocomplete="off" pattern="https?://.*"#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end#if($O_elementData.data-create-xobj) data-create-xobj="${O_elementData.data-create-xobj}"#end#if($O_elementData.data-xobj-classname) data-xobj-classname="${O_elementData.data-xobj-classname}"#end#if($O_elementData.data-xobj-fieldname) data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"#end> | ||
302 | #end | ||
303 | #macro(createCheckboxElement $O_elementData) | ||
304 | <input type="checkbox" name="${O_elementData.id}"#if($O_elementData.value=="1") checked="checked"#end value="1" id="${O_elementData.id}"#if($O_elementData.data-opener) data-opener="${O_elementData.data-opener}"#end#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end>$O_elementData.label | ||
305 | <input name="${O_elementData.id}" type="hidden"#if($O_elementData.value=="1") value="0"#else value="1"#end> | ||
306 | #end | ||
307 | #macro(createTextareaElement $O_elementData $O_tagName) | ||
308 | <textarea class="form-control full" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.value) value="$O_elementData.value"#end#if($O_elementData.placeholder) placeholder="${O_elementData.placeholder}"#end#if($O_elementData.textarea-rows) rows="$O_elementData.textarea-rows"#end aria-describedby="${O_elementData.id}_helpBlock"#if($O_elementData.required == "true") aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"#else aria-required="false"#end#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#end></textarea> | ||
309 | #end | ||
310 | #macro(createCaptcha $O_elementData) | ||
311 | <span class="slideCaptcha-track" id="slideCaptcha_track"> | ||
312 | <span class="slideCaptcha-slider" id="slideCaptcha_slider" data-target-size="${O_elementData.data-target-size}""></span> | ||
313 | </span> | ||
314 | <input type="hidden" id="slideCaptcha_answer" value=""> | ||
315 | #end | ||
316 | #macro(createExpandStart $opener $value) | ||
317 | <div id="${opener.id}_section_#if($value)${value}#else${opener.value}#end" class="togglee"> | ||
318 | #end | ||
319 | #macro(createExpandEnd) | ||
320 | </div> | ||
321 | #end | ||
322 | #macro(createSubmit $O_submit) | ||
323 | <div class="clearfix"> | ||
324 | <p class="alert alert-warning alert-button-float-right"> | ||
325 | <span class="alert-button pull-right"> | ||
326 | #if ($xcontext.user != 'XWiki.XWikiGuest') | ||
327 | <input type="submit" class="btn btn-primary" id="${O_submit.id}" name="${O_submit.id}" value="${O_submit.button-text}" /> | ||
328 | #else | ||
329 | <a data-toggle="modal" data-target="#displayLogin" href="#" class="btn btn-primary">$services.localization.render('login')</a> | ||
330 | #end | ||
331 | </span> | ||
332 | <span class="alert-text"> | ||
333 | ${O_submit.help-block} | ||
334 | </span> | ||
335 | </p> | ||
336 | </div> | ||
337 | #end | ||
338 | {{/velocity}} |