Изменения документа Document Tree Macros
Редактировал(а) Андрей Ганьков 2026/01/23 10:50
От версии 7.1
отредактировано Андрей Ганьков
на 2025/11/13 18:51
на 2025/11/13 18:51
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.9.0]
К версии 8.1
отредактировано Андрей Ганьков
на 2026/01/23 10:50
на 2026/01/23 10:50
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.10.2]
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -375,16 +375,7 @@ 375 375 #end 376 376 #set ($hasChildren = $tree.getChildCount($docNodeId) > 0) 377 377 #set ($isOpened = false) 378 - #if ("$!docTreeConfig.expandToLevel" != '') 379 - #set ($rootNode = "wiki:$services.wiki.currentWikiId") 380 - #if ("$!docTreeConfig.root" != '') 381 - #set ($rootNode = "wiki:$services.wiki.currentWikiId") 382 - #else 383 - #set ($rootNode = $docTreeConfig.root) 384 - #end 385 - #set ($rootDistance = $tree.getPath($docNodeId).size()) 386 - #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) 387 - #end 378 + #computeIsOpened($docNodeId $isOpened) 388 388 #set ($discard = $siblings.add({ 389 389 'id': $docNodeId, 390 390 'text': $label, ... ... @@ -448,9 +448,27 @@ 448 448 #end 449 449 #end 450 450 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 + 451 451 #macro (addTranslationsNode $documentReference $siblings) 452 - #set ($discard = $children.add({ 453 - 'id': "translations:${documentReference}", 458 + #set ($isOpened = false) 459 + #set ($docNodeId = "translations:${documentReference}") 460 + #computeIsOpened($docNodeId $isOpened) 461 + #set ($discard = $siblings.add({ 462 + 'id': $docNodeId, 454 454 'text': 'Translations', 455 455 'icon': 'fa fa-language', 456 456 'children': true, ... ... @@ -458,6 +458,9 @@ 458 458 'type': 'translations', 459 459 'validChildren': ['translation'], 460 460 'canDelete': $services.security.authorization.hasAccess('delete', $documentReference) 470 + }, 471 + 'state': { 472 + 'opened': $isOpened 461 461 } 462 462 })) 463 463 #end ... ... @@ -474,8 +474,11 @@ 474 474 475 475 #macro (addTranslationNode $translationReference $siblings) 476 476 #set ($currentLocale = $services.localization.currentLocale) 489 + #set ($isOpened = false) 490 + #set ($docNodeId = "translation:$services.model.serialize($translationReference, 'default')_$translationReference.locale") 491 + #computeIsOpened($docNodeId $isOpened) 477 477 #set ($discard = $siblings.add({ 478 - 'id': "translation:$services.model.serialize($translationReference, 'default')_$translationReference.locale",493 + 'id': $docNodeId, 479 479 'text': $translationReference.locale.getDisplayName($currentLocale), 480 480 'icon': 'fa fa-file-text-o', 481 481 'children': false, ... ... @@ -486,6 +486,9 @@ 486 486 }, 487 487 'a_attr': { 488 488 'href': $xwiki.getURL($translationReference) 504 + }, 505 + 'state': { 506 + 'opened': $isOpened 489 489 } 490 490 })) 491 491 #end ... ... @@ -502,8 +502,11 @@ 502 502 #end 503 503 504 504 #macro (addAttachmentsNode $documentReference $siblings) 523 + #set ($isOpened = false) 524 + #set ($docNodeId = "attachments:${documentReference}") 525 + #computeIsOpened($docNodeId $isOpened) 505 505 #set ($discard = $siblings.add({ 506 - 'id': "attachments:${documentReference}",527 + 'id': $docNodeId, 507 507 'text': 'Attachments', 508 508 'icon': 'fa fa-paperclip', 509 509 'children': true, ... ... @@ -515,6 +515,9 @@ 515 515 }, 516 516 'a_attr': { 517 517 'href': $xwiki.getURL($documentReference, 'view', 'viewer=attachments') 539 + }, 540 + 'state': { 541 + 'opened': $isOpened 518 518 } 519 519 })) 520 520 #end ... ... @@ -534,8 +534,11 @@ 534 534 #set ($attachmentId = $services.model.serialize($attachmentReference, 'default')) 535 535 #set ($canEditDoc = $services.security.authorization.hasAccess('edit', $attachmentReference.parent)) 536 536 #getAttachmentIcon($attachment $icon) 561 + #set ($isOpened = false) 562 + #set ($docNodeId = "attachment:$attachmentId") 563 + #computeIsOpened($docNodeId $isOpened) 537 537 #set ($discard = $siblings.add({ 538 - 'id': "attachment:$attachmentId",565 + 'id': $docNodeId, 539 539 'text': $attachment.filename, 540 540 'icon': $icon, 541 541 'children': false, ... ... @@ -554,6 +554,9 @@ 554 554 }, 555 555 'a_attr': { 556 556 'href': $attachment.document.getAttachmentURL($attachment.filename) 584 + }, 585 + 'state': { 586 + 'opened': $isOpened 557 557 } 558 558 })) 559 559 #end ... ... @@ -632,8 +632,11 @@ 632 632 #end 633 633 634 634 #macro (addClassPropertiesNode $documentReference $siblings) 635 - #set ($discard = $children.add({ 636 - 'id': "classProperties:${documentReference}", 665 + #set ($isOpened = false) 666 + #set ($docNodeId = "classProperties:${documentReference}") 667 + #computeIsOpened($docNodeId $isOpened) 668 + #set ($discard = $siblings.add({ 669 + 'id': $docNodeId, 637 637 'text': 'Class Properties', 638 638 'icon': 'fa fa-gears', 639 639 'children': true, ... ... @@ -641,6 +641,9 @@ 641 641 'type': 'classProperties', 642 642 'validChildren': ['classProperty'], 643 643 'canDelete': $services.security.authorization.hasAccess('edit', $documentReference) 677 + }, 678 + 'state': { 679 + 'opened': $isOpened 644 644 } 645 645 })) 646 646 #end ... ... @@ -673,8 +673,11 @@ 673 673 #if (!$icon) 674 674 #set ($icon = 'gear') 675 675 #end 712 + #set ($isOpened = false) 713 + #set ($docNodeId = "classProperty:$classPropertyId") 714 + #computeIsOpened($docNodeId $isOpened) 676 676 #set ($discard = $siblings.add({ 677 - 'id': "classProperty:$classPropertyId",716 + 'id': $docNodeId, 678 678 'text': $property.name, 679 679 'icon': "fa fa-$icon", 680 680 'children': false, ... ... @@ -682,6 +682,9 @@ 682 682 'id': $classPropertyId, 683 683 'type': 'classProperty', 684 684 'validChildren': [] 724 + }, 725 + 'state': { 726 + 'opened': $isOpened 685 685 } 686 686 })) 687 687 #end ... ... @@ -698,8 +698,11 @@ 698 698 #end 699 699 700 700 #macro (addObjectsNode $documentReference $siblings) 701 - #set ($discard = $children.add({ 702 - 'id': "objects:${documentReference}", 743 + #set ($isOpened = false) 744 + #set ($docNodeId = "objects:${documentReference}") 745 + #computeIsOpened($docNodeId $isOpened) 746 + #set ($discard = $siblings.add({ 747 + 'id': $docNodeId, 703 703 'text': 'Objects', 704 704 'icon': 'fa fa-cubes', 705 705 'children': true, ... ... @@ -707,6 +707,9 @@ 707 707 'type': 'objects', 708 708 'validChildren': ['objectsOfType'], 709 709 'canDelete': $services.security.authorization.hasAccess('edit', $documentReference) 755 + }, 756 + 'state': { 757 + 'opened': $isOpened 710 710 } 711 711 })) 712 712 #end ... ... @@ -717,8 +717,11 @@ 717 717 #set ($documentReference = $services.model.resolveDocument($parts.get(0))) 718 718 #set ($classReference = $services.model.resolveDocument($parts.get(1))) 719 719 #if ($services.security.authorization.hasAccess('view', $documentReference)) 720 - #set ($discard = $children.add({ 721 - 'id': "objectsOfType:$documentReference/$classReference", 768 + #set ($isOpened = false) 769 + #set ($docNodeId = "objectsOfType:$documentReference/$classReference") 770 + #computeIsOpened($docNodeId $isOpened) 771 + #set ($discard = $siblings.add({ 772 + 'id': $docNodeId, 722 722 'text': $services.model.serialize($classReference, 'local'), 723 723 'icon': 'fa fa-cubes', 724 724 'children': true, ... ... @@ -726,6 +726,9 @@ 726 726 'type': 'objectsOfType', 727 727 'validChildren': ['object', 'pagination'], 728 728 'canDelete': $services.security.authorization.hasAccess('edit', $documentReference) 780 + }, 781 + 'state': { 782 + 'opened': $isOpened 729 729 } 730 730 })) 731 731 #end ... ... @@ -752,8 +752,11 @@ 752 752 753 753 #macro (addObjectNode $object $objectReference $siblings) 754 754 #set ($objectId = $services.model.serialize($objectReference, 'default')) 755 - #set ($discard = $children.add({ 756 - 'id': "object:$objectId", 809 + #set ($isOpened = false) 810 + #set ($docNodeId = "object:$objectId") 811 + #computeIsOpened($docNodeId $isOpened) 812 + #set ($discard = $siblings.add({ 813 + 'id': $docNodeId, 757 757 'text': "[$object.number]", 758 758 'icon': 'fa fa-cube', 759 759 'children': true, ... ... @@ -762,6 +762,9 @@ 762 762 'type': 'object', 763 763 'validChildren': ['objectProperty'], 764 764 'canDelete': $services.security.authorization.hasAccess('edit', $objectReference.parent) 822 + }, 823 + 'state': { 824 + 'opened': $isOpened 765 765 } 766 766 })) 767 767 #end ... ... @@ -786,8 +786,11 @@ 786 786 #end 787 787 #set ($objectPropertyReference = $services.model.createEntityReference($property.name, 'OBJECT_PROPERTY', $objRef)) 788 788 #set ($objectPropertyId = $services.model.serialize($objectPropertyReference, 'default')) 849 + #set ($isOpened = false) 850 + #set ($docNodeId = "objectProperty:$objectPropertyId") 851 + #computeIsOpened($docNodeId $isOpened) 789 789 #set ($discard = $siblings.add({ 790 - 'id': "objectProperty:$objectPropertyId",853 + 'id': $docNodeId, 791 791 'text': $property.name, 792 792 'icon': "fa fa-$icon", 793 793 'children': false, ... ... @@ -795,6 +795,9 @@ 795 795 'id': $objectPropertyId, 796 796 'type': 'objectProperty', 797 797 'validChildren': [] 861 + }, 862 + 'state': { 863 + 'opened': $isOpened 798 798 } 799 799 })) 800 800 #end