Wiki source code of DefaultWYSIWYGEditorConfig

Last modified by superadmin on 2025/05/22 17:44

Show last authors
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}}