Wiki source code of Administration
Last modified by superadmin on 2025/05/22 17:44
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 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">×</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">×</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}} |