Changes for page Expand

Last modified by Frank Fock on 2025/04/04 21:18

From version 2.1
edited by Frank Fock
on 2024/05/23 17:17
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros/1.17.3]
To version 1.1
edited by Frank Fock
on 2024/02/07 18:16
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros/1.14.3]

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] > summary .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,26 +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 -
16 - {{wikimacrocontent /}}
17 -
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>
18 18   </div>
19 - </details>
35 + </div>
20 20   {{/html}}
21 21  #end
22 22  {{/velocity}}
23 23  
40 +{{include reference="Licenses.Code.VelocityMacros"/}}
41 +
24 24  {{velocity}}
25 25  ## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
26 26  ## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
... ... @@ -28,6 +28,8 @@
28 28  #if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference))
29 29   #executeMacro
30 30  #else
31 - {{missingLicenseMessage extensionName="proMacros.extension.name"/}}
49 + {{error}}
50 + #getMissingLicenseMessage('proMacros.extension.name')
51 + {{/error}}
32 32  #end
33 33  {{/velocity}}
Macro description
... ... @@ -1,5 +1,5 @@
1 -Add the Expand macro to your page to provide content in an expandable / collapsible section.
1 +Add the Expand macro to your page to provide content in an expandable / collapsible section. 
2 2  
3 -This is one of Confluence's most popular macros. It's great for: visually reducing the amount of information on a page, breaking process information down into clickable steps, hiding background or obsolete information, while still keeping it on the page for future reference.
3 +This is one of Confluence's most popular macros. It's great for: visually reducing the amount of information on a page, breaking process information down into clickable steps, hiding background or obsolete information, while still keeping it on the page for future reference.
4 4  
5 -The macro is collapsed by default, people need to click each one to expand it. There's no way to expand all macros on a page at once, however all Expand macros are automatically expanded when you print or export the page to PDF.
5 +The macro is collapsed by default, people need to click each one to expand it. There's no way to expand all macros on a page at once, however all Expand macros are automatically expanded when you print or export the page to PDF.