|
10 | 10 | </h2> |
11 | 11 |
|
12 | 12 | <dl> |
13 | | - <dt><label for="attributes[{ldelim}@$attributeNo}][attributeHtml]">{lang}wcf.acp.bbcode.attribute.attributeHtml{/lang}</label></dt> |
| 13 | + <dt><label for="attributes[{ldelim}$attributeNo}][attributeHtml]">{lang}wcf.acp.bbcode.attribute.attributeHtml{/lang}</label></dt> |
14 | 14 | <dd> |
15 | | - <input type="text" id="attributes[{ldelim}@$attributeNo}][attributeHtml]" name="attributes[{ldelim}@$attributeNo}][attributeHtml]" value="" class="long"> |
| 15 | + <input type="text" id="attributes[{ldelim}$attributeNo}][attributeHtml]" name="attributes[{ldelim}$attributeNo}][attributeHtml]" value="" class="long"> |
16 | 16 | </dd> |
17 | 17 | </dl> |
18 | 18 |
|
19 | 19 | <dl> |
20 | | - <dt><label for="attributes[{ldelim}@$attributeNo}][validationPattern]">{lang}wcf.acp.bbcode.attribute.validationPattern{/lang}</label></dt> |
| 20 | + <dt><label for="attributes[{ldelim}$attributeNo}][validationPattern]">{lang}wcf.acp.bbcode.attribute.validationPattern{/lang}</label></dt> |
21 | 21 | <dd> |
22 | | - <input type="text" id="attributes[{ldelim}@$attributeNo}][validationPattern]" name="attributes[{ldelim}@$attributeNo}][validationPattern]" value="" class="long"> |
| 22 | + <input type="text" id="attributes[{ldelim}$attributeNo}][validationPattern]" name="attributes[{ldelim}$attributeNo}][validationPattern]" value="" class="long"> |
23 | 23 | </dd> |
24 | 24 | </dl> |
25 | 25 |
|
26 | 26 | <dl> |
27 | 27 | <dt></dt> |
28 | 28 | <dd> |
29 | | - <label for="attributes[{ldelim}@$attributeNo}][required]"><input type="checkbox" id="attributes[{ldelim}@$attributeNo}][required]" name="attributes[{ldelim}@$attributeNo}][required]" value="1"> {lang}wcf.acp.bbcode.attribute.required{/lang}</label> |
| 29 | + <label for="attributes[{ldelim}$attributeNo}][required]"><input type="checkbox" id="attributes[{ldelim}$attributeNo}][required]" name="attributes[{ldelim}$attributeNo}][required]" value="1"> {lang}wcf.acp.bbcode.attribute.required{/lang}</label> |
30 | 30 | </dd> |
31 | 31 | </dl> |
32 | 32 |
|
33 | 33 | <dl> |
34 | 34 | <dt></dt> |
35 | 35 | <dd> |
36 | | - <label for="attributes[{ldelim}@$attributeNo}][useText]"><input type="checkbox" id="attributes[{ldelim}@$attributeNo}][useText]" name="attributes[{ldelim}@$attributeNo}][useText]" value="1"> {lang}wcf.acp.bbcode.attribute.useText{/lang}</label> |
| 36 | + <label for="attributes[{ldelim}$attributeNo}][useText]"><input type="checkbox" id="attributes[{ldelim}$attributeNo}][useText]" name="attributes[{ldelim}$attributeNo}][useText]" value="1"> {lang}wcf.acp.bbcode.attribute.useText{/lang}</label> |
37 | 37 | <small>{lang}wcf.acp.bbcode.attribute.useText.description{/lang}</small> |
38 | 38 | </dd> |
39 | 39 | </dl> |
|
43 | 43 | {/capture} |
44 | 44 |
|
45 | 45 | <script data-relocate="true"> |
46 | | - require(['WoltLabSuite/Core/Template'], (Template) => { |
47 | | - $(function() { |
48 | | - $('.jsDeleteButton').click(function (event) { |
49 | | - $(event.target).parent().parent().remove(); |
| 46 | + require(['WoltLabSuite/Core/Template', 'WoltLabSuite/Core/Dom/Util'], (Template, { hide, show }) => { |
| 47 | + document.querySelectorAll('.jsDeleteButton').forEach((btn) => { |
| 48 | + btn.addEventListener('click', () => { |
| 49 | + btn.closest('.section').remove(); |
50 | 50 | }); |
51 | | - |
52 | | - var attributeNo = {if !$attributes|count}0{else}{assign var='lastAttribute' value=$attributes|end}{$lastAttribute->attributeNo+1}{/if}; |
53 | | - var attributeTemplate = new Template('{@$attributeTemplate|encodeJS}'); |
54 | | - |
55 | | - $('.jsAddButton').click(function (event) { |
56 | | - var $html = $($.parseHTML(attributeTemplate.fetch({ attributeNo: attributeNo++ }))); |
57 | | - $html.find('.jsDeleteButton').click(function (event) { |
58 | | - $(event.target).parent().parent().remove(); |
| 51 | + }); |
| 52 | +
|
| 53 | + let attributeNo = {if !$attributes|count}0{else}{assign var='lastAttribute' value=$attributes|end}{$lastAttribute->attributeNo+1}{/if}; |
| 54 | + const attributeTemplate = new Template('{unsafe:$attributeTemplate|encodeJS}'); |
| 55 | +
|
| 56 | + document.querySelectorAll('.jsAddButton').forEach((btn) => { |
| 57 | + btn.addEventListener('click', () => { |
| 58 | + const html = attributeTemplate.fetch({ attributeNo: attributeNo++ }); |
| 59 | + const tempDiv = document.createElement('div'); |
| 60 | + tempDiv.innerHTML = html; |
| 61 | + const section = tempDiv.firstElementChild; |
| 62 | + section.querySelectorAll('.jsDeleteButton').forEach((delBtn) => { |
| 63 | + delBtn.addEventListener('click', () => { |
| 64 | + delBtn.closest('.section').remove(); |
| 65 | + }); |
59 | 66 | }); |
60 | | - $('#attributeFieldset').append($html); |
| 67 | + document.getElementById('attributeFieldset').appendChild(section); |
61 | 68 | }); |
62 | | - |
63 | | - var $buttonSettings = $('.jsButtonSetting'); |
64 | | - var $showButton = $('#showButton'); |
65 | | - function toggleButtonSettings() { |
66 | | - if ($showButton.is(':checked')) { |
67 | | - $buttonSettings.show(); |
68 | | - } |
69 | | - else { |
70 | | - $buttonSettings.hide(); |
71 | | - } |
| 69 | + }); |
| 70 | +
|
| 71 | + const buttonSettings = document.querySelectorAll('.jsButtonSetting'); |
| 72 | + const showButton = document.getElementById('showButton'); |
| 73 | + function toggleButtonSettings() { |
| 74 | + if (showButton.checked) { |
| 75 | + buttonSettings.forEach(el => show(el)); |
| 76 | + } else { |
| 77 | + buttonSettings.forEach(el => hide(el)); |
72 | 78 | } |
73 | | - |
74 | | - $showButton.change(toggleButtonSettings); |
| 79 | + } |
| 80 | +
|
| 81 | + if (showButton) { |
| 82 | + showButton.addEventListener('change', toggleButtonSettings); |
75 | 83 | toggleButtonSettings(); |
76 | | - }); |
| 84 | + } |
77 | 85 | }); |
78 | 86 | </script> |
79 | 87 |
|
|
180 | 188 | {elseif $errorType == 'multilingual'} |
181 | 189 | {lang}wcf.global.form.error.multilingual{/lang} |
182 | 190 | {else} |
183 | | - {lang}wcf.acp.bbcode.buttonLabel.error.{@$errorType}{/lang} |
| 191 | + {lang}wcf.acp.bbcode.buttonLabel.error.{$errorType}{/lang} |
184 | 192 | {/if} |
185 | 193 | </small> |
186 | 194 | {/if} |
|
201 | 209 | {if $errorType == 'empty'} |
202 | 210 | {lang}wcf.global.form.error.empty{/lang} |
203 | 211 | {else} |
204 | | - {lang}wcf.acp.bbcode.wysiwygIcon.error.{@$errorType}{/lang} |
| 212 | + {lang}wcf.acp.bbcode.wysiwygIcon.error.{$errorType}{/lang} |
205 | 213 | {/if} |
206 | 214 | </small> |
207 | 215 | {/if} |
|
231 | 239 | </h2> |
232 | 240 |
|
233 | 241 | <dl{if $errorField == 'attributeHtml'|concat:$attribute->attributeNo} class="formError"{/if}> |
234 | | - <dt><label for="attributes[{@$attribute->attributeNo}][attributeHtml]">{lang}wcf.acp.bbcode.attribute.attributeHtml{/lang}</label></dt> |
| 242 | + <dt><label for="attributes[{$attribute->attributeNo}][attributeHtml]">{lang}wcf.acp.bbcode.attribute.attributeHtml{/lang}</label></dt> |
235 | 243 | <dd> |
236 | | - <input type="text" id="attributes[{@$attribute->attributeNo}][attributeHtml]" name="attributes[{@$attribute->attributeNo}][attributeHtml]" value="{$attribute->attributeHtml}" class="long"> |
| 244 | + <input type="text" id="attributes[{$attribute->attributeNo}][attributeHtml]" name="attributes[{$attribute->attributeNo}][attributeHtml]" value="{$attribute->attributeHtml}" class="long"> |
237 | 245 | </dd> |
238 | 246 | </dl> |
239 | 247 |
|
240 | 248 | <dl{if $errorField == 'attributeValidationPattern'|concat:$attribute->attributeNo} class="formError"{/if}> |
241 | | - <dt><label for="attributes[{@$attribute->attributeNo}][validationPattern]">{lang}wcf.acp.bbcode.attribute.validationPattern{/lang}</label></dt> |
| 249 | + <dt><label for="attributes[{$attribute->attributeNo}][validationPattern]">{lang}wcf.acp.bbcode.attribute.validationPattern{/lang}</label></dt> |
242 | 250 | <dd> |
243 | | - <input type="text" id="attributes[{@$attribute->attributeNo}][validationPattern]" name="attributes[{@$attribute->attributeNo}][validationPattern]" value="{$attribute->validationPattern}" class="long"> |
| 251 | + <input type="text" id="attributes[{$attribute->attributeNo}][validationPattern]" name="attributes[{$attribute->attributeNo}][validationPattern]" value="{$attribute->validationPattern}" class="long"> |
244 | 252 | {if $errorField == 'attributeValidationPattern'|concat:$attribute->attributeNo} |
245 | 253 | <small class="innerError"> |
246 | 254 | {if $errorType == 'invalid'} |
|
253 | 261 |
|
254 | 262 | <dl{if $errorField == 'attributeRequired'|concat:$attribute->attributeNo} class="formError"{/if}> |
255 | 263 | <dd> |
256 | | - <label for="attributes[{@$attribute->attributeNo}][required]"><input type="checkbox" id="attributes[{@$attribute->attributeNo}][required]" name="attributes[{@$attribute->attributeNo}][required]" value="1"{if $attribute->required} checked{/if}> {lang}wcf.acp.bbcode.attribute.required{/lang}</label> |
| 264 | + <label for="attributes[{$attribute->attributeNo}][required]"><input type="checkbox" id="attributes[{$attribute->attributeNo}][required]" name="attributes[{$attribute->attributeNo}][required]" value="1"{if $attribute->required} checked{/if}> {lang}wcf.acp.bbcode.attribute.required{/lang}</label> |
257 | 265 | </dd> |
258 | 266 | </dl> |
259 | 267 |
|
260 | 268 | <dl{if $errorField == 'attributeUseText'|concat:$attribute->attributeNo} class="formError"{/if}> |
261 | 269 | <dd> |
262 | | - <label for="attributes[{@$attribute->attributeNo}][useText]"><input type="checkbox" id="attributes[{@$attribute->attributeNo}][useText]" name="attributes[{@$attribute->attributeNo}][useText]" value="1"{if $attribute->useText} checked{/if}> {lang}wcf.acp.bbcode.attribute.useText{/lang}</label> |
| 270 | + <label for="attributes[{$attribute->attributeNo}][useText]"><input type="checkbox" id="attributes[{$attribute->attributeNo}][useText]" name="attributes[{$attribute->attributeNo}][useText]" value="1"{if $attribute->useText} checked{/if}> {lang}wcf.acp.bbcode.attribute.useText{/lang}</label> |
263 | 271 | <small>{lang}wcf.acp.bbcode.attribute.useText.description{/lang}</small> |
264 | 272 | </dd> |
265 | 273 | </dl> |
|
0 commit comments