Wiki source code of DefaultWYSIWYGEditorConfig
Last modified by superadmin on 2025/05/22 17:44
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | {{velocity output="false"}} |
| 2 | #macro (maybeConfigureDefaultWysiwygEditor) | ||
| 3 | #maybeConfigureDefaultEditor('org.xwiki.rendering.syntax.SyntaxContent' 'wysiwyg') | ||
| 4 | #end | ||
| 5 | |||
| 6 | #macro (maybeConfigureDefaultEditor $dataType $category) | ||
| 7 | #set ($editorBindingClassName = 'XWiki.EditorBindingClass') | ||
| 8 | #if ("$!category" != '') | ||
| 9 | #set ($dataTypeValue = "$dataType$escapetool.h$category") | ||
| 10 | #else | ||
| 11 | #set ($dataTypeValue = $dataType) | ||
| 12 | #end | ||
| 13 | #set ($editorBindingObject = $doc.getObject($editorBindingClassName, 'dataType', $dataTypeValue)) | ||
| 14 | #if (!$editorBindingObject) | ||
| 15 | #set ($editorBindingObject = $doc.newObject($editorBindingClassName)) | ||
| 16 | #set ($discard = $editorBindingObject.set('dataType', $dataTypeValue)) | ||
| 17 | #end | ||
| 18 | #set ($objectNumber = $editorBindingObject.number) | ||
| 19 | #set ($fieldName = "${editorBindingClassName}_${objectNumber}_roleHint") | ||
| 20 | #set ($defaultEditor = $request.getParameter($fieldName)) | ||
| 21 | #if ("$!defaultEditor" == '') | ||
| 22 | #set ($defaultEditor = $editorBindingObject.getValue('roleHint')) | ||
| 23 | #end | ||
| 24 | #set ($editors = $services.edit.getEditors($dataType, $category)) | ||
| 25 | #if ("$!defaultEditor" != '' || ($editors && $editors.size() > 0)) | ||
| 26 | #configureDefaultEditor($editors $defaultEditor) | ||
| 27 | #end | ||
| 28 | #end | ||
| 29 | |||
| 30 | #macro (configureDefaultEditor $editors $defaultEditor) | ||
| 31 | #set ($escapedFieldName = $escapetool.xml($fieldName)) | ||
| 32 | <dt> | ||
| 33 | <label for="$escapedFieldName"> | ||
| 34 | #set ($key = "edit.defaultEditor.$dataTypeValue.replace('#', '.')") | ||
| 35 | $escapetool.xml($services.localization.render($key)) | ||
| 36 | </label> | ||
| 37 | <span class="xHint">$escapetool.xml($services.localization.render("${key}.hint"))</span> | ||
| 38 | </dt> | ||
| 39 | <dd> | ||
| 40 | ## Add the configuration object if it doesn't exist. | ||
| 41 | <input type="hidden" name="objectPolicy" value="updateOrCreate" /> | ||
| 42 | <input type="hidden" name="$escapetool.xml("${editorBindingClassName}_${objectNumber}_dataType")" | ||
| 43 | value="$escapetool.xml($dataTypeValue)" /> | ||
| 44 | <select id="$escapedFieldName" name="$escapedFieldName"> | ||
| 45 | ## This option is needed in order to allow the user to reset the default editor and inherit the configuration from | ||
| 46 | ## the parent configuration source. | ||
| 47 | <option value="">---</option> | ||
| 48 | #foreach ($editor in $editors) | ||
| 49 | #set ($editorDescriptor = $editor.descriptor) | ||
| 50 | <option value="$escapetool.xml($editorDescriptor.id)" #if ($editorDescriptor.id == $defaultEditor) | ||
| 51 | selected="selected"#end>$escapetool.xml($editorDescriptor.name)</option> | ||
| 52 | #end | ||
| 53 | #if ("$!defaultEditor" != '' && !$services.edit.getEditor($dataType, $defaultEditor)) | ||
| 54 | ## The configured default editor is not available any more. | ||
| 55 | <option value="$escapetool.xml($defaultEditor)" selected="selected"> | ||
| 56 | $escapetool.xml($defaultEditor) | ||
| 57 | </option> | ||
| 58 | #end | ||
| 59 | </select> | ||
| 60 | </dd> | ||
| 61 | #end | ||
| 62 | |||
| 63 | #set ($discard = $xwiki.ssx.use('XWiki.DefaultWYSIWYGEditorConfig')) | ||
| 64 | #set ($discard = $xwiki.jsx.use('XWiki.DefaultWYSIWYGEditorConfig')) | ||
| 65 | #set ($params = { | ||
| 66 | 'general': [{'html': "#maybeConfigureDefaultWysiwygEditor"}] | ||
| 67 | }) | ||
| 68 | {{/velocity}} | ||
| 69 | |||
| 70 | {{include reference="XWiki.AdminFieldsDisplaySheet" /}} | ||
| 71 | |||
| 72 | ---- | ||
| 73 | |||
| 74 | {{velocity}} | ||
| 75 | {{html clean="false"}} | ||
| 76 | <!-- The tabs used to show the configuration properties for each editor. --> | ||
| 77 | <ul class="nav nav-tabs" role="tablist" | ||
| 78 | data-defaultEditorId="$!escapetool.xml($services.edit.syntaxContent.defaultWysiwygEditor.descriptor.id)"> | ||
| 79 | <li role="presentation" class="hidden"> | ||
| 80 | <a href="#tab-pane-template" aria-controls="tab-pane-template" role="tab" data-toggle="tab"></a> | ||
| 81 | </li> | ||
| 82 | </ul> | ||
| 83 | <div class="tab-content"> | ||
| 84 | <div role="tabpanel" class="tab-pane hidden" id="tab-pane-template"></div> | ||
| 85 | </div> | ||
| 86 | {{/html}} | ||
| 87 | {{/velocity}} |