Changes for page homeopathsSheet

Last modified by Jip-jan Alunkel on March 26, 17:31

From version 1.54
edited by Jip-jan Alunkel
on March 07, 23:35
Change comment: There is no comment for this version
To version 1.61
edited by Jip-jan Alunkel
on March 08, 00:51
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -7,8 +7,9 @@
7 7  #set($discard = $xwiki.jsx.use('assets.pagemaker.WebHome', {'minify': false, 'language': $context.language, 'myParameter': 'value'}))
8 8  #set($theDoc = $xwiki.getDocument("${doc.fullName}").getTranslatedDocument())
9 9  #set($isInline = $xcontext.action == 'edit' && $request.get('editor') == 'inline')
10 +#set($theClass = "homeopaths.Code.homeopathsClass")
10 10  ## Create object (important for sheet binding, do not remove)
11 -#set($theDocObj = $doc.getObject("homeopaths.Code.homeopathsClass", true))
12 +#set($theDocObj = $doc.getObject($theClass, true))
12 12  #set($hasRight = !$isGuest && ($theDocObj.getProperty('user').value == $context.getUser() || $hasAdmin))
13 13  $theDoc.getContent()
14 14  {{html wiki="true" clean="false"}}
... ... @@ -77,62 +77,14 @@
77 77   #set($children = {})
78 78   #foreach($item in $classProperties.keySet())
79 79   #if($classProperties[$item].parent)
80 -$item
81 81   #set($parentID = $classProperties[$item].parent)
82 - #set($discard = $children.put("$parentID", {}))
82 + #if(!$children[$parentID])
83 + #set($discard = $children.put("$parentID", {}))
84 + #end
83 83   #set($discard = $children["$parentID"].put($item, $classProperties[$item]))
84 84   #end
85 85   #end
86 -$children
87 - #foreach($item in $classProperties.keySet())
88 - #set($label = $services.localization.render("homeopaths.classproperty.${item}"))
89 - #if($theDocObj.getProperty($item))
90 - #set($value = $theDocObj.getProperty($item).value)
91 - #if($classProperties[$item].type == "bool")
92 - #set($newElem = {
93 - "id" : "$item",
94 - "type" : "checkbox",
95 - "required" : "false",
96 - "label" : "$label",
97 - "value" : "$value",
98 - "data-opener" : "true"
99 - })
100 - #else
101 -## #if($classProperties[$item].opener)
102 - #set($newElem = {
103 - "id": "$item",
104 - "type": "text",
105 - "required" : "false",
106 - "label" : "$label",
107 - "data-create-xobj" : "true",
108 - "data-xobj-classname" : "homeopaths.Code.homeopathsClass",
109 - "data-xobj-fieldname" : "$item",
110 - "value": "$value"
111 - })
112 - #end
113 - #set($thisObj["$item"] = $newElem)
114 - #end
115 - #end
116 - #set($practiceName = {
117 - "id": "practiceName",
118 - "type": "text",
119 - "required" : "false",
120 - "label" : "Practice name",
121 - "data-create-xobj" : "true",
122 - "data-xobj-classname" : "homeopaths.Code.homeopathsClass",
123 - "data-xobj-fieldname" : "practiceName",
124 - "value": "$doc.getTitle()"
125 - })
126 - #set($city = {
127 - "id": "city",
128 - "type": "text",
129 - "required" : "false",
130 - "label" : "City",
131 - "data-create-xobj" : "true",
132 - "data-xobj-classname" : "homeopaths.Code.homeopathsClass",
133 - "data-xobj-fieldname" : "pmCity",
134 - "value": "$theDocObj.getProperty('pmCity').value"
135 - })
88 + #createElementObjects($classProperties)
136 136   #set($submit = {
137 137   "id" : "edit_details",
138 138   "button-text" : "Save changes",
... ... @@ -154,10 +154,11 @@
154 154   </div>
155 155   <div class="modal-body">
156 156   #foreach($obj in $thisObj)
157 - #createFormElement($obj)
110 + $obj
111 +## #createFormElement($obj)
158 158   #end
159 - #createFormElement($practiceName)
160 - #createFormElement($city)
113 +## #createFormElement($practiceName)
114 +## #createFormElement($city)
161 161   </div>
162 162   <div class="modal-footer">
163 163   <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
... ... @@ -171,5 +171,35 @@
171 171  #else
172 172   This page can not be viewed in inline mode.
173 173  #end
128 +
129 +#macro(createElementObjects $properties)
130 + #foreach($item in $properties.keySet())
131 + #set($label = $services.localization.render("homeopaths.classproperty.${item}"))
132 + #if($theDocObj.getProperty($item))
133 + #set($value = $theDocObj.getProperty($item).value)
134 + #set($newElem = {
135 + "id" : "$item",
136 + "type" : $classProperties[$item].type,
137 + "required" : "false",
138 + "label" : "$label",
139 + "data-create-xobj" : "true",
140 + "data-xobj-classname" : $theClass,
141 + "data-xobj-fieldname" : "$item",
142 + "value" : "$value"
143 + })
144 + #if($classProperties[$item].opener == 1)
145 + #set($discard = $newElem.put("data-opener", "true"))
146 + #end
147 + #if($classProperties[$item].extraAttributes)
148 + #set($attrMap = $classProperties[$item].extraAttributes)
149 + #foreach($attr in $attrMap.keySet())
150 + #set($discard = $newElem.put("$attr", $attrMap[$attr]))
151 + #end
152 + #end
153 + #set($thisObj["$item"] = $newElem)
154 + #end
155 + #end
156 +#end
157 +
174 174  {{/html}}
175 175  {{/velocity}}