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