Änderungen von Dokument LinkNameStrategyHelper

Zuletzt geändert von Daniel Herrmann am 2025/09/20 09:53

Von Version 1.1 Icon
bearbeitet von admin
am 2025/02/23 19:33
Änderungskommentar: Imported from XAR
Auf Version Icon 3.1
bearbeitet von Daniel Herrmann
am 2025/09/20 09:53
Änderungskommentar: Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/17.7.0]

Zusammenfassung

Details

Icon Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.admin
1 +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}}