Änderungen von Dokument DiagramMacros

Zuletzt geändert von Daniel Herrmann am 2026/02/04 20:25

Von Version 1.1 Icon
bearbeitet von Daniel Herrmann
am 2025/06/22 19:09
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros-confluence-bridges-ui/1.26.19]
Auf Version Icon 3.1 Icon
bearbeitet von Daniel Herrmann
am 2025/07/19 16:57
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros-confluence-bridges-ui/1.27.1]

Zusammenfassung

Details

Icon Seiteneigenschaften
Inhalt
... ... @@ -55,18 +55,32 @@
55 55   ## Parameter for the drawio macro
56 56   #set($diagramName = $xcontext.macro.params.diagramName)
57 57   #end
58 + ## By default the diagramDocument should be the current doc
59 + #set ($diagramDocument = $doc)
58 58   ## Get original document
59 59   #set ($originalDoc = $xcontext.macro.params.originalDocumentRef)
60 60   #if ("$!originalDoc" != '')
61 - #set ($doc = $xwiki.getDocument($originalDoc))
63 + #set ($diagramDocument = $xwiki.getDocument($originalDoc))
62 62   #end
65 + ## Used for gliffy macros that include a diagram from another page.
66 + #set ($pageID = $xcontext.macro.params.pageid)
67 + #if ("$!pageID" != '' && "$!originalDoc" == '')
68 + #set ($reference = $services.gliffyscript.getReferenceFromConfluenceID($pageID))
69 + ## When the reference is null we should display a warning.
70 + #if ($reference)
71 + #set ($diagramDocument = $xwiki.getDocument($reference))
72 + #else
73 + #set ($displayWarning = true)
74 + #end
75 + #set ($originalDoc = $diagramDocument)
76 + #end
63 63   ## "Constants"
64 64   #set($previewImageName = "${diagramName}.png")
65 - #set($previewImage = $doc.getAttachment($previewImageName))
79 + #set($previewImage = $diagramDocument.getAttachment($previewImageName))
66 66   #if (!$previewImage)
67 67   ## In some cases, the drawio file name is not the same as the PNG one.
68 68   #set($previewImageName = $xcontext.macro.params.tempPreview)
69 - #set($previewImage = $doc.getAttachment($previewImageName))
83 + #set($previewImage = $diagramDocument.getAttachment($previewImageName))
70 70   #end
71 71   ## Variables
72 72   #set($displayDiagram = true)
... ... @@ -73,8 +73,8 @@
73 73   #set($diagram = $NULL)
74 74   ##
75 75   ## Check if the diagram page exists
76 - #set($docReferenceSerialized = $services.model.serialize($doc.documentReference, 'local'))
77 - #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())
90 + #set($diagramDocumentReferenceSerialized = $services.model.serialize($diagramDocument.documentReference, 'local'))
91 + #set($diagrams = $services.query.xwql('from doc.object(Confluence.Macros.DiagramClass) as diagramObj where diagramObj.page = :page and diagramObj.diagramName = :diagramName').bindValue('page', $diagramDocumentReferenceSerialized).bindValue('diagramName', "$!diagramName").setLimit(1).execute())
78 78   #if($diagrams.size() > 0)
79 79   #set($diagram = $diagrams.get(0))
80 80   #end
... ... @@ -111,7 +111,7 @@
111 111   #end
112 112   ##
113 113   ## Display a button allowing the user to create an XWiki diagram
114 - #if ($services.security.authorization.hasAccess('edit', $doc.documentReference) && $xcontext.action != 'export')
128 + #if ($services.security.authorization.hasAccess('edit', $diagramDocument.documentReference) && $xcontext.action != 'export')
115 115   (% class="caption" %)(((
116 116   {{translation key='confluencediagram.create'/}}
117 117  
... ... @@ -118,7 +118,7 @@
118 118   {{html clean=false}}
119 119   <form action="" method="post">
120 120   <input name="action" value="createDiagram" type="hidden" />
121 - <input name="pageReferenceSerialized" class="create-diagram-page" value="$escapetool.xml($docReferenceSerialized)" type="hidden" />
135 + <input name="pageReferenceSerialized" class="create-diagram-page" value="$escapetool.xml($diagramDocumentReferenceSerialized)" type="hidden" />
122 122   <input name="diagramName" class="create-diagram-name" value="$escapetool.xml($diagramName)" type="hidden" />
123 123   <input name="diagramPNGName" class="create-diagram-png-name" value="$escapetool.xml($previewImageName)" type="hidden" />
124 124   <button type="submit" class="btn btn-primary create-diagram-btn">$escapetool.xml($services.localization.render('confluencediagram.create.confirm'))</button>
... ... @@ -127,6 +127,12 @@
127 127   )))
128 128   )))
129 129   #end
144 + #elseif("$pageID" != "" && $displayWarning)
145 + ##If the display fails then show a warning.
146 + #set ($syntax = $services.rendering.resolveSyntax($xwiki.getCurrentContentSyntaxId()))
147 + #set ($message = $services.localization.render('confluencediagram.warning.notfound'))
148 +
149 + {{warning}}$message{{/warning}}
130 130   #end
131 131   )))
132 132   #end