Changes for page Expand

Last modified by Yana Oksner on 2025/04/30 10:28

From version 2.1
edited by Yana Oksner
on 2024/02/23 13:49
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros/1.15.0]
To version 1.1
edited by Yana Oksner
on 2023/11/13 11:24
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros/1.9.2]

Summary

Details

XWiki.StyleSheetExtension[0]
Code
... ... @@ -1,35 +1,38 @@
1 -.confluence-expand-macro .glyphicon {
2 - margin-right: 0.5rem;
3 - transform: rotate(0deg);
4 - transition: transform 0.3s;
5 -}
1 +.confluence-expand-macro {
6 6  
7 -.confluence-expand-macro[open] .glyphicon {
8 - transform: rotate(90deg);
9 -}
3 + .panel-heading {
4 + padding: 0;
5 + .panel-title {
6 + font-size: 1em;
10 10  
11 -.confluence-expand-macro .panel-title {
12 - padding: @panel-heading-padding;
13 -}
8 + a {
9 + display: block;
10 + padding: @panel-heading-padding;
14 14  
15 -.confluence-expand-macro .panel-body {
16 - transition: linear 0.3s;
17 -}
12 + p {
13 + display: inline;
14 + }
18 18  
19 -.confluence-expand-macro summary {
20 - font-size: 1em;
21 -}
16 + .glyphicon {
17 + margin-right: 0.5rem;
18 + transform: rotate(0deg);
19 + transition: transform 0.1s;
20 + }
21 + &[aria-expanded="true"] .glyphicon {
22 + transform: rotate(90deg);
23 + }
24 + }
25 + }
26 + }
22 22  
23 -.confluence-expand-macro summary:hover {
24 - cursor: pointer;
25 - text-decoration: underline;
26 -}
28 + .panel-collapse {
29 + .panel-body {
30 + display: block;
31 + &::before { content: none; }
32 + &::after { content: none; }
27 27  
28 -.confluence-expand-macro.panel > .panel-body, .confluence-expand-macro > summary {
29 - background: unset;
30 - border: none;
34 + & > *:first-child { margin-top: 0; }
35 + & > *:last-child { margin-bottom: 0; }
36 + }
37 + }
31 31  }
32 -
33 -.confluence-expand-macro.panel {
34 - background: unset;
35 -}
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,24 +1,44 @@
1 1  {{velocity output="false"}}
2 2  #macro (executeMacro)
3 3   $xwiki.ssx.use('Confluence.Macros.Expand')
4 + #if (!$expandMacroColllapseId)
5 + #set ($expandMacroColllapseId = 0)
6 + #else
7 + #set ($expandMacroColllapseId = $expandMacroColllapseId + 1)
8 + #end
4 4   #set ($opened = $xcontext.action == 'edit')
10 + #set ($accordionId = "accordion-$escapetool.xml($expandMacroColllapseId)")
11 + #set ($toggleId = "toggle-$expandMacroColllapseId")
12 + #set ($expandId = "collapse-$expandMacroColllapseId")
5 5  
6 6   {{html clean="false" wiki="true"}}
7 - <details class="confluence-expand-macro panel panel-default" #if ($opened)open#end>
8 - <summary>
9 - <div class="panel-title">
10 - <span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span>
11 - $services.rendering.escape($escapetool.xml("${wikimacro.parameters.title}"), 'xwiki/2.1')
12 - </div>
13 - </summary>
14 - <div class="panel-body">
15 - {{wikimacrocontent /}}
15 + <div class="panel-group confluence-expand-macro" id="${accordionId}" role="tablist">
16 + <div class="panel panel-default">
17 + <div class="panel-heading" role="tab" id="${toggleId}">
18 + <h4 class="panel-title">
19 + <a
20 + role="button"
21 + data-toggle="collapse"
22 + data-parent="#${accordionId}"
23 + href="#${expandId}"
24 + #if($opened)aria-expanded="true"#end
25 + aria-controls="${expandId}"
26 + ><span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span>{{wikimacroparameter name="title" /}}</a>
27 + </h4>
28 + </div>
29 + <div id="${expandId}" class="panel-collapse collapse #if($opened)in#end" role="tabpanel" aria-labelledby="${toggleId}">
30 + <div class="panel-body">
31 + {{wikimacrocontent /}}
32 + </div>
33 + </div>
16 16   </div>
17 - </details>
35 + </div>
18 18   {{/html}}
19 19  #end
20 20  {{/velocity}}
21 21  
40 +{{include reference="Licenses.Code.VelocityMacros"/}}
41 +
22 22  {{velocity}}
23 23  ## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
24 24  ## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
... ... @@ -26,6 +26,8 @@
26 26  #if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference))
27 27   #executeMacro
28 28  #else
29 - {{missingLicenseMessage extensionName="proMacros.extension.name"/}}
49 + {{error}}
50 + #getMissingLicenseMessage('proMacros.extension.name')
51 + {{/error}}
30 30  #end
31 31  {{/velocity}}