0 Votes

Wiki source code of Administration

Last modified by Ryan C on 2025/03/06 17:59

Show last authors
1 {{velocity}}
2 #set ($configurationPageReference = $services.model.resolveDocument("XWiki.EntityNameValidation.Configuration"))
3 #set ($manager = $services.modelvalidation.manager)
4 #set ($config = $services.modelvalidation.configuration)
5 #set ($replaceCharacterConfig = $services.modelvalidation.replaceCharacterEntityNameValidationConfiguration)
6 #set ($configurationPage = $xwiki.getDocument($configurationPageReference))
7 #if ($configurationPage.isNew() || !$configurationPage.getObject('XWiki.EntityNameValidation.ConfigurationClass'))
8 #set($configObject = $configurationPage.newObject('XWiki.EntityNameValidation.ConfigurationClass'))
9 #set($discard = $configurationPage.save())
10 #end
11
12 #macro (createReplacementCharacterModal)
13 <div class="modal" id="createReplacementCharacterModal" tabindex="-1" role="dialog" aria-labelledby="createReplacementCharacterModal-label"
14 data-backdrop="static" data-keyboard="false">
15 <div class="modal-dialog" role="document">
16 <div class="modal-content">
17 <div class="modal-header">
18 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
19 <span aria-hidden="true">&times;</span>
20 </button>
21 <div class="modal-title" id="createReplacementCharacterModal-label">
22 $escapetool.xml($services.localization.render('entitynamevalidation.replacementCharacter.addNewCharacter'))
23 </div>
24 </div>
25 <div class="modal-body">
26 <dl>
27 <dt>
28 <label for="newForbiddenCharacter">$services.localization.render('entitynamevalidation.replacementCharacter.newForbiddenCharacter.label')</label>
29 <span class='xHint'>$services.localization.render('entitynamevalidation.replacementCharacter.newForbiddenCharacter.hint')</span>
30 </dt>
31 <dd>
32 <input type="text" placeholder="$services.localization.render('entitynamevalidation.replacementCharacter.newForbiddenCharacter.placeholder')" id="newForbiddenCharacter" />
33 </dd>
34 </dl>
35 <dl>
36 <dt>
37 <label for="newReplacementCharacter">$services.localization.render('entitynamevalidation.replacementCharacter.newReplacementCharacter.label')</label>
38 <span class='xHint'>$services.localization.render('entitynamevalidation.replacementCharacter.newReplacementCharacter.hint')</span>
39 </dt>
40 <dd>
41 <input type="text" placeholder="$services.localization.render('entitynamevalidation.replacementCharacter.newReplacementCharacter.placeholder')" id="newReplacementCharacter" />
42 </dd>
43 </dl>
44 </div>
45 <div class="modal-footer">
46 <button type="button" class="btn btn-default" data-dismiss="modal">
47 $escapetool.xml($services.localization.render('cancel'))
48 </button>
49 <button type="button" class="btn btn-primary" disabled="disabled">
50 $escapetool.xml($services.localization.render('entitynamevalidation.replacementCharacter.add'))
51 </button>
52 </div>
53 </div>
54 </div>
55 </div>
56 #end
57
58 #macro (removeReplacementCharacterModal)
59 <div class="modal" id="removeReplacementCharacterModal" tabindex="-1" role="dialog" aria-labelledby="removeReplacementCharacterModal-label"
60 data-backdrop="static" data-keyboard="false">
61 <div class="modal-dialog" role="document">
62 <div class="modal-content">
63 <div class="modal-header">
64 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
65 <span aria-hidden="true">&times;</span>
66 </button>
67 <div class="modal-title" id="removeReplacementCharacterModal-label">
68 $escapetool.xml($services.localization.render('entitynamevalidation.replacementCharacter.removeCharacter'))
69 </div>
70 </div>
71 <div class="modal-body">
72 $services.localization.render('entitynamevalidation.replacementCharacter.removeCharacter.warning')
73 </div>
74 <div class="modal-footer">
75 <button type="button" class="btn btn-default" data-dismiss="modal">
76 $escapetool.xml($services.localization.render('cancel'))
77 </button>
78 <button type="button" class="btn btn-danger">
79 $escapetool.xml($services.localization.render('entitynamevalidation.replacementCharacter.removeCharacter.remove'))
80 </button>
81 </div>
82 </div>
83 </div>
84 </div>
85 #end
86
87 #set ($discard = $xwiki.jsx.use('XWiki.EntityNameValidation.Administration'))
88 #set ($selectedStrategy = $config.getEntityNameValidation())
89 {{html clean="false"}}
90 <form method="post" id="entityNameValidationConfigForm" action="${xwiki.getURL('XWiki.EntityNameValidation.Configuration', 'save')}" class='xform'>
91 <div class="hidden">
92 <input type='hidden' name='form_token' value="$!{services.csrf.getToken()}" />
93 <input type='hidden' name='xredirect' value="$xwiki.getRequestURL()" />
94 </div>
95 <dl>
96 <dt>
97 <label for="XWiki.EntityNameValidation.ConfigurationClass_0_currentStrategy">$services.localization.render('entitynamevalidation.currentStrategy.label')</label>
98 <span class='xHint'>$services.localization.render('entitynamevalidation.currentStrategy.hint')</span>
99 </dt>
100 <dd>
101 <select name="XWiki.EntityNameValidation.ConfigurationClass_0_currentStrategy" id="XWiki.EntityNameValidation.ConfigurationClass_0_currentStrategy">
102 #foreach ($nameStrategy in $manager.getAvailableEntityNameValidations())
103 <option value="${nameStrategy}" #if($nameStrategy == $selectedStrategy)selected='selected'#end>
104 $services.localization.render("entitynamevalidation.${nameStrategy}.name")
105 </option>
106 #end
107 </select>
108 </dd>
109 </dl>
110 <dl>
111 <dt>
112 <label for="XWiki.EntityNameValidation.ConfigurationClass_0_useTransformation">$services.localization.render('entitynamevalidation.useTransformation.label')</label>
113 <span class='xHint'>$services.localization.render('entitynamevalidation.useTransformation.hint')</span>
114 <dt>
115 <dd>
116 <select name="XWiki.EntityNameValidation.ConfigurationClass_0_useTransformation" id="XWiki.EntityNameValidation.ConfigurationClass_0_useTransformation">
117 <option value="0" #if(!$config.useTransformation())selected="selected"#end>$services.localization.render('disabled')</option>
118 <option value="1" #if($config.useTransformation())selected="selected"#end>$services.localization.render('enabled')</option>
119 </select>
120 </dd>
121 </dl>
122 <dl>
123 <dt>
124 <label for="XWiki.EntityNameValidation.ConfigurationClass_0_useValidation">$services.localization.render('entitynamevalidation.useValidation.label')</label>
125 <span class='xHint'>$services.localization.render('entitynamevalidation.useValidation.hint')</span>
126 <dt>
127 <dd>
128 <select name="XWiki.EntityNameValidation.ConfigurationClass_0_useValidation" id="XWiki.EntityNameValidation.ConfigurationClass_0_useValidation">
129 <option value="0" #if(!$config.useValidation())selected="selected"#end>$services.localization.render('disabled')</option>
130 <option value="1" #if($config.useValidation())selected="selected"#end>$services.localization.render('enabled')</option>
131 </select>
132 </dd>
133 </dl>
134 <div id="character-replacement-options" class="hidden">
135 <h3>$services.localization.render('entitynamevalidation.replacementCharacter.configuration')</h3>
136 #set($ltOptions = {
137 "rowCount": 10,
138 "resultPage": "XWiki.EntityNameValidation.AdministrationJSON",
139 "outputOnlyHtml": true,
140 "translationPrefix" : "entitynamevalidation.replacementCharacter.livetable.",
141 "pageSize": false,
142 "queryFilters": ""
143 })
144 #set($columns = ["forbiddenCharacter", "replacementCharacter", "_actions"])
145 #set($columnsProperties = {
146 "forbiddenCharacter": { "type": "text" },
147 "replacementCharacter": { "type": "text" },
148 "_actions": { "actions": ["delete"] }
149 })
150 #livetable("replacementCharacters" $columns $columnsProperties $ltOptions)
151 #createReplacementCharacterModal()
152 #removeReplacementCharacterModal()
153 <div class='buttonwrapper'>
154 <input id="addNewCharacter" value="$services.localization.render('entitynamevalidation.replacementCharacter.add')" class='button hidden' type='button' data-toggle="modal" data-target="${escapetool.h}createReplacementCharacterModal">
155 </div>
156 </div>
157 <dl>
158 <dt>
159 <label for="testNameStrategy">$services.localization.render('entitynamevalidation.testStrategy.label')</label>
160 <span class='xHint'>$services.localization.render('entitynamevalidation.testStrategy.hint')</span>
161 <dt>
162 <dd>
163 <input type="text" placeholder="$services.localization.render('entitynamevalidation.testStrategy.placeholder')" id="testNameStrategy" />
164 </dd>
165 </dl>
166 <dl class="hidden test-strategy">
167 <dt>
168 $services.localization.render('entitynamevalidation.testStrategy.validName')
169 </dt>
170 <dd>
171 <span id="testNameStrategyIsValid_true" class="hidden">$services.localization.render('yes')</span>
172 <span id="testNameStrategyIsValid_false" class="hidden">$services.localization.render('no')</span>
173 </dd>
174 </dl>
175 <dl class="hidden test-strategy">
176 <dt>
177 $services.localization.render('entitynamevalidation.testStrategy.transformedName')
178 </dt>
179 <dd>
180 <span id="testNameStrategyTransformedName"></span>
181 </dd>
182 </dl>
183 <div class='buttonwrapper'>
184 <input value="$services.localization.render('admin.save')" class='button' type='submit'>
185 </div>
186 </form>
187 {{/html}}
188 {{/velocity}}