Changes for page Macros

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

From version 2.19
edited by Jip-jan Alunkel
on March 24, 15:49
Change comment: There is no comment for this version
To version 2.32
edited by Jip-jan Alunkel
on March 26, 00:12
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,36 +2,74 @@
1 -
2 2  {{velocity}}
3 -
4 -#set($localitySelectElement = {
5 - "id" : "locality",
6 - "type" : "select",
7 - "required" : true,
8 - "label" : "Locality of the main complaint",
9 - "aria-label" : "Select the locality",
10 - "data-error-response-type" : "use_label_defined_1",
11 - "data-set-space" : "true",
12 - "placeholder" : "cases.word.locality_select.placeholder",
13 - "space-reference" : "cases",
14 - "help-block" : "In which physiological or psychological epicenter can the main complaint be placed? Select the best fitting option from this list."
15 -})
16 -
17 -#macro(createSelectElement $elementDataObj)
2 +#macro(createFormElement $elementDataObj)
3 + #set($elementType = $elementDataObj.type)
4 + #set($elementTagName = "")
18 18   #set($requiredAttributes = 'aria-required="false"')
19 - #if($elementDataObj.required == true)
20 - #set($requiredAttributes = 'aria-required="true" required="required"')
21 - <p class="required">
6 + #set($requiredCSSClass = '')
7 + #set($addedCSSClass = '')
8 + #set($hint = '')
9 + #if($O_elementData.required == true)
10 + #set($requiredAttributes = 'aria-required="true" required="required" data-error-response-type="${O_elementData.data-error-response-type}"')
11 + #set($requiredCSSClass = ' class="required"')
22 22   #end
23 - <label for="${elementDataObj.id}_select">
13 + #if($elementType == "select")
14 + #set($addedCSSClass = " select-wrap")
15 + #set($elementTagName = "select")
16 + #elseif($elementType == "text" || $elementType == "number" || $elementType == "range" || $elementType == "email")
17 + #set($elementTagName = "input")
18 + #elseif($elementType == "checkbox" || $elementType == "radio")
19 + #set($elementTagName = "checkradio")
20 + #elseif($elementType == "textarea")
21 + #set($elementTagName = "textarea")
22 + #else
23 + #set($hint = "This type of element does not exist, read the manual for more information about element types.")
24 + #end
25 +{{html}}
26 + #if($elementTagName == "select" || $elementTagName == "input" || $elementTagName == "textarea")
27 + <p${requiredCSSClass}>
28 + <label for="${elementDataObj.id}_${elementTagName}">
24 24   $elementDataObj.label
25 - <span class="input-wrap select-wrap">
26 - <select class="form-select form-control" aria-label="${elementDataObj.aria-label}" aria-describedby="${elementDataObj.id}_helpBlock" $requiredAttributes data-error-response-type="${elementDataObj.data-error-response-type}" data-set-space="${elementDataObj.data-set-space}" name="${elementDataObj.id}_select" id="${elementDataObj.id}_select">
27 - <option value="" disabled="" selected="" hidden="hidden">$services.localization.render(${elementDataObj.placeholder})</option>
28 -## #set ($spaceRef = $elementDataObj.space-reference)
30 + <span class="input-wrap${addedCSSClass}">
31 + #if($elementTagName == "select")
32 + #createSelectElement($elementDataObj $elementTagName $requiredAttributes)
33 + #elseif($elementTagName == "textarea")
34 + #else
35 + #if($elementType == "text")
36 + #createTextElement($elementDataObj $elementTagName)
37 + #elseif($elementType == "number")
38 + #elseif($elementType == "email")
39 + #elseif($elementType == "range")
40 + #end
41 + #end
42 + #if($elementDataObj.help-block != "")
43 + <span id="${elementDataObj.id}_helpBlock" class="help-block">${elementDataObj.help-block}</span>
44 + #end
45 + #if($elementDataObj.required == true)
46 + <span class="required-input-field" title="Required input"></span>
47 + <span role="alert" class="form-not-valid-tip"></span>
48 + #end
49 + </span>
50 + </label>
51 + </p>
52 + #end
53 + #if($elementTagName == "checkradio")
54 + #if($elementType == "checkbox")
55 + #elseif($elementType == "radio")
56 + #end
57 + #end
58 + #if($hint != "")
59 + <p class="box errormessage">${hint}</p>
60 + #end
61 +{{/html}}
62 +#end
63 +
64 +#macro(createSelectElement $O_elementData $O_tagName $O_requiredAttributes)
65 + <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}">
66 + <option value="" disabled="" selected="" hidden="hidden">$services.localization.render(${O_elementData.placeholder})</option>
29 29   #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"))
30 - #set ($spaceLikeRef = $elementDataObj.space-reference.replaceAll('([%_!])', '!$1').concat('.%'))
31 - #set ($spaceExcludeRef = $elementDataObj.space-reference.replaceAll('([%_!])', '!$1').concat('.Code'))
68 + #set($spaceLikeRef = $O_elementData.space-reference.replaceAll('([%_!])', '!$1').concat('.%'))
69 + #set($spaceExcludeRef = $O_elementData.space-reference.replaceAll('([%_!])', '!$1').concat('.Code'))
32 32   #set($query = $query.bindValue('space', $spaceLikeRef))
33 - #set($query = $query.bindValue('spaceExclude', '${spaceExcludeRef}'))
71 + #set($query = $query.bindValue('spaceExclude', $spaceExcludeRef))
34 34   #set($results = $query.addFilter('unique').execute())
35 35   #foreach ($item in $results)
36 36   #set ($document = $xwiki.getDocument($item))
... ... @@ -37,21 +37,20 @@
37 37   <option value="$document.space">$document.getTitle()</option>
38 38   #end
39 39   </select>
40 - <span id="${elementDataObj.id}_helpBlock" class="help-block">${elementDataObj.help-block}</span>
41 - #if($elementDataObj.required == true)
42 - <span class="required-input-field" title="Required input"></span>
43 - <span role="alert" class="form-not-valid-tip"></span>
44 - #end
45 - </span>
46 - </label>
47 - #if($elementDataObj.required == true)
48 - </p>
49 - #end
50 50  #end
79 +#macro(createTextElement $O_elementData $O_tagName $O_requiredAttributes)
80 +#set($dataAttributes = '')
81 +#if($O_elementData.data-query-type) #set($dataAttributes = '${dataAttributes} data-query-type="${O_elementData.data-query-type}"')#end
82 +#if($O_elementData.data-query-list-type) #set($dataAttributes = '${dataAttributes} data-query-list-type="${O_elementData.data-query-list-type}"')#end
83 +#if($O_elementData.data-query-list-contents) #set($dataAttributes = '${dataAttributes} data-query-list-contents="${O_elementData.data-query-list-contents}"')#end
84 +#if($O_elementData.data-create-page) #set($dataAttributes = '${dataAttributes} data-create-page="${O_elementData.data-create-page}"')#end
85 +#if($O_elementData.data-query-scope) #set($dataAttributes = '${dataAttributes} data-query-scope="${O_elementData.data-query-scope}"')#end
86 +#if($O_elementData.data-create-xobj) #set($dataAttributes = '${dataAttributes} data-create-xobj="${O_elementData.data-create-xobj}"')#end
87 +#if($O_elementData.data-xobj-classname) #set($dataAttributes = '${dataAttributes} data-xobj-classname="${O_elementData.data-xobj-classname}"')#end
88 +#if($O_elementData.data-xobj-fieldname) #set($dataAttributes = '${dataAttributes} data-xobj-fieldname="${O_elementData.data-xobj-fieldname}"')#end
89 +#if($O_elementData.data-query-list-editable) #set($dataAttributes = '${dataAttributes} data-query-list-editable="${O_elementData.data-query-list-editable}"')#end
90 + <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}"${dataAttributes}>
91 +#end
51 51  
52 -#createSelectElement($localitySelectElement)
53 -$spaceExcludeRef
54 -
55 -
56 56  {{/velocity}}
57 57