Änderungen von Dokument LinkNameStrategyHelper
Zuletzt geändert von Daniel Herrmann am 2025/09/20 09:53
Auf Version
3.1
bearbeitet von Daniel Herrmann
am 2025/09/20 09:53
am 2025/09/20 09:53
Änderungskommentar:
Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/17.7.0]
Zusammenfassung
Details
- Seiteneigenschaften
-
- Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. admin1 +XWiki.dherrman - Inhalt
-
... ... @@ -1,7 +1,6 @@ 1 -{{template name="hierarchy_macros.vm" /}}1 +{{template name="hierarchy_macros.vm"/}} 2 2 3 3 {{velocity output="false"}} 4 - 5 5 #macro (computeInfoFromReference $reference $result) 6 6 #set ($title = $reference.name) 7 7 #set ($options = { ... ... @@ -14,39 +14,74 @@ 14 14 #setVariable("$result" $location) 15 15 #end 16 16 16 +#macro (handleValidationRequest) 17 + #set ($requestedReference = $services.model.resolveDocument($request.input, 'default')) 18 + #if ($xwiki.exists($requestedReference)) 19 + #set ($answer = { 20 + 'validated': true, 21 + 'validation': 'exists', 22 + 'input': $request.input 23 + }) 24 + #elseif ($services.modelvalidation.isValid($requestedReference)) 25 + #set ($answer = { 26 + 'validated': true, 27 + 'validation': 'name', 28 + 'input': $request.input 29 + }) 30 + #else 31 + #set ($answer = { 32 + 'validated': false, 33 + 'input': $request.input 34 + }) 35 + #end 36 + #jsonResponse($answer) 37 +#end 38 + 17 17 #macro (handleSuggestionRequest) 18 18 #set ($isAdvanced = $services.user.properties.type == 'ADVANCED') 19 19 #set ($result = []) 20 - #if ($isAdvanced) 21 - #set ($requestedReference = $services.model.resolveDocument($request.input, 'default')) 22 - #set ($cleanRequestedReference = $services.modelvalidation.transformEntityReference($requestedReference)) 42 + #set ($requestedReference = $services.model.resolveDocument($request.input, 'default')) 43 + #if ($xwiki.exists($requestedReference)) 23 23 #set ($location = $NULL) 24 - #computeInfoFromReference($ cleanRequestedReference $location)45 + #computeInfoFromReference($requestedReference $location) 25 25 #set ($discard = $result.add({ 26 - 'reference': $services.model.serialize($cleanRequestedReference, 'default'), 27 - 'type': 'fullyResolvedInput', 47 + 'reference': $services.model.serialize($requestedReference, 'default'), 48 + 'type': 'exactMatch', 49 + 'location': $location, 50 + 'title': $xwiki.getDocument($requestedReference).displayTitle 51 + })) 52 + #else 53 + #if ($isAdvanced) 54 + #set ($cleanRequestedReference = $services.modelvalidation.transformEntityReference($requestedReference)) 55 + #set ($location = $NULL) 56 + #computeInfoFromReference($cleanRequestedReference $location) 57 + #set ($discard = $result.add({ 58 + 'reference': $services.model.serialize($cleanRequestedReference, 'default'), 59 + 'type': 'fullyResolvedInput', 60 + 'location': $location 61 + })) 62 + #end 63 + #set ($parentReference = $services.model.resolveDocument($request.base)) 64 + #set ($requestedName = $request.input) 65 + #set ($transformedName = $services.modelvalidation.transformName($requestedName)) 66 + #set ($spaceReference = $services.model.createSpaceReference($transformedName, $parentReference.lastSpaceReference)) 67 + #set ($documentReference = $services.model.createDocumentReference('WebHome', $spaceReference)) 68 + #set ($location = $NULL) 69 + #computeInfoFromReference($documentReference $location) 70 + #set ($discard = $result.add({ 71 + 'reference': $services.model.serialize($documentReference, 'default'), 72 + 'type': 'resolvedInSpace', 28 28 'location': $location 29 29 })) 30 30 #end 31 - #set ($parentReference = $services.model.resolveDocument($request.base)) 32 - #set ($requestedName = $request.input) 33 - #set ($transformedName = $services.modelvalidation.transformName($requestedName)) 34 - #set ($spaceReference = $services.model.createSpaceReference($transformedName, $parentReference.lastSpaceReference)) 35 - #set ($documentReference = $services.model.createDocumentReference('WebHome', $spaceReference)) 36 - #set ($location = $NULL) 37 - #computeInfoFromReference($documentReference $location) 38 - #set ($discard = $result.add({ 39 - 'reference': $services.model.serialize($documentReference, 'default'), 40 - 'type': 'resolvedInSpace', 41 - 'location': $location 42 - })) 43 43 #jsonResponse($result) 44 -#end 45 -{{/velocity}} 46 -{{velocity}} 47 -#if ($xcontext.action == 'get' && $request.input != '') 48 -#handleSuggestionRequest() 77 +#end{{/velocity}} 78 +{{velocity}}#if ($xcontext.action == 'get' && $request.input != '' && $request.action != '') 79 + #if ($request.action == 'suggest') 80 + #handleSuggestionRequest() 81 + #elseif ($request.action == 'validate') 82 + #handleValidationRequest() 83 + #end 49 49 #else 50 50 Technical page to help using the name strategy when suggesting links. 51 -#end 52 -{{/velocity}} 86 +#end{{/velocity}}