Изменения документа Document Tree Macros

Редактировал(а) Андрей Ганьков 2026/01/23 10:50

От версии 8.1
отредактировано Андрей Ганьков
на 2026/01/23 10:50
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.10.2]
К версии 6.1
отредактировано Андрей Ганьков
на 2025/07/06 04:57
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.5.0]

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -152,8 +152,6 @@
152 152   #set ($limit = $mathtool.max($numbertool.toNumber($request.limit).intValue(), 1))
153 153   #if ("$!limit" == '')
154 154   #set ($limit = 15)
155 - #else
156 - #validateQueryLimit($limit)
157 157   #end
158 158   #if ($nodeId == '#' && $docTreeConfig.showRoot)
159 159   #maybeAddNode($actualNodeId $children)
... ... @@ -288,7 +288,7 @@
288 288  
289 289  #macro (addSpaceNode $spaceReference $siblings)
290 290   #set ($spaceId = $services.model.serialize($spaceReference, 'default'))
291 - #set ($spaceNodeId = "space:$spaceId")
289 + #set ($nodeId = "space:$spaceId")
292 292   #set ($hasSpaceAdmin = $services.security.authorization.hasAccess('admin', $spaceReference))
293 293   #set ($canViewSpace = $services.security.authorization.hasAccess('view', $spaceReference))
294 294   #if ($docTreeConfig.showTerminalDocuments)
... ... @@ -296,7 +296,7 @@
296 296   #set ($hasChildren = true)
297 297   #else
298 298   ## We display only the nested spaces. This space might contain only documents.
299 - #set ($hasChildren = $tree.getChildCount($spaceNodeId) > 0)
297 + #set ($hasChildren = $tree.getChildCount($nodeId) > 0)
300 300   #end
301 301   #set ($isOpened = false)
302 302   #if ("$!docTreeConfig.expandToLevel" != '')
... ... @@ -306,11 +306,11 @@
306 306   #else
307 307   #set ($rootNode = $docTreeConfig.root)
308 308   #end
309 - #set ($rootDistance = $tree.getPath($spaceNodeId).size())
307 + #set ($rootDistance = $tree.getPath($nodeId).size())
310 310   #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance))
311 311   #end
312 312   #set ($discard = $siblings.add({
313 - 'id': $spaceNodeId,
311 + 'id': $nodeId,
314 314   'text': $spaceReference.name,
315 315   'icon': 'fa fa-folder-o',
316 316   'iconOpened': 'fa fa-folder-open-o',
... ... @@ -356,7 +356,7 @@
356 356  
357 357  #macro (addDocumentNode $documentReference $siblings)
358 358   #set ($documentId = $services.model.serialize($documentReference, 'default'))
359 - #set ($docNodeId = "document:$documentId")
357 + #set ($nodeId = "document:$documentId")
360 360   #set ($label = $documentReference.name)
361 361   #if (!$docTreeConfig.showSpaces &&
362 362   $documentReference.name == $services.model.getEntityReference('DOCUMENT', 'default').name)
... ... @@ -373,11 +373,20 @@
373 373   #set ($label = $plainTitle)
374 374   #end
375 375   #end
376 - #set ($hasChildren = $tree.getChildCount($docNodeId) > 0)
374 + #set ($hasChildren = $tree.getChildCount($nodeId) > 0)
377 377   #set ($isOpened = false)
378 - #computeIsOpened($docNodeId $isOpened)
376 + #if ("$!docTreeConfig.expandToLevel" != '')
377 + #set ($rootNode = "wiki:$services.wiki.currentWikiId")
378 + #if ("$!docTreeConfig.root" != '')
379 + #set ($rootNode = "wiki:$services.wiki.currentWikiId")
380 + #else
381 + #set ($rootNode = $docTreeConfig.root)
382 + #end
383 + #set ($rootDistance = $tree.getPath($nodeId).size())
384 + #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance))
385 + #end
379 379   #set ($discard = $siblings.add({
380 - 'id': $docNodeId,
387 + 'id': $nodeId,
381 381   'text': $label,
382 382   'icon': 'fa fa-file-o',
383 383   'children': $hasChildren,
... ... @@ -439,27 +439,9 @@
439 439   #end
440 440  #end
441 441  
442 -#macro (computeIsOpened $docNodeId $result)
443 - #set ($isOpened = false)
444 - #if ("$!docTreeConfig.expandToLevel" != '')
445 - #set ($rootNode = "wiki:$services.wiki.currentWikiId")
446 - #if ("$!docTreeConfig.root" != '')
447 - #set ($rootNode = "wiki:$services.wiki.currentWikiId")
448 - #else
449 - #set ($rootNode = $docTreeConfig.root)
450 - #end
451 - #set ($rootDistance = $tree.getPath($docNodeId).size())
452 - #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance))
453 - #end
454 - #setVariable("$result" $isOpened)
455 -#end
456 -
457 457  #macro (addTranslationsNode $documentReference $siblings)
458 - #set ($isOpened = false)
459 - #set ($docNodeId = "translations:${documentReference}")
460 - #computeIsOpened($docNodeId $isOpened)
461 - #set ($discard = $siblings.add({
462 - 'id': $docNodeId,
450 + #set ($discard = $children.add({
451 + 'id': "translations:${documentReference}",
463 463   'text': 'Translations',
464 464   'icon': 'fa fa-language',
465 465   'children': true,
... ... @@ -467,9 +467,6 @@
467 467   'type': 'translations',
468 468   'validChildren': ['translation'],
469 469   'canDelete': $services.security.authorization.hasAccess('delete', $documentReference)
470 - },
471 - 'state': {
472 - 'opened': $isOpened
473 473   }
474 474   }))
475 475  #end
... ... @@ -486,11 +486,8 @@
486 486  
487 487  #macro (addTranslationNode $translationReference $siblings)
488 488   #set ($currentLocale = $services.localization.currentLocale)
489 - #set ($isOpened = false)
490 - #set ($docNodeId = "translation:$services.model.serialize($translationReference, 'default')_$translationReference.locale")
491 - #computeIsOpened($docNodeId $isOpened)
492 492   #set ($discard = $siblings.add({
493 - 'id': $docNodeId,
476 + 'id': "translation:$services.model.serialize($translationReference, 'default')_$translationReference.locale",
494 494   'text': $translationReference.locale.getDisplayName($currentLocale),
495 495   'icon': 'fa fa-file-text-o',
496 496   'children': false,
... ... @@ -501,9 +501,6 @@
501 501   },
502 502   'a_attr': {
503 503   'href': $xwiki.getURL($translationReference)
504 - },
505 - 'state': {
506 - 'opened': $isOpened
507 507   }
508 508   }))
509 509  #end
... ... @@ -520,11 +520,8 @@
520 520  #end
521 521  
522 522  #macro (addAttachmentsNode $documentReference $siblings)
523 - #set ($isOpened = false)
524 - #set ($docNodeId = "attachments:${documentReference}")
525 - #computeIsOpened($docNodeId $isOpened)
526 526   #set ($discard = $siblings.add({
527 - 'id': $docNodeId,
504 + 'id': "attachments:${documentReference}",
528 528   'text': 'Attachments',
529 529   'icon': 'fa fa-paperclip',
530 530   'children': true,
... ... @@ -536,9 +536,6 @@
536 536   },
537 537   'a_attr': {
538 538   'href': $xwiki.getURL($documentReference, 'view', 'viewer=attachments')
539 - },
540 - 'state': {
541 - 'opened': $isOpened
542 542   }
543 543   }))
544 544  #end
... ... @@ -558,11 +558,8 @@
558 558   #set ($attachmentId = $services.model.serialize($attachmentReference, 'default'))
559 559   #set ($canEditDoc = $services.security.authorization.hasAccess('edit', $attachmentReference.parent))
560 560   #getAttachmentIcon($attachment $icon)
561 - #set ($isOpened = false)
562 - #set ($docNodeId = "attachment:$attachmentId")
563 - #computeIsOpened($docNodeId $isOpened)
564 564   #set ($discard = $siblings.add({
565 - 'id': $docNodeId,
536 + 'id': "attachment:$attachmentId",
566 566   'text': $attachment.filename,
567 567   'icon': $icon,
568 568   'children': false,
... ... @@ -581,9 +581,6 @@
581 581   },
582 582   'a_attr': {
583 583   'href': $attachment.document.getAttachmentURL($attachment.filename)
584 - },
585 - 'state': {
586 - 'opened': $isOpened
587 587   }
588 588   }))
589 589  #end
... ... @@ -662,11 +662,8 @@
662 662  #end
663 663  
664 664  #macro (addClassPropertiesNode $documentReference $siblings)
665 - #set ($isOpened = false)
666 - #set ($docNodeId = "classProperties:${documentReference}")
667 - #computeIsOpened($docNodeId $isOpened)
668 - #set ($discard = $siblings.add({
669 - 'id': $docNodeId,
633 + #set ($discard = $children.add({
634 + 'id': "classProperties:${documentReference}",
670 670   'text': 'Class Properties',
671 671   'icon': 'fa fa-gears',
672 672   'children': true,
... ... @@ -674,9 +674,6 @@
674 674   'type': 'classProperties',
675 675   'validChildren': ['classProperty'],
676 676   'canDelete': $services.security.authorization.hasAccess('edit', $documentReference)
677 - },
678 - 'state': {
679 - 'opened': $isOpened
680 680   }
681 681   }))
682 682  #end
... ... @@ -709,11 +709,8 @@
709 709   #if (!$icon)
710 710   #set ($icon = 'gear')
711 711   #end
712 - #set ($isOpened = false)
713 - #set ($docNodeId = "classProperty:$classPropertyId")
714 - #computeIsOpened($docNodeId $isOpened)
715 715   #set ($discard = $siblings.add({
716 - 'id': $docNodeId,
675 + 'id': "classProperty:$classPropertyId",
717 717   'text': $property.name,
718 718   'icon': "fa fa-$icon",
719 719   'children': false,
... ... @@ -721,9 +721,6 @@
721 721   'id': $classPropertyId,
722 722   'type': 'classProperty',
723 723   'validChildren': []
724 - },
725 - 'state': {
726 - 'opened': $isOpened
727 727   }
728 728   }))
729 729  #end
... ... @@ -740,11 +740,8 @@
740 740  #end
741 741  
742 742  #macro (addObjectsNode $documentReference $siblings)
743 - #set ($isOpened = false)
744 - #set ($docNodeId = "objects:${documentReference}")
745 - #computeIsOpened($docNodeId $isOpened)
746 - #set ($discard = $siblings.add({
747 - 'id': $docNodeId,
699 + #set ($discard = $children.add({
700 + 'id': "objects:${documentReference}",
748 748   'text': 'Objects',
749 749   'icon': 'fa fa-cubes',
750 750   'children': true,
... ... @@ -752,9 +752,6 @@
752 752   'type': 'objects',
753 753   'validChildren': ['objectsOfType'],
754 754   'canDelete': $services.security.authorization.hasAccess('edit', $documentReference)
755 - },
756 - 'state': {
757 - 'opened': $isOpened
758 758   }
759 759   }))
760 760  #end
... ... @@ -765,11 +765,8 @@
765 765   #set ($documentReference = $services.model.resolveDocument($parts.get(0)))
766 766   #set ($classReference = $services.model.resolveDocument($parts.get(1)))
767 767   #if ($services.security.authorization.hasAccess('view', $documentReference))
768 - #set ($isOpened = false)
769 - #set ($docNodeId = "objectsOfType:$documentReference/$classReference")
770 - #computeIsOpened($docNodeId $isOpened)
771 - #set ($discard = $siblings.add({
772 - 'id': $docNodeId,
718 + #set ($discard = $children.add({
719 + 'id': "objectsOfType:$documentReference/$classReference",
773 773   'text': $services.model.serialize($classReference, 'local'),
774 774   'icon': 'fa fa-cubes',
775 775   'children': true,
... ... @@ -777,9 +777,6 @@
777 777   'type': 'objectsOfType',
778 778   'validChildren': ['object', 'pagination'],
779 779   'canDelete': $services.security.authorization.hasAccess('edit', $documentReference)
780 - },
781 - 'state': {
782 - 'opened': $isOpened
783 783   }
784 784   }))
785 785   #end
... ... @@ -806,11 +806,8 @@
806 806  
807 807  #macro (addObjectNode $object $objectReference $siblings)
808 808   #set ($objectId = $services.model.serialize($objectReference, 'default'))
809 - #set ($isOpened = false)
810 - #set ($docNodeId = "object:$objectId")
811 - #computeIsOpened($docNodeId $isOpened)
812 - #set ($discard = $siblings.add({
813 - 'id': $docNodeId,
753 + #set ($discard = $children.add({
754 + 'id': "object:$objectId",
814 814   'text': "[$object.number]",
815 815   'icon': 'fa fa-cube',
816 816   'children': true,
... ... @@ -819,9 +819,6 @@
819 819   'type': 'object',
820 820   'validChildren': ['objectProperty'],
821 821   'canDelete': $services.security.authorization.hasAccess('edit', $objectReference.parent)
822 - },
823 - 'state': {
824 - 'opened': $isOpened
825 825   }
826 826   }))
827 827  #end
... ... @@ -846,11 +846,8 @@
846 846   #end
847 847   #set ($objectPropertyReference = $services.model.createEntityReference($property.name, 'OBJECT_PROPERTY', $objRef))
848 848   #set ($objectPropertyId = $services.model.serialize($objectPropertyReference, 'default'))
849 - #set ($isOpened = false)
850 - #set ($docNodeId = "objectProperty:$objectPropertyId")
851 - #computeIsOpened($docNodeId $isOpened)
852 852   #set ($discard = $siblings.add({
853 - 'id': $docNodeId,
788 + 'id': "objectProperty:$objectPropertyId",
854 854   'text': $property.name,
855 855   'icon': "fa fa-$icon",
856 856   'children': false,
... ... @@ -858,9 +858,6 @@
858 858   'id': $objectPropertyId,
859 859   'type': 'objectProperty',
860 860   'validChildren': []
861 - },
862 - 'state': {
863 - 'opened': $isOpened
864 864   }
865 865   }))
866 866  #end