Modifications pour le document MacroService
Modifié par Florent Charton le 2026/03/13 11:04
Depuis la version 2.1
modifié par Florent Charton
sur 2022/06/28 18:01
sur 2022/06/28 18:01
Commentaire de modification :
Install extension [org.xwiki.contrib:application-ckeditor-ui/1.64.2]
À la version 3.1
modifié par Florent Charton
sur 2024/08/08 18:44
sur 2024/08/08 18:44
Commentaire de modification :
Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/15.10.11]
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
Détails
- Propriétés de la Page
-
- Contenu
-
... ... @@ -38,6 +38,23 @@ 38 38 ## } 39 39 ## ================================================================ 40 40 #macro (getMacroList $syntaxId) 41 + 42 + ## Loads the css resources to display the macros list 43 + ## TODO: Refactor once we add support for loading css files from javascript without velocity. 44 + #if ($xcontext.action == 'get') 45 + #template('display_macros.vm') 46 + #initRequiredSkinExtensions() 47 + #end 48 + 49 + #set ($discard = $xwiki.linkx.use($services.webjars.url('selectize.js', 'css/selectize.bootstrap3.css'), 50 + {'type': 'text/css', 'rel': 'stylesheet'})) 51 + #set ($discard = $xwiki.ssfx.use('uicomponents/suggest/xwiki.selectize.css', true)) 52 + 53 + #if ($xcontext.action == 'get') 54 + #getRequiredSkinExtensions($requiredSkinExtensions) 55 + #set ($discard = $response.setHeader('X-XWIKI-HTML-HEAD', $requiredSkinExtensions)) 56 + #end 57 + 41 41 #set ($syntax = $services.rendering.resolveSyntax($syntaxId)) 42 42 #set ($macroDescriptors = $services.rendering.getMacroDescriptors($syntax)) 43 43 #if (!$macroDescriptors) ... ... @@ -56,16 +56,41 @@ 56 56 #set ($discard = $allMacrosExcludedCategories.add("#maybeTranslate('rendering.macroCategory.Internal' 'Internal')")) 57 57 #set ($discard = $allMacrosExcludedCategories.add("#maybeTranslate('rendering.macroCategory.Deprecated' 'Deprecated')")) 58 58 #set ($discard = $data.put('options', { 'allMacrosExcludedCategories' : $allMacrosExcludedCategories })) 76 + ## If the current user do not want to display hidden documents, we initialize the set of hidden default 77 + ## categories. 78 + ## TODO: Make the list of hidden by default categories configurable from the administration (XWIKI-19993). 79 + #if(!$services.user.getProperties().displayHiddenDocuments()) 80 + #set ($hiddenCategories = $services.rendering.getHiddenMacroCategories()) 81 + #else 82 + #set ($hiddenCategories = []) 83 + #end 59 59 #set ($macroList = []) 85 + #set ($installedMacros = []) 60 60 #foreach ($macroDescriptor in $macroDescriptors) 87 + #set ($discard = $installedMacros.add($macroDescriptor.id.id)) 88 + 61 61 #set ($macroTranslationKey = "rendering.macro.$macroDescriptor.id") 62 - #set ($macroCategoryTranslationKey = "rendering.macroCategory.$macroDescriptor.defaultCategory") 63 - #set ($discard = $macroList.add({ 64 - 'id': $macroDescriptor.id, 65 - 'name': "#maybeTranslate(""${macroTranslationKey}.name"" $macroDescriptor.name)", 66 - 'description': "#maybeTranslate(""${macroTranslationKey}.description"" $macroDescriptor.description)", 67 - 'defaultCategory': "#maybeTranslate($macroCategoryTranslationKey $macroDescriptor.defaultCategory)" 68 - })) 90 + #set ($categories = []) 91 + #set ($hidden = false) 92 + #foreach ($category in $services.rendering.getMacroCategories($macroDescriptor.id)) 93 + #set ($macroCategoryTranslationKey = "rendering.macroCategory.$category") 94 + #set ($hidden = $hidden || $hiddenCategories.contains($category)) 95 + #set ($discard = $categories.add({ 96 + 'id': $category, 97 + 'label': "#maybeTranslate($macroCategoryTranslationKey $category)" 98 + })) 99 + #end 100 + 101 + #if (!$hidden) 102 + #set ($defaultCategoryTranslation = "rendering.macroCategory.${macroDescriptor.defaultCategory}") 103 + #set ($discard = $macroList.add({ 104 + 'id': $macroDescriptor.id, 105 + 'name': "#maybeTranslate(""${macroTranslationKey}.name"" $macroDescriptor.name)", 106 + 'description': "#maybeTranslate(""${macroTranslationKey}.description"" $macroDescriptor.description)", 107 + 'defaultCategory': "#maybeTranslate($defaultCategoryTranslation $macroDescriptor.defaultCategory)", 108 + 'categories': $categories 109 + })) 110 + #end 69 69 #end 70 70 #set ($macroList = $resolvedSortTool.sort($macroList, 'name')) 71 71 #set ($discard = $data.put('list', $macroList)) ... ... @@ -80,7 +80,6 @@ 80 80 #end 81 81 #set ($discard = $extensionQuery.setInstalled(false, '', "wiki:$xcontext.database")) 82 82 #set ($extensions = $services.extension.index.repository.search($extensionQuery)) 83 - #set ($macroExtensionCategory = $services.localization.render('ckeditor.plugin.macro.notinstalled')) 84 84 #if ($extensions.size > 0) 85 85 #set ($macroExtensionsMap = {}) 86 86 #foreach ($extension in $extensions) ... ... @@ -90,21 +90,28 @@ 90 90 && $services.security.authorization.hasAccess('admin', $xcontext.userReference, "wiki:$xcontext.database") && $services.extension.isAllowed($extension, "wiki:$xcontext.database"))) 91 91 #foreach ($extensionComponent in $extension.getComponents()) 92 92 #if ($extensionComponent.roleType == 'org.xwiki.rendering.macro.Macro') 93 - #set ($discard = $macroExtensionsList.add({ 94 - 'id' : { 95 - 'id' : $extensionComponent.roleHint 96 - }, 97 - 'name': $extensionComponent.roleHint, 98 - 'description': $extension.summary, 99 - 'defaultCategory': '_notinstalled', 100 - 'extensionId' : $extension.id.id, 101 - 'extensionVersion' : $extension.id.version.value, 102 - 'extensionType' : $extension.type, 103 - 'extensionRecommended': $extension.recommended, 104 - 'extensionName': $extension.name, 105 - 'extensionSummary': $extension.summary, 106 - 'extensionInstallAllowed': $extensionInstallAllowed 107 - })) 134 + ## Skip macros identifiers for which a macro is already installed 135 + #if (!$installedMacros.contains($extensionComponent.roleHint)) 136 + #set ($discard = $macroExtensionsList.add({ 137 + 'id' : { 138 + 'id' : $extensionComponent.roleHint 139 + }, 140 + 'name': $extensionComponent.roleHint, 141 + 'description': $extension.summary, 142 + 'defaultCategory': '_notinstalled', 143 + 'categories': [{ 144 + 'id' :'_notinstalled', 145 + 'label': $services.localization.render('macroSelector.filter.category.notinstalled') 146 + }], 147 + 'extensionId' : $extension.id.id, 148 + 'extensionVersion' : $extension.id.version.value, 149 + 'extensionType' : $extension.type, 150 + 'extensionRecommended': $extension.recommended, 151 + 'extensionName': $extension.name, 152 + 'extensionSummary': $extension.summary, 153 + 'extensionInstallAllowed': $extensionInstallAllowed 154 + })) 155 + #end 108 108 #end 109 109 #end 110 110 #end