Modifications pour le document DocumentTree

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

Depuis 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]
À la version 2.1
modifié par Florent Charton
sur 2022/06/28 18:01
Commentaire de modification : Install extension [org.xwiki.contrib:application-ckeditor-ui/1.64.2]

Résumé

Détails

Propriétés de la Page
Auteur du document
... ... @@ -1,1 +1,1 @@
1 -XWiki.superadmin
1 +xwiki:XWiki.fcharton
XWiki.JavaScriptExtension[0]
Code
... ... @@ -1,9 +1,8 @@
1 -require(['jquery', 'imageSelector'], function($, imageSelector) {
2 - function getSelected(instance) {
3 - /* jshint camelcase: false */
4 - return instance.get_selected(false)[0];
5 - }
6 -
1 +require(['jquery', 'imageSelector'], function ($, imageSelector) {
2 + function getSelected(instance) {
3 + return instance.get_selected(false)[0];
4 + }
5 +
7 7   function validateSelection(instance) {
8 8   var selected = getSelected(instance);
9 9   return selected && selected.startsWith("attachment:");
... ... @@ -10,14 +10,23 @@
10 10   }
11 11  
12 12   $('.attachments-tree').xtree()
13 - .one('ready.jstree', function(event, data) {
12 + .one('ready.jstree', function (event, data) {
14 14   data.instance.openTo("document:" + XWiki.Model.serialize(XWiki.currentDocument.getDocumentReference()));
15 15   })
16 - .on('changed.jstree', function(event, data) {
15 + .on('changed.jstree', function (event, data) {
17 17   if (validateSelection(data.instance)) {
18 18   imageSelector.updateSelectedImageReferences([getSelected(data.instance)]);
19 19   } else {
20 - imageSelector.updateSelectedImageReferences([]);
19 + imageSelector.updateSelectedImageReferences([]);
21 21   }
21 + })
22 + .on('load_node.jstree', function (node, status) {
23 + for (var child of status.node.children) {
24 + var childNode = status.instance.get_node(child);
25 + if (childNode.data.mimetype && !childNode.data.mimetype.startsWith('image/')) {
26 + // Disable the nodes instead of hiding them because they still can be search in the search field.
27 + status.instance.disable_node(childNode);
28 + }
29 + }
22 22   });
23 23  });