Zmeny dokumentu VelocityMacros
Naposledy upravil Admin-metais MetaIS 2025/05/28 21:41
Z verzie 2.1
upravil Admin-metais MetaIS
-
-
Zmeniť komentár:
Install extension [com.xwiki.licensing:application-licensing-licensor-ui/1.29]
Do verzie 1.1
upravil Admin-metais MetaIS
-
-
Zmeniť komentár:
Install extension [com.xwiki.licensing:application-licensing-licensor-ui/1.26]
Súhrn
-
Vlastnosti stránky (1 modified, 0 added, 0 removed)
Podrobnosti
- Vlastnosti stránky
-
- Obsah
-
... ... @@ -17,15 +17,51 @@ 17 17 18 18 #macro (getVisiblePaidExtensions) 19 19 #getPaidExtensions 20 - #set ($mandatoryExtensions = $services.licensing.licensor.getLicensedExtensionManager().getMandatoryLicensedExtensions()) 21 21 #set ($visiblePaidExtensions = $collectiontool.set) 22 22 #foreach ($paidExtension in $paidExtensions) 23 - #if ($mandatoryExtensions.contains($paidExtension.getId())) 22 + ## Filter out the paid extensions that are dependencies of other paid extensions (because the license of a paid 23 + ## extension should cover its paid dependencies). 24 + #isRequiredBy($paidExtension $paidExtensions) 25 + #if (!$isRequiredBy) 24 24 #set ($discard = $visiblePaidExtensions.add($paidExtension)) 25 25 #end 26 26 #end 27 27 #end 28 28 31 +#macro (isRequiredBy $installedExtension $extensions) 32 + #set ($isRequiredBy = false) 33 + #set ($backwardDependencies = $collectiontool.queue) 34 + #addBackwardDependencies($installedExtension $backwardDependencies) 35 + ## We can't iterate the queue while modifying it and we can't write a "while" loop in Velocity so we're forced to 36 + ## rely on a range loop (limiting the number of backward dependencies that we analyze). 37 + #foreach ($i in [0..1000]) 38 + #set ($backwardDependency = $backwardDependencies.poll()) 39 + #if ($backwardDependency) 40 + #if ($extensions.contains($backwardDependency)) 41 + #set ($isRequiredBy = true) 42 + #break 43 + #else 44 + #addBackwardDependencies($backwardDependency $backwardDependencies) 45 + #end 46 + #else 47 + #break 48 + #end 49 + #end 50 +#end 51 + 52 +#macro (addBackwardDependencies $installedExtension $backwardDependencies) 53 + #set ($backwardDependenciesSet = $collectiontool.set) 54 + #set ($discard = $backwardDependenciesSet.addAll($backwardDependencies)) 55 + #set ($backwardDependenciesByNamespace = $services.extension.installed.getBackwardDependencies($installedExtension.id)) 56 + #foreach ($backwardDependenciesOnNamespace in $backwardDependenciesByNamespace.values()) 57 + #foreach ($backwardDependency in $backwardDependenciesOnNamespace) 58 + #if ($backwardDependenciesSet.add($backwardDependency)) 59 + #set ($discard = $backwardDependencies.add($backwardDependency)) 60 + #end 61 + #end 62 + #end 63 +#end 64 + 29 29 #macro (getLicensesAdminSectionURL) 30 30 ## We target the main wiki explicitly because licenses are managed globally. 31 31 #if ($xwiki.exists($services.model.createDocumentReference($xcontext.mainWikiName, 'XWiki', 'ConfigurableClass'))) ... ... @@ -199,36 +199,4 @@ 199 199 </div> 200 200 {{/html}} 201 201 #end 202 - 203 -#macro(installedAsDependency) 204 -{{html clean="false" wiki="true"}} 205 - <div class="modal fade" id="installed-as-dependency" tabindex="-1" role="dialog" aria-labelledby="installed-as-dependency-label"> 206 - <div class="modal-dialog" role="document"> 207 - <div class="modal-content"> 208 - <div class="modal-header"> 209 - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 210 - <span aria-hidden="true">×</span> 211 - </button> 212 - <div class="modal-title" id="installed-as-dependency-label"> 213 - $escapetool.xml($services.localization.render('licensor.installedAsDependency.modal.title')) 214 - </div> 215 - </div> 216 - <div class="modal-body"> 217 - $escapetool.xml($services.localization.render('licensor.installedAsDependency.modal.description')) 218 - <ul class="parent-extensions"></ul> 219 - $escapetool.xml($services.localization.render('licensor.installedAsDependency.modal.question')) 220 - </div> 221 - <div class="modal-footer"> 222 - <button type="button" class="btn btn-default" data-dismiss="modal"> 223 - $escapetool.xml($services.localization.render('cancel')) 224 - </button> 225 - <button type="button" class="btn btn-primary"> 226 - $escapetool.xml($services.localization.render('licensor.installedAsDependency.modal.confirm')) 227 - </button> 228 - </div> 229 - </div> 230 - </div> 231 - </div> 232 -{{/html}} 233 -#end 234 234 {{/velocity}}