Code source wiki de DiagramMacros

Version 1.1 par Admin le 24/06/2024 - 15:21

Masquer les derniers auteurs
Admin 1.1 1 {{velocity}}
2 #macro(displayConfluenceDiagramModal $id $diagram)
3
4 {{html clean="false"}}
5 <div class="modal fade" id="confluencediagram-${id}-modal" tabindex="-1" role="dialog" aria-labelledby="confluencediagram-${id}-title" aria-hidden="true">
6 <div class="modal-dialog modal-dialog-centered" role="document">
7 <div class="modal-content">
8 <div class="modal-header">
9 <div class="modal-title" id="confluencediagram-${id}-title">$escapetool.xml($services.localization.render('confluencediagram.modal.title'))</div>
10 <button type="button" class="close" data-dismiss="modal" aria-label="$escapetool.xml($services.localization.render('confluencediagram.modal.btn.close'))">
11 <span aria-hidden="true">&times;</span>
12 </button>
13 </div>
14 <div class="modal-body">
15 $escapetool.xml($services.localization.render('confluencediagram.modal.text'))
16 </div>
17 <div class="modal-footer">
18 <button type="button" class="btn btn-secondary" data-dismiss="modal">$escapetool.xml($services.localization.render('confluencediagram.modal.btn.close'))</button>
19 <form action="" method="post">
20 <input name="action" value="createDiagram" type="hidden" />
21 <input name="diagram" class="delete-diagram-page" type="hidden" value="$escapetool.xml($diagram)"/>
22 <button type="submit" class="btn btn-primary delete-diagram-btn">$escapetool.xml($services.localization.render("confluencediagram.modal.btn.confirm"))</button>
23 </form>
24 </div>
25 </div>
26 </div>
27 </div>
28 {{/html}}
29 #end
30 #macro(warnAboutDiagramAppInstall)
31 {{warning}}
32 #set ($queryString = $escapetool.url({
33 'section': 'XWiki.Extensions',
34 'search': 'Diagram'
35 }))
36 #set ($syntax = $services.rendering.resolveSyntax($xwiki.getCurrentContentSyntaxId()))
37 #set ($installURL = $xwiki.getURL('XWiki.XWikiPreferences', 'admin', $queryString))
38 #set ($message = $services.localization.render('confluencediagram.installRequired', ['linkPrefix', 'linkSuffix']))
39 #set ($escapedMessage = $services.rendering.escape($message, $syntax))
40 #set ($escapedLinkPrefix = $services.rendering.escape('linkPrefix', $syntax))
41 #set ($escapedLinkSuffix = $services.rendering.escape('linkSuffix', $syntax))
42 #set ($escapedMessage = $escapedMessage.replace($escapedLinkPrefix, '[[').replace($escapedLinkSuffix, ">>path:$installURL||target='_blank']]"))
43 $escapedMessage
44 {{/warning}}
45 #end
46 #macro(displayConfluenceDiagram)
47 #if (!$services.diagram)
48 #warnAboutDiagramAppInstall()
49 #else
50 #set($discard = $xwiki.jsx.use('Confluence.Macros.DiagramMacros'))
51 #set($discard = $xwiki.ssx.use('Confluence.Macros.DiagramMacros'))
52 ## Parameter for the gliffy macro
53 #set($diagramName = $xcontext.macro.params.name)
54 #if("$!diagramName" == "")
55 ## Parameter for the drawio macro
56 #set($diagramName = $xcontext.macro.params.diagramName)
57 #end
58 ## "Constants"
59 #set($previewImageName = "${diagramName}.png")
60 #set($previewImage = $doc.getAttachment($previewImageName))
61 ## Variables
62 #set($displayDiagram = true)
63 #set($diagram = $NULL)
64 ##
65 ## Check if the diagram page exists
66 #set($docReferenceSerialized = $services.model.serialize($doc.documentReference, 'local'))
67 #set($diagrams = $services.query.xwql('from doc.object(Confluence.Macros.DiagramClass) as diagramObj where diagramObj.page = :page and diagramObj.diagramName = :diagramName').bindValue('page', $docReferenceSerialized).bindValue('diagramName', "$!diagramName").setLimit(1).execute())
68 #if($diagrams.size() > 0)
69 #set($diagram = $diagrams.get(0))
70 #end
71 ##
72 (% class="confluence-diagram-container" %)(((
73 ## The diagram exists -> display it
74 #if($displayDiagram && $diagram)
75 {{diagram reference="$diagram" cached="false" /}}
76
77 #if($diagram && $xcontext.action != 'export')
78 ##
79 ## Display a button allowing the user to go back to confluence diagram mode
80 #if ($services.security.authorization.hasAccess('delete', $diagram))
81 #set($id = $mathtool.random(1, 100000))
82 {{translation key='confluencediagram.delete'/}}
83
84 {{html clean="false"}}
85 <a class="btn btn-primary" data-toggle="modal" data-target="#confluencediagram-${id}-modal">$escapetool.xml($services.localization.render('confluencediagram.delete.link'))</a>
86 {{/html}}
87
88 #displayConfluenceDiagramModal($id $diagram)
89 #end
90 #end
91 #else
92 #set($displayDiagram = false)
93 #end
94 ## Display the preview image if it exists
95 #if($previewImage && !$displayDiagram)
96 (% class="thumbnail" %)(((
97 [[image:$services.rendering.escape($previewImageName, $services.rendering.resolveSyntax($xwiki.getCurrentContentSyntaxId()))]]
98
99 ##
100 ## Display a button allowing the user to create an XWiki diagram
101 #if ($services.security.authorization.hasAccess('edit', $doc.documentReference) && $xcontext.action != 'export')
102 (% class="caption" %)(((
103 {{translation key='confluencediagram.create'/}}
104
105 {{html clean=false}}
106 <form action="" method="post">
107 <input name="action" value="createDiagram" type="hidden" />
108 <input name="pageReferenceSerialized" class="create-diagram-page" value="$escapetool.xml($docReferenceSerialized)" type="hidden" />
109 <input name="diagramName" class="create-diagram-name" value="$escapetool.xml($diagramName)" type="hidden" />
110 <button type="submit" class="btn btn-primary create-diagram-btn">$escapetool.xml($services.localization.render('confluencediagram.create.confirm'))</button>
111 </form>
112 {{/html}}
113 )))
114 )))
115 #end
116 #end
117 )))
118 #end
119 #end
120 #macro(checkDiagramAppInstall)
121 #if (!$services.diagram)
122 #warnAboutDiagramAppInstall()
123 #end
124 #end
125 {{/velocity}}