Changes for page InfoboxStyles

Last modified by Mads Pedersen on 2026/07/28 06:53

From version 8.8
edited by Mads Pedersen
on 2026/01/20 14:53
Change comment: There is no comment for this version
To version 8.28
edited by Mads Pedersen
on 2026/01/21 12:49
Change comment: There is no comment for this version

Summary

Details

XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,32 +1,70 @@
1 1  {{velocity}}
2 2  {{html clean="false"}}
3 -<div style="float:right; width:280px; margin:0 0 1em 1em; border:1px solid #aaa; background:#f8f9fa; font-size:0.9em; font-family: sans-serif; line-height: 1.4;">
4 - <table style="width:100%; border-collapse:collapse;">
3 +
4 +#set($width = $xcontext.macro.params.width)
5 +#set($labelWidth = $xcontext.macro.params.labelWidth)
6 +
7 +## Default values if parameters are missing
8 +#if("$!width" == "") #set($width = "22") #end
9 +#if("$!labelWidth" == "") #set($labelWidth = "35%") #end
10 +
11 +<style>
12 + .custom-infobox {
13 + float: right;
14 + margin: 0 0 1em 1em;
15 + border: 1px solid #aaa;
16 + background: #f8f9fa;
17 + font-size: 0.9em;
18 + font-family: sans-serif;
19 + line-height: 1.5;
20 + box-shadow: 0 2px 4px rgba(0,0,0,0.1);
21 + }
22 +
23 + @media print {
24 + .custom-infobox {
25 + float: none !important;
26 + width: 100% !important;
27 + margin: 1em 0 !important;
28 + box-shadow: none !important;
29 + }
30 + }
31 +</style>
32 +
33 +<div class="custom-infobox" style="width:${width}rem;">
34 + <table style="width:100%; border-collapse:collapse; table-layout: fixed;">
35 + ## Header
5 5   #if($xcontext.macro.params.title && "$!xcontext.macro.params.title" != "")
6 - <caption style="background:#e5e5e5; font-weight:bold; padding:8px; border:1px solid #aaa; border-bottom:none; color: #333;">
37 + <caption style="background:#eeeeee; font-weight:bold; padding:10px; border:1px solid #aaa; border-bottom:none; color: #000;">
7 7   $xcontext.macro.params.title
8 8   </caption>
9 9   #end
10 10  
42 + ## Image
11 11   #if($xcontext.macro.params.image && "$!xcontext.macro.params.image" != "")
12 12   <tr>
13 - <td colspan="2" style="text-align:center; padding:4px;">
45 + <td colspan="2" style="text-align:center; padding:8px; background: #fff;">
14 14   <img src="$xcontext.macro.params.image" style="max-width:100%; height:auto; display:block; margin: 0 auto;">
15 15   #if($xcontext.macro.params.caption && "$!xcontext.macro.params.caption" != "")
16 - <div style="font-size:0.85em; color:#555; padding: 4px 0;">$xcontext.macro.params.caption</div>
48 + <div style="font-size:0.9em; color:#666; padding-top: 6px; font-style: italic;">$xcontext.macro.params.caption</div>
17 17   #end
18 18   </td>
19 19   </tr>
20 20   #end
21 21  
22 - #set($content = $xcontext.macro.params.data)
23 - #if($content && "$!content" != "")
24 - #foreach($line in $content.split("\r?\n"))
25 - #if($line.contains("=") && "$!line.trim()" != "")
26 - #set($parts = $line.split("=", 2))
54 + ## Parse the Macro Content
55 + #set($macroContent = $xcontext.macro.content)
56 + #if($macroContent && "$!macroContent.trim()" != "")
57 + #foreach($line in $macroContent.split("\n"))
58 + #set($trimmedLine = $line.trim())
59 + #if($trimmedLine.contains("=") && $trimmedLine.length() > 2)
60 + #set($parts = $trimmedLine.split("=", 2))
27 27   <tr>
28 - <th style="border-top:1px solid #aaa; padding:6px; text-align:left; background:#f2f2f2; width:35%; vertical-align: top;">$parts[0].trim()</th>
29 - <td style="border-top:1px solid #aaa; padding:6px; vertical-align: top;">$parts[1].trim()</td>
62 + <th style="border-top:1px solid #ddd; padding:8px; text-align:left; background:#f9f9f9; width:${labelWidth}; vertical-align: top; font-weight: 600; word-break: break-word;">
63 + $parts[0].trim()
64 + </th>
65 + <td style="border-top:1px solid #ddd; padding:8px; vertical-align: top; background: #fff; word-break: break-word;">
66 + $parts[1].trim()
67 + </td>
30 30   </tr>
31 31   #end
32 32   #end
Content description (Not applicable for "No content" type)
... ... @@ -1,0 +1,1 @@
1 +Write lines into the infobox like "Label=Example text"
Macro content availability
... ... @@ -1,1 +1,1 @@
1 -No content
1 +Mandatory
XWiki.WikiMacroParameterClass[0]
Parameter order property
... ... @@ -1,0 +1,1 @@
1 +10
XWiki.WikiMacroParameterClass[1]
Parameter order property
... ... @@ -1,0 +1,1 @@
1 +11
XWiki.WikiMacroParameterClass[2]
Parameter order property
... ... @@ -1,0 +1,1 @@
1 +12
XWiki.WikiMacroParameterClass[3]
Parameter description
... ... @@ -1,1 +1,1 @@
1 -Write lines into the infobox like "Label=Example text"
1 +The width of the box. Default 20
Parameter name
... ... @@ -1,1 +1,1 @@
1 -data
1 +width
Parameter order property
... ... @@ -1,1 +1,0 @@
1 -10
Parameter type
... ... @@ -1,1 +1,0 @@
1 -TextArea
XWiki.WikiMacroParameterClass[4]
Parameter description
... ... @@ -1,0 +1,1 @@
1 +Width of the left column, defaults to 35%
Parameter name
... ... @@ -1,0 +1,1 @@
1 +labelWidth