Changes for page Macros

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

From version 2.107
edited by Jip-jan Alunkel
on June 28, 23:45
Change comment: Update document after refactoring.
To version 2.103
edited by Jip-jan Alunkel
on June 28, 23:32
Change comment: Update document after refactoring.

Summary

Details

Page properties
Content
... ... @@ -147,12 +147,13 @@
147 147   #set($result_add_xobj = $query_add_xobj.bindValue('space', $spaceAbsRef).bindValue('nameExclude', $nameExcludeRef).addFilter('unique').execute())
148 148   #foreach($item in $result_add_xobj)
149 149   #set($doc = $xwiki.getDocument("${space}.${item}.WebHome"))
150 + #set($rightXObj = $doc.getObject("assets.pagemaker.pagemakerClass"))
151 + if()
150 150   #set($rightXObj = $doc.getObject("assets.pagemaker.pagemakerClass", true))
151 151   #set($discard = $rightXObj.set('pmSpaceOrder', $foreach.count))
152 152   #set($discard = $doc.save())
153 153   #end
154 154   #end
155 -
156 156   #set($spaceExcludeRef = $space.replaceAll('([%_!])', '!$1').concat(".${codespace}"))
157 157   #set($spaceLikeRef = $space.replaceAll('([%_!])', '!$1').concat('.%'))
158 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"))
... ... @@ -168,29 +168,28 @@
168 168   #set($json = $O_elementData.select-json)
169 169   #foreach($key in $json.keySet())
170 170   #set($spaceDocTitle = $json.get($key))
171 - #if(!$isGuest)
172 - #set($spaceDoc = $xwiki.getDocument("${key}.WebHome")) ## Fetch doc or create one if it does not exist by this name.
173 - #set($spaceXObj = $spaceDoc.getObject("assets.pagemaker.pagemakerClass", true)) ## Get or create the needed object.
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.
172 + #set($spaceDoc = $xwiki.getDocument("${key}.WebHome")) ## Fetch doc or create one if it does not exist by this name.
173 + #set($spaceXObj = $spaceDoc.getObject("assets.pagemaker.pagemakerClass")) ## Get the needed object if it exists.
174 + #if($spaceXObj)
175 + #set($order_error = ($spaceXObj.getProperty('pmSpaceOrder').value != $foreach.count))
176 + #set($title_error = ($spaceDoc.getTitle() != $spaceDocTitle))
177 + #if($spaceDoc.isNew()) ## Doc did not exist so spaceDoc needs a title and a default locale.
178 + #set($discard = $spaceDoc.setTitle($spaceDocTitle)) ## Title.
179 + #set($discard = $spaceDoc.setDefaultLocale("en")) ## Locale.
180 + #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value.
181 + #set($discard = $spaceDoc.save())
182 + #else
183 + #if($title_error) ## Doc did exist but the title did not match with the JSON value.
184 + #set($discard = $spaceDoc.setTitle($spaceDocTitle))
185 + #end
186 + #if($order_error) ## Either the property does not exist or the value is incorrect.
179 179   #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value.
188 + #end
189 + #if($title_error || $order_error) ## Save only if changed
180 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 191   #end
192 192   #end
193 - <option value="$key">$spaceDocTitle</option>
193 + <option value="$key">$json.get($key)</option>
194 194   #end
195 195   #end
196 196   </select>