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