|
413 | 413 | #end |
414 | 414 | #set ($hasChildren = $tree.getChildCount($docNodeId) > 0) |
415 | 415 | #set ($isOpened = false) |
416 | | - #if ("$!docTreeConfig.expandToLevel" != '') |
417 | | - #set ($rootNode = "wiki:$services.wiki.currentWikiId") |
418 | | - #if ("$!docTreeConfig.root" != '') |
419 | | - #set ($rootNode = "wiki:$services.wiki.currentWikiId") |
420 | | - #else |
421 | | - #set ($rootNode = $docTreeConfig.root) |
422 | | - #end |
423 | | - #set ($rootDistance = $tree.getPath($docNodeId).size()) |
424 | | - #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) |
425 | | - #end |
| 416 | + #computeIsOpened($docNodeId $isOpened) |
426 | 417 | #set ($discard = $siblings.add({ |
427 | 418 | 'id': $docNodeId, |
428 | 419 | 'text': $label, |
|
486 | 477 | #end |
487 | 478 | #end |
488 | 479 |
|
| 480 | +#macro (computeIsOpened $docNodeId $result) |
| 481 | + #set ($isOpened = false) |
| 482 | + #if ("$!docTreeConfig.expandToLevel" != '') |
| 483 | + #set ($rootNode = "wiki:$services.wiki.currentWikiId") |
| 484 | + #if ("$!docTreeConfig.root" != '') |
| 485 | + #set ($rootNode = "wiki:$services.wiki.currentWikiId") |
| 486 | + #else |
| 487 | + #set ($rootNode = $docTreeConfig.root) |
| 488 | + #end |
| 489 | + #set ($rootDistance = $tree.getPath($docNodeId).size()) |
| 490 | + #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) |
| 491 | + #end |
| 492 | + #setVariable("$result" $isOpened) |
| 493 | +#end |
| 494 | + |
489 | 495 | #macro (addTranslationsNode $documentReference $siblings) |
| 496 | + #set ($isOpened = false) |
| 497 | + #set ($docNodeId = "translations:${documentReference}") |
| 498 | + #computeIsOpened($docNodeId $isOpened) |
490 | 499 | #set ($discard = $siblings.add({ |
491 | | - 'id': "translations:${documentReference}", |
| 500 | + 'id': $docNodeId, |
492 | 501 | 'text': 'Translations', |
493 | 502 | 'icon': 'fa fa-language', |
494 | 503 | 'children': true, |
495 | 504 | 'data': { |
496 | 505 | 'type': 'translations', |
497 | 506 | 'validChildren': ['translation'], |
498 | 507 | 'canDelete': $services.security.authorization.hasAccess('delete', $documentReference) |
| 508 | + }, |
| 509 | + 'state': { |
| 510 | + 'opened': $isOpened |
499 | 511 | } |
500 | 512 | })) |
501 | 513 | #end |
|
512 | 524 |
|
513 | 525 | #macro (addTranslationNode $translationReference $siblings) |
514 | 526 | #set ($currentLocale = $services.localization.currentLocale) |
| 527 | + #set ($isOpened = false) |
| 528 | + #set ($docNodeId = "translation:$services.model.serialize($translationReference, 'default')_$translationReference.locale") |
| 529 | + #computeIsOpened($docNodeId $isOpened) |
515 | 530 | #set ($discard = $siblings.add({ |
516 | | - 'id': "translation:$services.model.serialize($translationReference, 'default')_$translationReference.locale", |
| 531 | + 'id': $docNodeId, |
517 | 532 | 'text': $translationReference.locale.getDisplayName($currentLocale), |
518 | 533 | 'icon': 'fa fa-file-text-o', |
519 | 534 | 'children': false, |
|
524 | 539 | }, |
525 | 540 | 'a_attr': { |
526 | 541 | 'href': $xwiki.getURL($translationReference) |
| 542 | + }, |
| 543 | + 'state': { |
| 544 | + 'opened': $isOpened |
527 | 545 | } |
528 | 546 | })) |
529 | 547 | #end |
|
540 | 558 | #end |
541 | 559 |
|
542 | 560 | #macro (addAttachmentsNode $documentReference $siblings) |
| 561 | + #set ($isOpened = false) |
| 562 | + #set ($docNodeId = "attachments:${documentReference}") |
| 563 | + #computeIsOpened($docNodeId $isOpened) |
543 | 564 | #set ($discard = $siblings.add({ |
544 | | - 'id': "attachments:${documentReference}", |
| 565 | + 'id': $docNodeId, |
545 | 566 | 'text': 'Attachments', |
546 | 567 | 'icon': 'fa fa-paperclip', |
547 | 568 | 'children': true, |
|
553 | 574 | }, |
554 | 575 | 'a_attr': { |
555 | 576 | 'href': $xwiki.getURL($documentReference, 'view', 'viewer=attachments') |
| 577 | + }, |
| 578 | + 'state': { |
| 579 | + 'opened': $isOpened |
556 | 580 | } |
557 | 581 | })) |
558 | 582 | #end |
|
572 | 596 | #set ($attachmentId = $services.model.serialize($attachmentReference, 'default')) |
573 | 597 | #set ($canEditDoc = $services.security.authorization.hasAccess('edit', $attachmentReference.parent)) |
574 | 598 | #getAttachmentIcon($attachment $icon) |
| 599 | + #set ($isOpened = false) |
| 600 | + #set ($docNodeId = "attachment:$attachmentId") |
| 601 | + #computeIsOpened($docNodeId $isOpened) |
575 | 602 | #set ($discard = $siblings.add({ |
576 | | - 'id': "attachment:$attachmentId", |
| 603 | + 'id': $docNodeId, |
577 | 604 | 'text': $attachment.filename, |
578 | 605 | 'icon': $icon, |
579 | 606 | 'children': false, |
|
592 | 619 | }, |
593 | 620 | 'a_attr': { |
594 | 621 | 'href': $attachment.document.getAttachmentURL($attachment.filename) |
| 622 | + }, |
| 623 | + 'state': { |
| 624 | + 'opened': $isOpened |
595 | 625 | } |
596 | 626 | })) |
597 | 627 | #end |
|
670 | 700 | #end |
671 | 701 |
|
672 | 702 | #macro (addClassPropertiesNode $documentReference $siblings) |
| 703 | + #set ($isOpened = false) |
| 704 | + #set ($docNodeId = "classProperties:${documentReference}") |
| 705 | + #computeIsOpened($docNodeId $isOpened) |
673 | 706 | #set ($discard = $siblings.add({ |
674 | | - 'id': "classProperties:${documentReference}", |
| 707 | + 'id': $docNodeId, |
675 | 708 | 'text': 'Class Properties', |
676 | 709 | 'icon': 'fa fa-gears', |
677 | 710 | 'children': true, |
678 | 711 | 'data': { |
679 | 712 | 'type': 'classProperties', |
680 | 713 | 'validChildren': ['classProperty'], |
681 | 714 | 'canDelete': $services.security.authorization.hasAccess('edit', $documentReference) |
| 715 | + }, |
| 716 | + 'state': { |
| 717 | + 'opened': $isOpened |
682 | 718 | } |
683 | 719 | })) |
684 | 720 | #end |
|
711 | 747 | #if (!$icon) |
712 | 748 | #set ($icon = 'gear') |
713 | 749 | #end |
| 750 | + #set ($isOpened = false) |
| 751 | + #set ($docNodeId = "classProperty:$classPropertyId") |
| 752 | + #computeIsOpened($docNodeId $isOpened) |
714 | 753 | #set ($discard = $siblings.add({ |
715 | | - 'id': "classProperty:$classPropertyId", |
| 754 | + 'id': $docNodeId, |
716 | 755 | 'text': $property.name, |
717 | 756 | 'icon': "fa fa-$icon", |
718 | 757 | 'children': false, |
719 | 758 | 'data': { |
720 | 759 | 'id': $classPropertyId, |
721 | 760 | 'type': 'classProperty', |
722 | 761 | 'validChildren': [] |
| 762 | + }, |
| 763 | + 'state': { |
| 764 | + 'opened': $isOpened |
723 | 765 | } |
724 | 766 | })) |
725 | 767 | #end |
|
736 | 778 | #end |
737 | 779 |
|
738 | 780 | #macro (addObjectsNode $documentReference $siblings) |
| 781 | + #set ($isOpened = false) |
| 782 | + #set ($docNodeId = "objects:${documentReference}") |
| 783 | + #computeIsOpened($docNodeId $isOpened) |
739 | 784 | #set ($discard = $siblings.add({ |
740 | | - 'id': "objects:${documentReference}", |
| 785 | + 'id': $docNodeId, |
741 | 786 | 'text': 'Objects', |
742 | 787 | 'icon': 'fa fa-cubes', |
743 | 788 | 'children': true, |
744 | 789 | 'data': { |
745 | 790 | 'type': 'objects', |
746 | 791 | 'validChildren': ['objectsOfType'], |
747 | 792 | 'canDelete': $services.security.authorization.hasAccess('edit', $documentReference) |
| 793 | + }, |
| 794 | + 'state': { |
| 795 | + 'opened': $isOpened |
748 | 796 | } |
749 | 797 | })) |
750 | 798 | #end |
|
755 | 803 | #set ($documentReference = $services.model.resolveDocument($parts.get(0))) |
756 | 804 | #set ($classReference = $services.model.resolveDocument($parts.get(1))) |
757 | 805 | #if ($services.security.authorization.hasAccess('view', $documentReference)) |
| 806 | + #set ($isOpened = false) |
| 807 | + #set ($docNodeId = "objectsOfType:$documentReference/$classReference") |
| 808 | + #computeIsOpened($docNodeId $isOpened) |
758 | 809 | #set ($discard = $siblings.add({ |
759 | | - 'id': "objectsOfType:$documentReference/$classReference", |
| 810 | + 'id': $docNodeId, |
760 | 811 | 'text': $services.model.serialize($classReference, 'local'), |
761 | 812 | 'icon': 'fa fa-cubes', |
762 | 813 | 'children': true, |
763 | 814 | 'data': { |
764 | 815 | 'type': 'objectsOfType', |
765 | 816 | 'validChildren': ['object', 'pagination'], |
766 | 817 | 'canDelete': $services.security.authorization.hasAccess('edit', $documentReference) |
| 818 | + }, |
| 819 | + 'state': { |
| 820 | + 'opened': $isOpened |
767 | 821 | } |
768 | 822 | })) |
769 | 823 | #end |
|
790 | 844 |
|
791 | 845 | #macro (addObjectNode $object $objectReference $siblings) |
792 | 846 | #set ($objectId = $services.model.serialize($objectReference, 'default')) |
| 847 | + #set ($isOpened = false) |
| 848 | + #set ($docNodeId = "object:$objectId") |
| 849 | + #computeIsOpened($docNodeId $isOpened) |
793 | 850 | #set ($discard = $siblings.add({ |
794 | | - 'id': "object:$objectId", |
| 851 | + 'id': $docNodeId, |
795 | 852 | 'text': "[$object.number]", |
796 | 853 | 'icon': 'fa fa-cube', |
797 | 854 | 'children': true, |
|
800 | 857 | 'type': 'object', |
801 | 858 | 'validChildren': ['objectProperty'], |
802 | 859 | 'canDelete': $services.security.authorization.hasAccess('edit', $objectReference.parent) |
| 860 | + }, |
| 861 | + 'state': { |
| 862 | + 'opened': $isOpened |
803 | 863 | } |
804 | 864 | })) |
805 | 865 | #end |
|
824 | 884 | #end |
825 | 885 | #set ($objectPropertyReference = $services.model.createEntityReference($property.name, 'OBJECT_PROPERTY', $objRef)) |
826 | 886 | #set ($objectPropertyId = $services.model.serialize($objectPropertyReference, 'default')) |
| 887 | + #set ($isOpened = false) |
| 888 | + #set ($docNodeId = "objectProperty:$objectPropertyId") |
| 889 | + #computeIsOpened($docNodeId $isOpened) |
827 | 890 | #set ($discard = $siblings.add({ |
828 | | - 'id': "objectProperty:$objectPropertyId", |
| 891 | + 'id': $docNodeId, |
829 | 892 | 'text': $property.name, |
830 | 893 | 'icon': "fa fa-$icon", |
831 | 894 | 'children': false, |
832 | 895 | 'data': { |
833 | 896 | 'id': $objectPropertyId, |
834 | 897 | 'type': 'objectProperty', |
835 | 898 | 'validChildren': [] |
| 899 | + }, |
| 900 | + 'state': { |
| 901 | + 'opened': $isOpened |
836 | 902 | } |
837 | 903 | })) |
838 | 904 | #end |
|
0 commit comments