Как сделать поле ввода в AEM / CRX обязательным? - PullRequest
0 голосов
/ 27 февраля 2020

, поскольку наш парень из AEM сейчас не в офисе, мне нужно что-то исправить в нашем CRX. У меня есть форма с флажком на моем веб-сайте, где авторы могут установить текст рядом с ней. Теперь я пытаюсь добавить функциональность для установки этого флажка в диалоговом окне авторинга.

Мне удалось найти текстовое поле, которое имеет это свойство в авторинге, но в html в CRX я только см. код required=${required}, где другие поля, такие как метка, показаны как ${properties.label} и имеют соответствующий узел в CRX. Я не понимаю, как реализуется необходимое, и мне нужна помощь здесь.

Я уже пытался добавить required=${required} в свою разметку ввода флажка, но это не сработало, так как в диалоговом окне авторинга все еще не было установите флажок / переключатель, чтобы сделать поле обязательным (что было довольно ожидаемо).

это строка в разметке, которая должна быть обязательной, если автор устанавливает ее как обязательную в диалоговом окне создания:

<input required="${required}" type="checkbox" name="campaignform-termsofservice"/>

это целое html флажка, который я хочу сделать обязательным:

<div data-sly-test="${!empty}" class="form__text">
<label class="maut-checkbox--container">

    <input required="${required}" type="checkbox" name="campaignform-termsofservice"/>
    <span class="maut-checkbox--checkmark"></span>

    <span>${properties.checkboxtext @context='html'}</span>
    <div><a href="${properties.tncLink @ extension='html'}">${properties.tncText}</a></div>
    <div style="color:white;" class="authoring-error" data-sly-test="${wcmmode.edit && !tncDate.tncLinkActivationDate}">${'b2x.maut.campaignform.dialog.tos.activationmessage' @ i18n, source='user'}</div>
    <input type="hidden" name="maut.field.tnc" value="${tncDate.tncLinkActivationDate}" />
</label>
</div>

Теперь мне нужно только выяснить, как я могу показать опцию чтобы установить его в диалоговом окне авторинга.

Заранее спасибо

1 Ответ

2 голосов
/ 02 марта 2020

Если вы хотите знать, как реализован required=${required}, то прежде всего в html компонента ищите что-то вроде data-sly-use.required. Это будет иметь выражение типа =com.project.yourProject.className или некоторый js файл.

Давайте поговорим о случае java, который является наиболее распространенным. data-sly-use делает то, что он создает объект класса, который вы дали в выражении. В вашем случае ваш объект required. Затем вам нужно проверить класс java, к которому относится выражение. Обычно весь код backend logi c будет их, и если некоторые манипуляции или проверки должны быть выполнены с данными, которые автор вводит в диалоге, будут их. Этот класс также будет содержать аннотации, которые сопоставляют переменные класса со значением свойства диалога. Надеюсь, это объясняет, откуда взялся этот ${required}. Для вас будет более понятным, если вы посмотрите на класс java, на который ссылается выражение data-sly-use.

...