Code source wiki de DiagramMacros

Version 4.1 par Admin le 06/09/2024 - 10:41

Afficher les derniers auteurs
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 ## Get original document
59 #set ($originalDoc = $xcontext.macro.params.originalDocumentRef)
60 #if ("$!originalDoc" != '')
61 #set ($doc = $xwiki.getDocument($originalDoc))
62 #end
63 ## "Constants"
64 #set($previewImageName = "${diagramName}.png")
65 #set($previewImage = $doc.getAttachment($previewImageName))
66 ## Variables
67 #set($displayDiagram = true)
68 #set($diagram = $NULL)
69 ##
70 ## Check if the diagram page exists
71 #set($docReferenceSerialized = $services.model.serialize($doc.documentReference, 'local'))
72 #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())
73 #if($diagrams.size() > 0)
74 #set($diagram = $diagrams.get(0))
75 #end
76 ##
77 (% class="confluence-diagram-container" %)(((
78 ## The diagram exists -> display it
79 #if($displayDiagram && $diagram)
80 {{diagram reference="$services.rendering.escape($diagram, $xwiki.currentContentSyntaxId)" cached="false" /}}
81
82 #if($diagram && $xcontext.action != 'export')
83 ##
84 ## Display a button allowing the user to go back to confluence diagram mode
85 #if ($services.security.authorization.hasAccess('delete', $diagram))
86 #set($id = $mathtool.random(1, 100000))
87 {{translation key='confluencediagram.delete'/}}
88
89 {{html clean="false"}}
90 <a class="btn btn-primary" data-toggle="modal" data-target="#confluencediagram-${id}-modal">$escapetool.xml($services.localization.render('confluencediagram.delete.link'))</a>
91 {{/html}}
92
93 #displayConfluenceDiagramModal($id $diagram)
94 #end
95 #end
96 #else
97 #set($displayDiagram = false)
98 #end
99 ## Display the preview image if it exists
100 #if($previewImage && !$displayDiagram)
101 (% class="thumbnail" %)(((
102 #if("$!originalDoc" == '')
103 [[image:$services.rendering.escape($previewImageName, $services.rendering.resolveSyntax($xwiki.getCurrentContentSyntaxId()))]]
104 #else
105 {{html clean='false'}}<img src='$xwiki.getDocument($originalDoc).getAttachmentURL($previewImageName, 'download')'/>{{/html}}
106 #end
107 ##
108 ## Display a button allowing the user to create an XWiki diagram
109 #if ($services.security.authorization.hasAccess('edit', $doc.documentReference) && $xcontext.action != 'export')
110 (% class="caption" %)(((
111 {{translation key='confluencediagram.create'/}}
112
113 {{html clean=false}}
114 <form action="" method="post">
115 <input name="action" value="createDiagram" type="hidden" />
116 <input name="pageReferenceSerialized" class="create-diagram-page" value="$escapetool.xml($docReferenceSerialized)" type="hidden" />
117 <input name="diagramName" class="create-diagram-name" value="$escapetool.xml($diagramName)" type="hidden" />
118 <button type="submit" class="btn btn-primary create-diagram-btn">$escapetool.xml($services.localization.render('confluencediagram.create.confirm'))</button>
119 </form>
120 {{/html}}
121 )))
122 )))
123 #end
124 #end
125 )))
126 #end
127 #end
128 #macro(checkDiagramAppInstall)
129 #if (!$services.diagram)
130 #warnAboutDiagramAppInstall()
131 #end
132 #end
133 {{/velocity}}