Changes for page Button

Last modified by Yana Oksner on 2026/01/08 11:01

From version 6.1
edited by Yana Oksner
on 2025/07/18 12:19
Change comment: Migrated property [contentOrder] from class [XWiki.WikiMacroClass]
To version 9.1
edited by Yana Oksner
on 2026/01/08 11:01
Change comment: Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.29.0]

Summary

Details

Page properties
Content
... ... @@ -7,9 +7,13 @@
7 7  |label|$services.localization.render('rendering.macro.button.parameter.label.description')|-
8 8  |url|$services.localization.render('rendering.macro.button.parameter.url.description')|-
9 9  |color|$services.localization.render('rendering.macro.button.parameter.color.description')|White
10 +|title|$services.localization.render('rendering.macro.button.parameter.title.description')|-
10 10  |width|$services.localization.render('rendering.macro.button.parameter.width.description')|-
11 11  |newTab|$services.localization.render('rendering.macro.button.parameter.newTab.description')|false
12 12  |icon|$services.localization.render('rendering.macro.button.parameter.icon.description')|-
14 +|type|$services.localization.render('rendering.macro.button.parameter.type.description')|Default
15 +|id|$services.localization.render('rendering.macro.button.parameter.id.description')|Default
16 +|class|$services.localization.render('rendering.macro.button.parameter.class.description')|Default
13 13  
14 14  == Examples ==
15 15  
... ... @@ -31,4 +31,8 @@
31 31  {{code}}{{button label="Store" url="http://store.xwiki.com" color="#889cb8" newTab="true" icon="page" width="100%"/}}{{/code}}
32 32  
33 33  {{button label="Store" url="http://store.xwiki.com" color="#889cb8" newTab="true" icon="page" width="100%"/}}
38 +
39 +{{code}}{{button label="Delete example" url="http://store.xwiki.com" type="DANGER"/}}{{/code}}
40 +
41 +{{button label="Delete example" url="http://store.xwiki.com" type="DANGER"/}}
34 34  {{/velocity}}
XWiki.WikiMacroClass[0]
Macro description
... ... @@ -1,1 +1,0 @@
1 -Insert a button!
Macro code
... ... @@ -27,11 +27,15 @@
27 27  #macro (executeMacro)
28 28   ## Retrieve macro parameters
29 29   #set ($label = $escapetool.xml($wikimacro.parameters.label))
30 + #set ($title = $escapetool.xml($wikimacro.parameters.title))
30 30   #set ($url = $escapetool.xml($wikimacro.parameters.url))
31 31   #set ($color = $wikimacro.parameters.color)
32 32   #set ($width = $escapetool.xml($wikimacro.parameters.width))
33 33   #set ($newTab = $escapetool.xml($wikimacro.parameters.newTab))
34 34   #set ($icon = $escapetool.xml($xcontext.macro.params.icon))
36 + #set ($macro.id = $wikimacro.parameters.id)
37 + #set ($macro.classParam = $wikimacro.parameters.get('class'))
38 + #set ($macro.type = $wikimacro.parameters.type)
35 35   ## Resolve the url as a Wiki Document if it exists, else assume it is an external link
36 36   #if ($xwiki.exists($url))
37 37   #set ($url = $xwiki.getDocument($url).getURL())
... ... @@ -43,6 +43,13 @@
43 43   #else
44 44   #set ($colors = [255, 255, 255])
45 45   #end
50 + #set ($macro.additionalClass = '')
51 + #if ("$!macro.classParam" != '')
52 + #set ($macro.additionalClass = "$macro.additionalClass $macro.classParam")
53 + #end
54 + #if ("$!macro.type" != '')
55 + #set ($macro.additionalClass = "$macro.additionalClass btn-$macro.type.name().toLowerCase()")
56 + #end
46 46   #set ($darkenedColors = [])
47 47   #darken($colors, $darkenedColors)
48 48   {{html clean=false}}
... ... @@ -54,14 +54,29 @@
54 54   #if (!$wikimacro.context.isInline())<p>#end
55 55   <a href="$url" #if($newTab == 'true')target="_blank"#end>
56 56   <button
68 + #if ("$!macro.id" != '')
69 + id="$escapetool.xml($macro.id)"
70 + #end
71 + #if ("$!title" != "")
72 + title="$escapetool.xml($title)"
73 + #end
57 57   style="
75 + #if ("$!color" != '')
58 58   background-color: #toCssRGB($colors);
59 59   border-color: #toCssRGB($darkenedColors);
60 60   color: #fontColor($colors);
79 + #end
61 61   width: $!width;
62 62   "
63 - class="btn">
64 - $!services.icon.renderHTML($!icon)
82 + class="btn $escapetool.xml($macro.additionalClass)">
83 + #if ("$!icon" != "")
84 + #set ($iconHTML = "$!services.icon.renderHTML($icon)")
85 + #if ($iconHTML == "")
86 + <span class="fa fa-$escapetool.xml($icon)"></span>
87 + #else
88 + $iconHTML
89 + #end
90 + #end
65 65   $label
66 66   </button>
67 67   </a>
XWiki.WikiMacroParameterClass[0]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -The label of the button.
XWiki.WikiMacroParameterClass[1]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -A link or a page reference.
XWiki.WikiMacroParameterClass[2]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -The color of the button.
XWiki.WikiMacroParameterClass[3]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -The width of the button specified in pixels, percentage or other valid CSS value (ex. 30px, 30%, 30em). If no value is specified, the width will be determined by the length of the label.
XWiki.WikiMacroParameterClass[4]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -Denotes whether the page will be opened in a new page or not.
XWiki.WikiMacroParameterClass[5]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -Icon associated with the button, placed before the label.
XWiki.WikiMacroParameterClass[6]
Parameter default value
... ... @@ -1,0 +1,1 @@
1 +DEFAULT
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +type
Parameter type
... ... @@ -1,0 +1,1 @@
1 +com.xwiki.macros.button.ButtonType
XWiki.WikiMacroParameterClass[7]
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +id
Parameter type
... ... @@ -1,0 +1,1 @@
1 +java.lang.String
XWiki.WikiMacroParameterClass[8]
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +class
Parameter type
... ... @@ -1,0 +1,1 @@
1 +java.lang.String
XWiki.WikiMacroParameterClass[9]
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +title
Parameter type
... ... @@ -1,0 +1,1 @@
1 +java.lang.String