Modifications pour le document DocumentTree

Modifié par Florent Charton le 2024/08/08 18:44

Depuis la version 3.1
modifié par Florent Charton
sur 2024/08/08 18:44
Commentaire de modification : Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/15.10.11]
À la version 1.1
modifié par superadmin
sur 2022/06/20 08:49
Commentaire de modification : Install extension [org.xwiki.contrib:application-ckeditor-ui/1.63.1]

Résumé

Détails

Propriétés de la Page
Auteur du document
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.fcharton
1 +XWiki.superadmin
XWiki.JavaScriptExtension[0]
Code
... ... @@ -1,40 +1,23 @@
1 -require(['jquery', 'imageSelector'], function ($, imageSelector) {
2 - function getSelected(instance) {
3 - return instance.get_selected(false)[0];
4 - }
5 -
1 +require(['jquery', 'imageSelector'], function($, imageSelector) {
2 + function getSelected(instance) {
3 + /* jshint camelcase: false */
4 + return instance.get_selected(false)[0];
5 + }
6 +
6 6   function validateSelection(instance) {
7 7   var selected = getSelected(instance);
8 8   return selected && selected.startsWith("attachment:");
9 9   }
10 10  
11 - function init(element) {
12 - element.find('.attachments-tree').xtree()
13 - .one('ready.jstree', function (event, data) {
14 - const documentReference = element.find('input[name="documentReference"]').val()
15 - data.instance.openTo(documentReference);
16 - })
17 - .on('changed.jstree', function (event, data) {
18 - if (validateSelection(data.instance)) {
19 - imageSelector.updateSelectedImageReferences([getSelected(data.instance)], $(this));
20 - } else {
21 - imageSelector.updateSelectedImageReferences([], $(this));
22 - }
23 - })
24 - .on('load_node.jstree', function (node, status) {
25 - for (var child of status.node.children) {
26 - var childNode = status.instance.get_node(child);
27 - if (childNode.data.mimetype && !childNode.data.mimetype.startsWith('image/')) {
28 - // Disable the nodes instead of hiding them because they still can be search in the search field.
29 - status.instance.disable_node(childNode);
30 - }
31 - }
32 - });
33 - }
34 -
35 - init($(document).find('.image-selector'));
36 -
37 - $(document).on('xwiki:dom:updated', (event, data) => {
38 - data.elements.forEach(element => init($(element)));
39 - });
12 + $('.attachments-tree').xtree()
13 + .one('ready.jstree', function(event, data) {
14 + data.instance.openTo("document:" + XWiki.Model.serialize(XWiki.currentDocument.getDocumentReference()));
15 + })
16 + .on('changed.jstree', function(event, data) {
17 + if (validateSelection(data.instance)) {
18 + imageSelector.updateSelectedImageReferences([getSelected(data.instance)]);
19 + } else {
20 + imageSelector.updateSelectedImageReferences([]);
21 + }
22 + });
40 40  });
XWiki.UIExtensionClass[0]
Executed Content
... ... @@ -1,11 +1,11 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.jsx.use('CKEditor.ImageSelectorServiceUIX.DocumentTree'))
3 -{{html clean="false" wiki="false"}}
4 - <input type='hidden' name='documentReference' value='$escapetool.xml("document:$services.model.serialize($request.documentReference, 'default')")' />
3 +{{html clean="false"}}
5 5   #template('documentTree_macros.vm')
6 6   #documentTree({
7 7   'class': 'attachments-tree',
8 8   'finder': true,
8 + 'openTo': "document:$services.model.serialize($doc.documentReference, 'default')",
9 9   'showWikis': true,
10 10   'showTranslations': false
11 11   })
Extension Parameters
... ... @@ -1,3 +1,3 @@
1 1  priority=200
2 -title=ckeditor.plugin.image.imageSelector.treeTab.title
2 +title=ckeditor.plugin.image.imageSelector.documentTreeTab.title
3 3  id=documentTree