Code source wiki de form-elements

Version 2.54 par Jip-jan Alunkel le mars 28, 16:10

Afficher les derniers auteurs
1 {{velocity}}
2 #macro(createFormStart $id $product)
3 {{html}}
4 <form action="" id="${id}" method="post" class="formMaker" data-form-product="${product}" novalidate="novalidate">
5 {{/html}}
6 #end
7 #macro(createFormEnd)
8 {{html}}
9 </form>
10 {{/html}}
11 #end
12
13 #macro(createFormElement $elementDataObj)
14 #set($elementType = $elementDataObj.type)
15 #set($elementTagName = '')
16 #set($requiredAttributes = 'aria-required="false"')
17 #set($requiredCSSClass = '')
18 #set($addedCSSClass = '')
19 #set($hint = '')
20 #if($O_elementData.required == true)
21 #set($requiredAttributes = 'aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"')
22 #set($requiredCSSClass = ' class="required"')
23 #end
24 #if($elementType == "select")
25 #set($addedCSSClass = " select-wrap")
26 #set($elementTagName = "select")
27 #elseif($elementType == "text" || $elementType == "number" || $elementType == "range" || $elementType == "email")
28 #set($elementTagName = "input")
29 #elseif($elementType == "checkbox" || $elementType == "radio")
30 #set($elementTagName = "checkradio")
31 #elseif($elementType == "textarea")
32 #set($elementTagName = "textarea")
33 #else
34 #set($hint = "This type of element does not exist, read the manual for more information about element types.")
35 #end
36 {{html}}
37 #if($elementTagName == "select" || $elementTagName == "input" || $elementTagName == "textarea")
38 <p${requiredCSSClass}>
39 <label for="${elementDataObj.id}_${elementTagName}">
40 $elementDataObj.label
41 <span class="input-wrap${addedCSSClass}">
42 #if($elementTagName == "select")
43 #createSelectElement($elementDataObj $elementTagName $requiredAttributes)
44 #elseif($elementTagName == "textarea")
45 #else
46 #if($elementType == "text")
47 #createTextElement($elementDataObj $elementTagName $requiredAttributes)
48 #elseif($elementType == "number")
49 #elseif($elementType == "email")
50 #elseif($elementType == "range")
51 #end
52 #end
53 #if($elementDataObj.help-block != "")
54 <span id="${elementDataObj.id}_helpBlock" class="help-block">${elementDataObj.help-block}</span>
55 #end
56 #if($elementDataObj.required == true)
57 <span class="required-input-field" title="Required input"></span>
58 <span role="alert" class="form-not-valid-tip"></span>
59 #end
60 </span>
61 </label>
62 </p>
63 #end
64 #if($elementTagName == "checkradio")
65 #if($elementType == "checkbox")
66 #elseif($elementType == "radio")
67 #end
68 #end
69 #if($hint != "")
70 <p class="box errormessage">${hint}</p>
71 #end
72 {{/html}}
73 #end
74
75 #macro(createSelectElement $O_elementData $O_tagName $O_requiredAttributes)
76 <select class="form-select form-control" aria-label="${O_elementData.aria-label}" aria-describedby="${O_elementData.id}_helpBlock" ${O_requiredAttributes}data-set-space="${O_elementData.data-set-space}" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}">
77 <option value="" disabled="" selected="" hidden="hidden">$services.localization.render(${O_elementData.placeholder})</option>
78 #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"))
79 #set($spaceLikeRef = $O_elementData.space-reference.replaceAll('([%_!])', '!$1').concat('.%'))
80 #set($spaceExcludeRef = $O_elementData.space-reference.replaceAll('([%_!])', '!$1').concat('.Code'))
81 #set($query = $query.bindValue('space', $spaceLikeRef))
82 #set($query = $query.bindValue('spaceExclude', $spaceExcludeRef))
83 #set($results = $query.addFilter('unique').execute())
84 #foreach ($item in $results)
85 #set ($document = $xwiki.getDocument($item))
86 <option value="$document.space">$document.getTitle()</option>
87 #end
88 </select>
89 #end
90 #macro(createTextElement $O_elementData $O_tagName $O_requiredAttributes)
91 ###set($dataAttributes = '')
92 ##set($dataAttributes = ' data-query-type="$O_elementData.data-query-type"')
93 ##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-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
94 <input type="text" class="form-control full" name="${O_elementData.id}_${O_tagName}" id="${O_elementData.id}_${O_tagName}" autocomplete="off" placeholder="$services.localization.render(${O_elementData.placeholder})" aria-describedby="${O_elementData.id}_helpBlock"${O_requiredAttributes} aria-label="${O_elementData.aria-label}"#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-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>
95 #end
96
97 {{/velocity}}