Проверка поля формы Alfresco Javascript не загружается браузером - PullRequest
0 голосов
/ 25 января 2019

Я надеюсь, что кто-то здесь может помочь с этой проблемой, потому что я сделал все, как описано в книге, чтобы создать функцию Javascript для проверки поля формы Alfresco. Вот что я сделал:

Изменен файл share-config-custom.xml следующим образом:

<forms>
  <dependencies>
    <js src="js/date-range-validator.js" />
  </dependencies>

  <form>
    <appearance>
      <field id="myfield:dfc-start-date">
        <constraint-handlers>
          <constraint type="MANDATORY" validation-handler="myspace.forms.validation.checkDateRangeValidity" event="keyup"/>
        </constraint-handlers>
      </field>
    ...
  </form>  
</forms>

Создан файл date-range-validator.js, который я поместил в src/main/assembly/web/js

if (typeof myspace == "undefined" || !myspace) {
  var myspace = {};
}

myspace.forms.validation.checkDateRangeValidity = function checkDateRangeValidity(field, args, event, form, silent, message) {
  var valid = true;
  alert('Checked date ' + field);
  return valid;
}

Однако, когда форма отображается, я получаю исключение, потому что «myspace» не определен, поэтому похоже, что мой код валидатора не загружается. Я пытался разместить файл Javascript в разных местах проекта, но я никогда не вижу свой код проверки Javascript в браузере.

Так что я полагаю, что вопрос в том, где разместить Javascript в структуре проекта.

Ответы [ 3 ]

0 голосов
/ 28 января 2019

Я думаю, что вы можете пропустить включающий <config> элемент, который должен быть родительским для <forms>.

0 голосов
/ 09 февраля 2019

Если кому-то интересно, я получил решение благодаря Джеффу Поттсу, который предложил мне поместить определение формы в модуль расширения. Подробности на форуме Alfresco.

https://community.alfresco.com/thread/240434-form-field-validation-handler-issue

<extension>
  <modules>
    <module>
        <id>Someco Share Form Configuration</id>
        <version>1.0</version>
        <auto-deploy>true</auto-deploy>
        <configurations>

            <config>
                <forms>
                    <dependencies>
                        <js src="/resources/someco-share/js/validator.js"/>
                    </dependencies>
                </forms>
            </config>



            <config evaluator="node-type" condition="sc:doc">
                <forms>
                    <form>
                        <field-visibility>
                            <show id="cm:name" />
                            <show id="cm:title" force="true" />
                            <show id="sc:someProp" />

                        </field-visibility>
                        <appearance>
                            <field id="cm:name">
                                <control>
                                    <control-param name="maxLength">255</control-param>
                                </control>
                            </field>
                            <field id="cm:title">
                                <control template="/org/alfresco/components/form/controls/textfield.ftl" />
                            </field>
                            <field id="sc:someProp" label-id="form.field.label.sc.someProp" description-id="form.field.description.sc.someProp" help-id="form.field.help.sc.someProp">
                                <constraint-handlers>
                                    <constraint type="scDateValidator" message-id="constraint.scDateValidation" validation-handler="SomeCo.forms.validation.scSomePropValidatior" event="onChange"/>
                                </constraint-handlers>
                            </field>
                        </appearance>
                    </form>

                </config>

            </configurations>
        </module>
    </modules>
  </extension>
0 голосов
/ 25 января 2019

Ваш файл javascript должен находиться в папке share / src / main / resources / META-INF / js.

Следуйте по этой ссылке для обработки валидации.

https://docs.alfresco.com/5.0/concepts/dev-extensions-share-form-field-validation-handlers.html

...