Wiki source code of VelocityMacros
Version 1.1 by Andrey Che on 2018/12/10 14:09
Show last authors
1 | {{velocity output="false"}} |
2 | #set ($discard = $xwiki.ssx.use('Help.Code.VelocityMacros')) |
3 | #set ($discard = $xwiki.jsx.use('Help.Code.VelocityMacros')) |
4 | #set ($docextras = []) |
5 | |
6 | #macro (helpActionCard $data) |
7 | <div class="well"> |
8 | <h3>$escapetool.xml($data.title)</h3> |
9 | <div class="row"> |
10 | <div class="col-xs-12 col-md-7"> |
11 | <p>$data.description</p> |
12 | <p class="noitems">$data.tip</p> |
13 | #foreach ($action in $data.actions) |
14 | #set ($actionType = $action.type) |
15 | #if ("$!actionType" == '') |
16 | #set ($actionType = 'default') |
17 | #end |
18 | <a href="$action.url" class="btn btn-$actionType"> |
19 | $escapetool.xml($action.label) |
20 | </a> |
21 | #end |
22 | </div> |
23 | <div class="col-xs-12 col-md-5"> |
24 | #helpVideoPopup($data.title $data.thumbnail) |
25 | </div> |
26 | </div> |
27 | </div> |
28 | #end |
29 | |
30 | #macro (helpVideoPopup $title $fileNamePrefix) |
31 | #set ($id = $stringtool.substringBeforeLast($fileNamePrefix, '.')) |
32 | <a href="#" data-toggle="modal" data-target="#${id}Modal"> |
33 | <video class="thumbnail" autoplay loop muted> |
34 | #helpVideoSources($fileNamePrefix) |
35 | </video> |
36 | </a> |
37 | <div class="modal fade video-modal" id="${id}Modal" tabindex="-1" role="dialog" aria-labelledby="${id}ModalLabel"> |
38 | <div class="modal-dialog modal-lg" role="document"> |
39 | <div class="modal-content"> |
40 | <div class="modal-header"> |
41 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
42 | <span aria-hidden="true">×</span> |
43 | </button> |
44 | <h4 class="modal-title" id="${id}ModalLabel">$!escapetool.xml($title)</h4> |
45 | </div> |
46 | <div class="modal-body"> |
47 | <video controls autoplay> |
48 | #helpVideoSources($fileNamePrefix) |
49 | </video> |
50 | </div> |
51 | <div class="modal-footer"> |
52 | <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> |
53 | </div> |
54 | </div> |
55 | </div> |
56 | </div> |
57 | #end |
58 | |
59 | #macro (helpVideoSources $fileNamePrefix) |
60 | #set ($attachments = []) |
61 | #set ($attachment = $doc.getAttachment($fileNamePrefix)) |
62 | #if ($attachment) |
63 | #set ($discard = $attachments.add($attachment)) |
64 | #else |
65 | #foreach ($attachment in $doc.attachmentList) |
66 | #if ($stringtool.startsWith($attachment.filename, $fileName)) |
67 | #set ($discard = $attachments.add($attachment)) |
68 | #end |
69 | #end |
70 | #end |
71 | #foreach ($attachment in $attachments) |
72 | <source src="$doc.getAttachmentURL($attachment.filename)" type="$escapetool.xml($attachment.mimeType)" /> |
73 | #end |
74 | #end |
75 | |
76 | #macro (helpExampleCard $data) |
77 | #set ($documentationURL = $NULL) |
78 | #if ($data.documentation) |
79 | #set ($externalDocumentation = $data.documentation.contains('://')) |
80 | #if ($externalDocumentation) |
81 | #set ($documentationURL = $data.documentation) |
82 | #else |
83 | #set ($documentationURL = $xwiki.getURL($data.documentation)) |
84 | #end |
85 | #end |
86 | #set ($examplesURL = $NULL) |
87 | #if ($data.examples) |
88 | #if ($data.examples.startsWith('/')) |
89 | ## Relative internal URL |
90 | #set ($examplesURL = $data.examples) |
91 | #else |
92 | ## Page reference |
93 | #set ($examplesURL = $xwiki.getURL($data.examples)) |
94 | #end |
95 | #set ($url = $examplesURL) |
96 | #else |
97 | #set ($url = $documentationURL) |
98 | #end |
99 | <div class="well"> |
100 | #if ($data.icon) |
101 | <span class="icon $data.icon"></span> |
102 | #end |
103 | <h6> |
104 | <a href="$!url"> |
105 | $escapetool.xml($data.title) |
106 | </a> |
107 | </h6> |
108 | #if ($data.description) |
109 | <p class="noitems"> |
110 | $data.description |
111 | </p> |
112 | #end |
113 | #if (($data.examples && $data.documentation) || !$data.thumbnail) |
114 | <ul class="noitems"> |
115 | #if ($data.examples) |
116 | <li> |
117 | <a href="$examplesURL">See examples</a> |
118 | </li> |
119 | #end |
120 | #if ($data.documentation) |
121 | <li> |
122 | <a href="$documentationURL"#if ($externalDocumentation) class="wikiexternallink"#end> |
123 | Learn more |
124 | </a> |
125 | </li> |
126 | #end |
127 | </ul> |
128 | #end |
129 | #if ($data.thumbnail) |
130 | <a href="$!url"> |
131 | #set ($attachmentReference = $services.model.resolveAttachment($data.thumbnail)) |
132 | <img src="$xwiki.getURL($attachmentReference)" class="thumbnail" |
133 | alt="$escapetool.xml($attachmentReference.name)" /> |
134 | </a> |
135 | #end |
136 | </div> |
137 | #end |
138 | {{/velocity}} |