Changes for page MentionsMacro

Last modified by Drunk Monkey on 2023-11-02 09:50

From version 1.1
edited by Drunk Monkey
on 2020-06-29 20:57
Change comment: Install extension [org.xwiki.platform:xwiki-platform-mentions-ui/12.5]
To version 2.1
edited by Drunk Monkey
on 2020-07-06 08:28
Change comment: Install extension [org.xwiki.platform:xwiki-platform-mentions-ui/12.5.1]

Summary

Details

XWiki.JavaScriptExtension[0]
Code
... ... @@ -4,7 +4,7 @@
4 4   "?v=$escapetool.url($xwiki.version)"
5 5   }
6 6  });
7 -require(['deferred!ckeditor', 'xwiki-suggestUsers', 'jquery'], function (ckeditorPromise, suggestUsers, $) {
7 +require(['deferred!ckeditor', 'xwiki-suggestUsers', 'jquery', 'xwiki-meta'], function (ckeditorPromise, suggestUsers, $, xm) {
8 8   /*
9 9   * Keep records of the added anchors during the current edit session.
10 10   * Note that the anchors saved here are not only the ones added on the current session,
... ... @@ -99,14 +99,22 @@
99 99   '</li>',
100 100   outputTemplate: function (param) {
101 101   var editor = ckeditor.instances[name];
102 + var currentWikiReference = xm.documentReference.extractReference(XWiki.EntityType.WIKI);
103 +
104 + // Compute an absolute reference containing the wiki reference even if the user is local.
105 + var documentReference = XWiki.Model.resolve(param.id, XWiki.EntityType.DOCUMENT);
106 + if (!documentReference.extractReference(XWiki.EntityType.WIKI)) {
107 + documentReference = documentReference.appendParent(currentWikiReference);
108 + }
109 + var serializedReference = XWiki.Model.serialize(documentReference);
102 102   editor.once('afterInsertHtml', function () {
103 103   editor.execCommand('xwiki-macro-insert', {
104 104   name: 'mention',
105 105   inline: true,
106 106   parameters: {
107 - reference: param.id,
115 + reference: serializedReference,
108 108   style: 'FULL_NAME',
109 - anchor: getAnchor(param.id)
117 + anchor: getAnchor(serializedReference)
110 110   }
111 111   });
112 112   });
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -21,6 +21,6 @@
21 21  #end
22 22  #set ($link = $xwiki.getURL($reference.reference, 'view'))
23 23  {{html}}
24 -<a id="$anchor" class="$stringtool.join($cssClasses, ' ')" data-reference="$services.model.serialize($reference.reference, 'compactwiki')" href="$link">$content</a>
24 +<a id="$anchor" class="$stringtool.join($cssClasses, ' ')" data-reference="$services.model.serialize($reference.reference, 'default')" href="$link">$content</a>
25 25  {{/html}}
26 26  {{/velocity}}