Cambios para el documento Macros
Última modificación por Jip-jan Alunkel el abril 15, 18:09
Desde la versión 2.100
editado por Jip-jan Alunkel
el junio 28, 20:49
el junio 28, 20:49
Cambiar el comentario:
Update document after refactoring.
Hasta la versión 2.107
editado por Jip-jan Alunkel
el junio 28, 23:45
el junio 28, 23:45
Cambiar el comentario:
Update document after refactoring.
Resumen
-
Propiedades de página (1 modificado, 0 añadido, 0 eliminado)
Detalles
- Propiedades de página
-
- Contenido
-
... ... @@ -60,7 +60,7 @@ 60 60 #createNumberElement($elementDataObj $elementType) 61 61 #elseif($elementType == "email") 62 62 #createEmailElement($elementDataObj $elementType) 63 - #elseif($elementType == " email")63 + #elseif($elementType == "password") 64 64 #createPasswordElement($elementDataObj $elementType) 65 65 #elseif($elementType == "range") 66 66 #if($elementDataObj.range-minmax) ... ... @@ -139,26 +139,27 @@ 139 139 #set($codespace = "code") 140 140 #end 141 141 142 - #set($nameExcludeRef = $codespace) 143 - #set($spaceAbsRef = $space.replaceAll('([%_!])', '!$1')) 144 - #set($query_add_xobj = $services.query.xwql("select space.name from XWikiSpace as space where space.parent = :space and space.name <> :nameExclude and space.name <> 'WebPreferences' order by space.name")) 145 - 146 - ## Add XObjects to current child spaces so the spaces can be queried on the XObject to generate the select options. 147 - #set($result_add_xobj = $query_add_xobj.bindValue('space', $spaceAbsRef).bindValue('nameExclude', $nameExcludeRef).addFilter('unique').execute()) 148 - #foreach($item in $result_add_xobj) 149 - #set($doc = $xwiki.getDocument("${space}.${item}.WebHome")) 150 - #set($rightXObj = $doc.getObject("assets.pagemaker.pagemakerClass", true)) 151 - #set($discard = $rightXObj.set('pmSpaceOrder', $foreach.count)) 152 - #set($discard = $doc.save()) 142 + #if(!$isGuest) 143 + ## Add XObjects to current child spaces so the spaces can be queried on the XObject to generate the select options. 144 + #set($nameExcludeRef = $codespace) 145 + #set($spaceAbsRef = $space.replaceAll('([%_!])', '!$1')) 146 + #set($query_add_xobj = $services.query.xwql("select space.name from XWikiSpace as space where space.parent = :space and space.name <> :nameExclude and space.name <> 'WebPreferences' order by space.name")) 147 + #set($result_add_xobj = $query_add_xobj.bindValue('space', $spaceAbsRef).bindValue('nameExclude', $nameExcludeRef).addFilter('unique').execute()) 148 + #foreach($item in $result_add_xobj) 149 + #set($doc = $xwiki.getDocument("${space}.${item}.WebHome")) 150 + #set($rightXObj = $doc.getObject("assets.pagemaker.pagemakerClass", true)) 151 + #set($discard = $rightXObj.set('pmSpaceOrder', $foreach.count)) 152 + #set($discard = $doc.save()) 153 + #end 153 153 #end 154 154 155 155 #set($spaceExcludeRef = $space.replaceAll('([%_!])', '!$1').concat(".${codespace}")) 156 156 #set($spaceLikeRef = $space.replaceAll('([%_!])', '!$1').concat('.%')) 157 157 #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")) 159 + #set($result = $query.bindValue('space', $spaceLikeRef).bindValue('spaceExclude', $spaceExcludeRef).addFilter('unique').execute()) 158 158 159 159 ## Generate the select options from all child spaces that have the 'assets.pagemaker.pagemakerClass' XClass. 160 160 ## The order is still random but the JSON can be extracted from the console with the 'select-spaces-json' attribute. 161 - #set($result = $query.bindValue('space', $spaceLikeRef).bindValue('spaceExclude', $spaceExcludeRef).addFilter('unique').execute()) 162 162 #foreach($item in $result) 163 163 #set($doc = $xwiki.getDocument($item)) 164 164 <option value="$doc.space">$doc.getTitle()</option> ... ... @@ -167,27 +167,29 @@ 167 167 #set($json = $O_elementData.select-json) 168 168 #foreach($key in $json.keySet()) 169 169 #set($spaceDocTitle = $json.get($key)) 170 - #set($spaceDoc = $xwiki.getDocument("${key}.WebHome")) ## Fetch doc or create one if it does not exist by this name. 171 - #set($spaceXObj = $spaceDoc.getObject("assets.pagemaker.pagemakerClass", true)) ## Get or create the needed object. 172 - #set($order_error = ($spaceXObj.getProperty('pmSpaceOrder').value != $foreach.count)) 173 - #set($title_error = ($spaceDoc.getTitle() != $spaceDocTitle)) 174 - #if($spaceDoc.isNew()) ## Doc did not exist so spaceDoc needs a title and a default locale. 175 - #set($discard = $spaceDoc.setTitle($spaceDocTitle)) ## Title. 176 - #set($discard = $spaceDoc.setDefaultLocale("en")) ## Locale. 177 - #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value. 178 - #set($discard = $spaceDoc.save()) 179 - #else 180 - #if($title_error) ## Doc did exist but the title did not match with the JSON value. 181 - #set($discard = $spaceDoc.setTitle($spaceDocTitle)) 182 - #end 183 - #if($order_error) ## Either the property does not exist or the value is incorrect. 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. 184 184 #set($discard = $spaceXObj.set("pmSpaceOrder", $foreach.count)) ## Set the property with the (correct) value. 185 - #end 186 - #if($title_error || $order_error) ## Save only if changed 187 187 #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 188 188 #end 189 189 #end 190 - <option value="$key">$ json.get($key)</option>193 + <option value="$key">$spaceDocTitle</option> 191 191 #end 192 192 #end 193 193 </select>