Changes for page Macros

Last modified by Jip-jan Alunkel on April 15, 18:09

From version 2.99
edited by Jip-jan Alunkel
on June 28, 20:27
Change comment: Update document after refactoring.
To version 2.95
edited by Jip-jan Alunkel
on June 01, 19:08
Change comment: Renamed from xwiki:assets.formMaker.form-macros

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -WebHome
1 +Main.WebHome
Content
... ... @@ -1,16 +1,16 @@
1 1  {{velocity}}
2 2  #macro(createFormStart $id $product)
3 -<form action="" id="${id}" method="post" class="pagemaker" data-form-product="${product}" novalidate="novalidate">
3 +<form action="" id="${id}" method="post" class="formMaker" data-form-product="${product}" novalidate="novalidate">
4 4  #end
5 5  #macro(createFormEnd)
6 6   <div role="alert" class="form-response-output form-validation-errors" style="display: none">
7 7   <p>
8 -$services.localization.render('pagemaker.line.global_error_msg')
8 +$services.localization.render('formMaker.line.global_error_msg')
9 9   </p>
10 10   </div>
11 11   <div role="alert" class="form-response-output form-validation-ok" style="display: none">
12 12   <p>
13 -$services.localization.render('pagemaker.line.global_ok_msg')
13 +$services.localization.render('formMaker.line.global_ok_msg')
14 14   </p>
15 15   </div>
16 16  </form>
... ... @@ -18,21 +18,17 @@
18 18  #macro(createFormElement $elementDataObj)
19 19   #set($elementType = $elementDataObj.type)
20 20   #set($elementTagName = '')
21 + #set($requiredAttributes = 'aria-required="false"')
21 21   #set($requiredCSSClass = '')
22 - #set($makeFocusable = '')
23 23   #set($addedCSSClass = '')
24 24   #set($hint = '')
25 - #set($placeholder = '')
26 - #if($elementDataObj.required == 'true')
25 + #if($elementDataObj.required == "true")
27 27   #set($requiredCSSClass = ' class="required"')
28 28   #end
29 - #if($elementDataObj.data-query-type)
30 - #set($makeFocusable = ' tabindex="-1"')
31 - #end
32 32   #if($elementType == "select")
33 33   #set($addedCSSClass = " select-wrap")
34 34   #set($elementTagName = "select")
35 - #elseif($elementType == "text" || $elementType == "number" || $elementType == "range" || $elementType == "email" || $elementType == "password" || $elementType == "date" || $elementType == "tel" || $elementType == "url" || $elementType == "color")
31 + #elseif($elementType == "text" || $elementType == "number" || $elementType == "range" || $elementType == "email")
36 36   #set($elementTagName = "input")
37 37   #elseif($elementType == "checkbox" || $elementType == "radio")
38 38   #set($addedCSSClass = " checkradio")
... ... @@ -43,43 +43,22 @@
43 43   #set($hint = "This type of element does not exist, read the manual for more information about element types.")
44 44   #end
45 45   #if($elementTagName == "select" || $elementTagName == "input" || $elementTagName == "textarea")
46 - <p${requiredCSSClass}${makeFocusable}>
42 + <p${requiredCSSClass}>
47 47   <label for="${elementDataObj.id}_${elementTagName}">
48 48   $elementDataObj.label
49 49   <span class="input-wrap${addedCSSClass}">
50 50   #if($elementTagName == "select")
51 - #createSelectElement($elementDataObj $elementTagName)
47 + #createSelectElement($elementDataObj $elementTagName $requiredAttributes)
52 52   #elseif($elementTagName == "textarea")
53 - #createTextareaElement($elementDataObj $elementTagName)
54 54   #else
55 55   #if($elementType == "text")
56 - #createTextElement($elementDataObj $elementType)
51 + #createTextElement($elementDataObj $elementType $requiredAttributes)
57 57   #elseif($elementType == "number")
58 58   #if(!$elementDataObj.data-decimals)#set($elementDataObj.data-decimals = 0)#end
59 59   #if(!$elementDataObj.decimals-step)#set($elementDataObj.decimals-step = 1)#end
60 - #createNumberElement($elementDataObj $elementType)
55 + #createNumberElement($elementDataObj $elementType $requiredAttributes)
61 61   #elseif($elementType == "email")
62 - #createEmailElement($elementDataObj $elementType)
63 63   #elseif($elementType == "range")
64 - #if($elementDataObj.range-minmax)
65 - #set($minmax = $elementDataObj.range-minmax.split('-'))
66 - #if($minmax.size() == 2)
67 - #set($elementDataObj.range-min = $minmax[0])
68 - #set($elementDataObj.range-max = $minmax[1])
69 - #end
70 - #else
71 - #set($elementDataObj.range-min = 0)
72 - #set($elementDataObj.range-max = 100)
73 - #end
74 - #createRangeElement($elementDataObj $elementType)
75 - #elseif($elementType == "date")
76 - #createDateElement($elementDataObj $elementType)
77 - #elseif($elementType == "color")
78 - #createColorElement($elementDataObj $elementType)
79 - #elseif($elementType == "tel")
80 - #createTelElement($elementDataObj $elementType)
81 - #elseif($elementType == "url")
82 - #createUrlElement($elementDataObj $elementType)
83 83   #end
84 84   #end
85 85   #if($elementDataObj.help-block && $elementDataObj.help-block != "")
... ... @@ -87,8 +87,8 @@
87 87   #end
88 88   #if($elementDataObj.required == "true")
89 89   <span class="required-input-field" title="Required input"></span>
90 - #end
91 91   <span role="alert" class="form-not-valid-tip"></span>
66 + #end
92 92   </span>
93 93   </label>
94 94   </p>
... ... @@ -99,7 +99,9 @@
99 99   <span class="fieldset no-fieldset-border">
100 100   <label for="${elementDataObj.id}" class="strong">
101 101   #if($elementType == "checkbox")
77 +
102 102  #createCheckboxElement($elementDataObj)
79 +
103 103   #elseif($elementType == "radio")
104 104   #end
105 105   </label>
... ... @@ -111,130 +111,47 @@
111 111   <p class="box errormessage">${hint}</p>
112 112   #end
113 113  #end
114 -
115 115  #macro(createSelectElement $O_elementData $O_tagName)
116 - <select class="form-select form-control"#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#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 data-set-space="${O_elementData.data-set-space}"#if($O_elementData.select-spaces-json) data-select-spaces-json="true"#end name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}">
92 + <select class="form-select form-control"#if($O_elementData.aria-label) aria-label="${O_elementData.aria-label}"#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 data-set-space="${O_elementData.data-set-space}" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}">
117 117   #if($O_elementData.placeholder)
118 118   <option value="" disabled="" selected="" hidden="hidden">${O_elementData.placeholder}</option>
119 119   #end
120 - #set ($mydoc = $xwiki.getDocument('assets.pagemaker.pagemakerClass'))
121 - #if($mydoc.isNew() && $hasProgramming)
122 - #set ($myinternaldoc = $mydoc.getDocument())
123 - #set ($myclass = $myinternaldoc.getXClass())
124 - #set ($discard = $myclass.addTextField("pmSpaceOrder", "pageMaker space order", 10))
125 - #set ($discard = $mydoc.save())
126 - #end
127 - #set($removedNr = 0)
128 -
129 129   #if($O_elementData.select-space-reference)
130 - #set($space = $O_elementData.select-space-reference)
131 - #set($codespace = "")
132 - #if($xwiki.getSpaces().contains("${space}.${space}Code"))
133 - #set($codespace = "${space}Code")
134 - #elseif($xwiki.getSpaces().contains("${space}.Code"))
135 - #set($codespace = "Code")
136 - #elseif($xwiki.getSpaces().contains("${space}.code"))
137 - #set($codespace = "code")
97 + #set($query = $services.query.xwql("from doc.object(AppWithinMinutes.MetadataClass) met where doc.space like :space and doc.space <> :spaceExclude order by met.dataSpaceName asc"))
98 + #set($spaceLikeRef = $O_elementData.select-space-reference.replaceAll('([%_!])', '!$1').concat('.%'))
99 + #set($spaceExcludeRef = $O_elementData.select-space-reference.replaceAll('([%_!])', '!$1').concat('.Code'))
100 + #set($query = $query.bindValue('space', $spaceLikeRef))
101 + #set($query = $query.bindValue('spaceExclude', $spaceExcludeRef))
102 + #set($results = $query.addFilter('unique').execute())
103 + #foreach ($item in $results)
104 + #set ($document = $xwiki.getDocument($item))
105 + <option value="$document.space">$document.getTitle()</option>
138 138   #end
139 -
140 - #set($nameExcludeRef = $codespace)
141 - #set($spaceAbsRef = $space.replaceAll('([%_!])', '!$1'))
142 - #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"))
143 -
144 - ## Add XObjects to current child spaces so the spaces can be queried on the XObject to generate the select options.
145 - #set($result_add_xobj = $query_add_xobj.bindValue('space', $spaceAbsRef).bindValue('nameExclude', $nameExcludeRef).addFilter('unique').execute())
146 - #foreach($item in $result_add_xobj)
147 - #set($doc = $xwiki.getDocument("${space}.${item}.WebHome"))
148 - #set($rightXObj = $doc.getObject("assets.pagemaker.pagemakerClass", true))
149 - #set($discard = $rightXObj.set('pmSpaceOrder', $foreach.count))
150 - #set($discard = $doc.save())
151 - #end
152 -
153 - #set($spaceExcludeRef = $space.replaceAll('([%_!])', '!$1').concat(".${codespace}"))
154 - #set($spaceLikeRef = $space.replaceAll('([%_!])', '!$1').concat('.%'))
155 - #set($query = $services.query.xwql("from doc.object(assets.pagemaker.pagemakerClass) met where doc.space like :space and doc.space <> :spaceExclude and doc.name <> 'WebPreferences' order by met.pmSpaceOrder asc"))
156 -
157 - ## Generate the select options from all child spaces that have the 'assets.pagemaker.pagemakerClass' XClass.
158 - ## The order is still random but the JSON can be extracted from the console with the 'select-spaces-json' attribute.
159 - #set($result = $query.bindValue('space', $spaceLikeRef).bindValue('spaceExclude', $spaceExcludeRef).addFilter('unique').execute())
160 - #foreach($item in $result)
161 - #set($doc = $xwiki.getDocument($item))
162 - <option value="$doc.space">$doc.getTitle()</option>
163 - #end
164 164   #elseif($O_elementData.select-json)
165 - #set($json = $O_elementData.select-json)
166 - #foreach($key in $json.keySet())
167 - #set($spaceDocTitle = $json.get($key))
168 - #set($spaceDoc = $xwiki.getDocument("${key}.WebHome")) ## Fetch doc or create one if it does not exist by this name.
169 - #set($spaceXObj = $spaceDoc.getObject("assets.pagemaker.pagemakerClass", true)) ## Get or create the needed object.
170 - #set($order_error = ($spaceXObj.getProperty('pmSpaceOrder').value != $foreach.count))
171 - #set($title_error = ($spaceDoc.getTitle() != $spaceDocTitle))
172 - #if($spaceDoc.isNew()) ## Doc did not exist so spaceDoc needs a title and a default locale.
173 - #set($discard = $spaceDoc.setTitle($spaceDocTitle)) ## Title.
174 - #set($discard = $spaceDoc.setDefaultLocale("en")) ## Locale.
175 - #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value.
176 - #set($discard = $spaceDoc.save())
177 - #else
178 - #if($title_error) ## Doc did exist but the title did not match with the JSON value.
179 - #set($discard = $spaceDoc.setTitle($spaceDocTitle))
180 - #end
181 - #if($order_error) ## Either the property does not exist or the value is incorrect.
182 - #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value.
183 - #end
184 - #if($title_error || $order_error) ## Save only if changed
185 - #set($discard = $spaceDoc.save())
186 - #end
187 - #end
188 - <option value="$key">$json.get($key)</option>
108 + #foreach($item in $O_elementData.select-json.entrySet())
109 + <option value="$item.key">$item.value</option>
189 189   #end
190 190   #end
191 191   </select>
192 - #if($removedNr > 0)
193 - $removedNr pages had the XObject ##${removeXObj}## removed.
194 - #end
195 195  #end
196 196  #macro(createTextElement $O_elementData $O_tagName)
197 - <input type="text" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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-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>
115 + <input type="text" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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-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-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-query-list-editable) data-query-list-editable="${O_elementData.data-query-list-editable}"')#end>
198 198  #end
199 199  #macro(createNumberElement $O_elementData $O_tagName)
200 - <input type="number" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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>
118 + <input type="number" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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-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-query-list-editable) data-query-list-editable="${O_elementData.data-query-list-editable}"')#end>
201 201  #end
202 -#macro(createEmailElement $O_elementData $O_tagName)
203 - <input type="email" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" autocomplete="off" pattern="^[A-Za-z0-9._+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,63}$"#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>
204 -#end
205 -#macro(createPasswordElement $O_elementData $O_tagName)
206 - <input type="password" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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>
207 -#end
208 -#macro(createDateElement $O_elementData $O_tagName)
209 - <input type="date" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}"#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>
210 -#end
211 -#macro(createColorElement $O_elementData $O_tagName)
212 - <input type="color" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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>
213 -#end
214 -#macro(createRangeElement $O_elementData $O_tagName)
215 - <input type="range" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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>
216 -#end
217 -#macro(createTelElement $O_elementData $O_tagName)
218 - <input type="tel" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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>
219 -#end
220 -#macro(createUrlElement $O_elementData $O_tagName)
221 - <input type="url" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" 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>
222 -#end
223 223  #macro(createCheckboxElement $O_elementData)
224 - <input type="checkbox" name="${O_elementData.id}" id="${O_elementData.id}"#if($O_elementData.data-opener) data-opener="${O_elementData.data-opener}"#end value="${O_elementData.value}"#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
121 + <input type="checkbox" name="${O_elementData.id}" id="${O_elementData.id}" data-mod-display="${O_elementData.id}_checkradio" value="${O_elementData.value}"#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
225 225  #end
226 -#macro(createTextareaElement $O_elementData $O_tagName)
227 - <textarea class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}"#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>
123 +#macro(createExpandStart $id $value)
124 + <div id="${id}_section_${value}" class="togglee">
228 228  #end
229 -#macro(createExpandStart $opener $value)
230 - <div id="${opener.id}_section_#if($value)${value}#else${opener.value}#end" class="togglee">
231 -#end
232 232  #macro(createExpandEnd)
233 233   </div>
234 234  #end
235 235  #macro(createSubmit $O_submit)
236 236   <div class="clearfix">
237 - <p class="alert alert-warning alert-button-float-right">
131 + <p class="alert alert-danger alert-button-float-right">
238 238   <span class="alert-button pull-right">
239 239  #if ($xcontext.user != 'XWiki.XWikiGuest')
240 240   <input type="submit" class="btn btn-primary" id="${O_submit.id}" name="${O_submit.id}" value="${O_submit.button-text}" />