Changes for page APIMacro

Last modified by jklein on 2025/06/24 11:07

From version 24.1
edited by jklein
on 2025/06/02 13:49
Change comment: There is no comment for this version
To version 31.8
edited by jklein
on 2025/06/02 14:49
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,4 @@
1 -{{apimacro}}
1 +{{apimacro title="APIMacro"}}
2 2  Code
3 3  
4 4  Code
XWiki.JavaScriptExtension[0]
Code
... ... @@ -3,8 +3,7 @@
3 3   var header = $(this),
4 4   content = header.next('.showhidecontent'),
5 5   effect = header.attr('data-show-effect'),
6 - duration = parseInt(header.attr('data-show-duration')) || 300,
7 - arrow = header.find('.showhide-arrow');
6 + duration = parseInt(header.attr('data-show-duration')) || 300;
8 8  
9 9   if ($.inArray(effect, ['toggle', 'fadeToggle', 'slideToggle']) === -1) {
10 10   effect = 'toggle';
... ... @@ -13,12 +13,10 @@
13 13   var isVisible = content.is(':visible');
14 14   var newState = !isVisible;
15 15  
16 - // Pfeil wechseln
17 - if (arrow.length) {
18 - arrow.text(newState ? '▼' : '►');
19 - }
15 + // Toggle 'open'-Klasse für Rotation
16 + header.toggleClass('open', newState);
20 20  
21 - // Inhalt ein-/ausklappen
18 + // Ein-/Ausblenden des Inhalts
22 22   content.stop()[effect](duration);
23 23   }
24 24  
Name
... ... @@ -1,1 +1,1 @@
1 -APIMacro Script
1 +APIMacro
XWiki.StyleSheetExtension[0]
Code
... ... @@ -3,10 +3,19 @@
3 3   background-color: #f7f7f7;
4 4   border-radius: 4px 4px 0 0;
5 5   padding: 10px 12px;
6 + margin: 30px 0 0;
6 6   cursor: pointer;
7 7   user-select: none;
8 8  }
9 9  
11 +.showhidecontent {
12 + border: 1px solid #ccc;
13 + border-top: none;
14 + border-radius: 0 0 4px 4px;
15 + padding: 10px;
16 + background-color: #fff;
17 +}
18 +
10 10  .showhide-header-flex {
11 11   display: flex;
12 12   justify-content: space-between;
... ... @@ -20,11 +20,16 @@
20 20  }
21 21  
22 22  .showhide-arrow {
32 + display: inline-block;
33 + transition: transform 0.3s ease;
34 + transform: rotate(0deg);
23 23   font-size: 16px;
24 - font-weight: bold;
25 25   color: #0645ad;
26 - text-align: right;
27 - min-width: 20px;
28 - transition: transform 0.2s ease;
29 29  }
30 30  
39 +/* Wenn Container 'open' ist → Pfeil dreht sich */
40 +.showhide-header.open .showhide-arrow {
41 + transform: rotate(90deg);
42 +}
43 +
44 +
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,9 +1,11 @@
1 1  {{velocity}}
2 -#set($discard = $xwiki.jsx.use("Macros.ShowHideMacro"))
2 +#set($discard = $xwiki.jsx.use("Macros.APIMacro"))
3 3  #set($mparams = $wikimacro.parameters)
4 4  #if(!$mparams)
5 5   #set($mparams = $xcontext.macro.params)
6 6  #end
7 +
8 +## Parameter vorbereiten
7 7  #if($mparams.id)
8 8   #set($id = $util.convertToAlphaNumeric($mparams.id))
9 9  #end
... ... @@ -18,24 +18,31 @@
18 18  #end
19 19  #set($effectduration = $mathtool.mul(1000,$mparams.effectduration))
20 20  #set($title = $escapetool.xml($mparams.title))
21 -(% #if($divstyle && $divstyle!="") style="${divstyle}" #end %)
22 -(((
23 +
24 +## Wrapper starten
23 23  {{html clean=false}}
24 -<div class="showhide-header"
25 - #if($id && $id!="") id="showhideheader${id}" #end
26 - data-show-duration="$effectduration"
27 - data-show-effect="$effect">
28 - <div class="showhide-header-flex">
29 - <div class="showhide-title">$title</div>
30 - <div class="showhide-arrow">►</div>
26 +<div class="showhide-wrapper" #if($divstyle && $divstyle!="") style="$divstyle" #end>
27 + <div class="showhide-header"
28 + #if($id && $id!="") id="showhideheader${id}" #end
29 + data-show-duration="$effectduration"
30 + data-show-effect="$effect">
31 + <div class="showhide-header-flex">
32 + <div class="showhide-title">
33 + $title
34 + </div>
35 + <div class="showhide-arrow">&#9654;</div> ## Unicode ▶
36 + </div>
31 31   </div>
32 -</div>
33 33  {{/html}}
34 -(% class="showhidecontent" #if($id && $id!="")id="showhidecontent${id}" #end#if($xcontext.action != 'edit') style="display: none;"#end %)
35 -(((
36 -(((
39 +
40 +## Inhaltsteil
41 +(% class="showhidecontent"
42 + #if($id && $id!="") id="showhidecontent${id}" #end
43 + #if($xcontext.action != 'edit') style="display: none;" #end
44 +%)
45 +{{html clean=false}}
37 37  {{wikimacrocontent /}}
38 -)))
39 -)))
40 -)))
47 +</div> <!-- .showhide-wrapper schließen -->
48 +{{/html}}
41 41  {{/velocity}}
50 +
Macro description
... ... @@ -1,1 +1,1 @@
1 -Show/hide content with animations.
1 +Makro für PublicAPI-Commands
XWiki.WikiMacroParameterClass[3]
Parameter default value
... ... @@ -1,1 +1,0 @@
1 -slide
Parameter description
... ... @@ -1,1 +1,0 @@
1 -Scriptaculous Effect
Parameter mandatory
... ... @@ -1,1 +1,0 @@
1 -No
Parameter name
... ... @@ -1,1 +1,0 @@
1 -effect
XWiki.WikiMacroParameterClass[5]
Parameter default value
... ... @@ -1,1 +1,0 @@
1 -0
Parameter description
... ... @@ -1,1 +1,0 @@
1 -Effect duration
Parameter mandatory
... ... @@ -1,1 +1,0 @@
1 -No
Parameter name
... ... @@ -1,1 +1,0 @@
1 -effectduration
© Aagon GmbH 2025
Besuchen Sie unsere Aagon-Community