Wiki source code of VelocityMacros
Version 1.1 by Andrey Che on 2018/12/10 14:09
Hide last authors
1.1 | 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}} |