RE: Can I create custom form field types in Liferay 7.1?

Amos Fong, modified 7 Years ago. New Member Posts: 4 Join Date: 9/6/16 Recent Posts

In liferay 7.0, there is documentation to create "Custom form field types" here: https://dev.liferay.com/de/develop/tutorials/-/knowledge_base/7-0/creating-form-field-types

 

When I check documentation for Liferay 7.1, I cannot find this section.

 

If I use the example jar provided in the 7.0 documentation (the time field) and deploy it on 7.1, I see the time custom field available in the form editor, however, when I add it to the form, I get the exception below in the Chrome Browser console. This breaks the page and I am not able to publish/save the form.

 

Uncaught ReferenceError: soy is not defined
    at new ddm.time (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/frontend-js-web/aui/aui-datatype-date-parse/aui-datatype-date-parse-min.js&/public/o/frontend-js-web/aui/aui-datatype/aui-datatype-min.js&/public/o/dynamic-data-mapping-time/time.soy.js&/public/o/frontend-js-web/aui/event-valuechange/event-valuechange-min.js&/public/o/frontend-js-web/aui/aui-autosize-deprecated/aui-autosize-deprecated-min.js&/public/o/frontend-js-web/aui/aui-widget-trigger/aui-widget-trigger-min.js&/public/o/frontend-js-web/aui/aui-widget-position-align-suggestion/aui-widget-position-align-suggestion-min.js&/public/o/frontend-js-web/aui/widget-autohide/widget-autohide-min.js&/public/o/frontend-js-web/aui/aui-tooltip-base/aui-tooltip-base-min.js&/public/o/frontend-js-web/aui/aui-tooltip-delegate/aui-tooltip-delegate-min.js&/public/o/frontend-js-web/aui/autocomplete-base/autocomplete-base-min.js&/public/o/frontend-js-web/aui/autocomplete-sources/autocomplete-sources-min.js:4)
    at component.getTemplate (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-type-document-library/document_library_field.js&/public/o/dynamic-data-mapping-type-date/date_field.js&/public/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/public/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/public/o/dynamic-data-mapping-type-captcha/captcha_field.js&/public/o/dynamic-data-mapping-time/time_field.js&/public/o/dynamic-data-mapping-form-renderer/js/field.js&/public/o/lukb-liferay-plugins/form-fields/accountnumber/account_number_field.js:35)
    at component.render (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-type-document-library/document_library_field.js&/public/o/dynamic-data-mapping-type-date/date_field.js&/public/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/public/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/public/o/dynamic-data-mapping-type-captcha/captcha_field.js&/public/o/dynamic-data-mapping-time/time_field.js&/public/o/dynamic-data-mapping-form-renderer/js/field.js&/public/o/lukb-liferay-plugins/form-fields/accountnumber/account_number_field.js:37)
    at component.render (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-type-document-library/document_library_field.js&/public/o/dynamic-data-mapping-type-date/date_field.js&/public/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/public/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/public/o/dynamic-data-mapping-type-captcha/captcha_field.js&/public/o/dynamic-data-mapping-time/time_field.js&/public/o/dynamic-data-mapping-form-renderer/js/field.js&/public/o/lukb-liferay-plugins/form-fields/accountnumber/account_number_field.js:28)
    at DO.Method.exec (combo?browserId=other&minifierType=js&languageId=en_US&b=7110&t=1532691154824&/public/o/frontend-js-web/aui/dom-style/dom-style.js&/public/o/frontend-js-web/aui/event-base/event-base.js&/public/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/public/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/public/o/frontend-js-web/aui/event-delegate/event-delegate.js&/public/o/frontend-js-web/aui/event-focus/event-focus.js&/public/o/frontend-js-web/aui/event-hover/event-hover.js&/public/o/frontend-js-web/aui/event-key/event-key.js&/public/o/frontend-js-web/aui/event-mouseenter/event-mouseenter.js&/public/o/frontend-js-web/aui/event-mousewheel/event-mousewheel.js&/public/o/frontend-js-web/aui/event-outside/event-outside.js&/public/o/frontend-js-web/aui/event-resize/event-resize.js&/public/o/frontend-js-web/aui/event-simulate/event-simulate.js&/public/o/frontend-js-web/aui/event-synthetic/event-synthetic.js&/public/o/frontend-js-web/aui/intl/intl.js&/public/o/frontend-js-web/aui/io-base/io-base.js&/public/o/frontend-js-web/aui/io-form/io-form.js&/public/o/frontend-js-web/aui/io-queue/io-queue.js&/public/o/frontend-js-web/aui/io-upload-iframe/io-upload-iframe.js&/public/o/frontend-js-web/aui/io-xdr/io-xdr.js&/public/o/frontend-js-web/aui/json-parse/json-parse.js&/public/o/frontend-js-web/aui/json-stringify/json-stringify.js&/public/o/frontend-js-web/aui/node-base/node-base.js&/public/o/frontend-js-web/aui/node-core/node-core.js&/public/o/frontend-js-web/aui/node-event-delegate/node-event-delegate.js&/public/o/frontend-js-web/aui/node-event-simulate/node-event-simulate.js&/public/o/frontend-js-web/aui/node-focusmanager/node-focusmanager.js&/public/o/frontend-js-web/aui/node-pluginhost/node-pluginhost.js&/public/o/frontend-js-web/aui/node-screen/node-screen.js&/public/o/frontend-js-web/aui/node-style/node-style.js&/public/o/frontend-js-web/aui/oop/oop.js&/public/o/frontend-js-web/aui/plugin/plugin.js&/public/o/frontend-js-web/aui/pluginhost-base/pluginhost-base.js:31)
    at component.obj.(:16002/public/en/group/guest/~/control_panel/anonymous function) [as render] (http://localhost:16002/public/combo?browserId=other&minifierType=js&languageId=en_US&b=7110&t=1532691154824&/public/o/frontend-js-web/aui/dom-style/dom-style.js&/public/o/frontend-js-web/aui/event-base/event-base.js&/public/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/public/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/public/o/frontend-js-web/aui/event-delegate/event-delegate.js&/public/o/frontend-js-web/aui/event-focus/event-focus.js&/public/o/frontend-js-web/aui/event-hover/event-hover.js&/public/o/frontend-js-web/aui/event-key/event-key.js&/public/o/frontend-js-web/aui/event-mouseenter/event-mouseenter.js&/public/o/frontend-js-web/aui/event-mousewheel/event-mousewheel.js&/public/o/frontend-js-web/aui/event-outside/event-outside.js&/public/o/frontend-js-web/aui/event-resize/event-resize.js&/public/o/frontend-js-web/aui/event-simulate/event-simulate.js&/public/o/frontend-js-web/aui/event-synthetic/event-synthetic.js&/public/o/frontend-js-web/aui/intl/intl.js&/public/o/frontend-js-web/aui/io-base/io-base.js&/public/o/frontend-js-web/aui/io-form/io-form.js&/public/o/frontend-js-web/aui/io-queue/io-queue.js&/public/o/frontend-js-web/aui/io-upload-iframe/io-upload-iframe.js&/public/o/frontend-js-web/aui/io-xdr/io-xdr.js&/public/o/frontend-js-web/aui/json-parse/json-parse.js&/public/o/frontend-js-web/aui/json-stringify/json-stringify.js&/public/o/frontend-js-web/aui/node-base/node-base.js&/public/o/frontend-js-web/aui/node-core/node-core.js&/public/o/frontend-js-web/aui/node-event-delegate/node-event-delegate.js&/public/o/frontend-js-web/aui/node-event-simulate/node-event-simulate.js&/public/o/frontend-js-web/aui/node-focusmanager/node-focusmanager.js&/public/o/frontend-js-web/aui/node-pluginhost/node-pluginhost.js&/public/o/frontend-js-web/aui/node-screen/node-screen.js&/public/o/frontend-js-web/aui/node-style/node-style.js&/public/o/frontend-js-web/aui/oop/oop.js&/public/o/frontend-js-web/aui/plugin/plugin.js&/public/o/frontend-js-web/aui/pluginhost-base/pluginhost-base.js:30:101)
    at component._renderField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_types_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_layout_builder_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_deserializer.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_visitor.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pagination.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_wizard.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/public/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/public/o/frontend-js-web/liferay/navigation.js:146)
    at component._insertField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_types_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_layout_builder_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_deserializer.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_visitor.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pagination.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_wizard.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/public/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/public/o/frontend-js-web/liferay/navigation.js:139)
    at component.createNewField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_types_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_layout_builder_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_deserializer.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_visitor.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pagination.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_wizard.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/public/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/public/o/frontend-js-web/liferay/navigation.js:112)
    at component.updateDragAndDropBySidebar (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_confirmation_dialog.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_dd_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_list.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_options_toolbar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_settings_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_settings_form.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_settings_retriever.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_support.js&/public/o/frontend-js-web/aui/aui-toggler-base/aui-toggler-base-min.js&/public/o/frontend-js-web/aui/aui-toggler-delegate/aui-toggler-delegate-min.js:17)
thumbnail
Abhishek Jain, modified 7 Years ago. Regular Member Posts: 226 Join Date: 8/20/16 Recent Posts

I am too facing the same problem. Did you find any solution?

thumbnail
Abhishek Jain, modified 7 Years ago. Regular Member Posts: 226 Join Date: 8/20/16 Recent Posts

Now I am getting a different js error that "exports is not defined". Please help... any help would be appreciated.

thumbnail
Abhishek Jain, modified 7 Years ago. Regular Member Posts: 226 Join Date: 8/20/16 Recent Posts

Please provide the link of tutorial for creating custom form field type in liferay 7.1.. thanks in advance

thumbnail
Amos Fong, modified 6 Years ago. New Member Posts: 5 Join Date: 6/16/16 Recent Posts
I don't know if the documentation for 7.1 is out yet but if you're using blade, the latest version let's you create templates using the command:
​​​​​​​
blade create -t form-field -v 7.1 [customFormFieldNameInCamelCase]
thumbnail
Akash Mohan Patil, modified 6 Years ago. Junior Member Posts: 75 Join Date: 12/13/10 Recent Posts
Gustavo Segovia:

In liferay 7.0, there is documentation to create "Custom form field types" here: https://dev.liferay.com/de/develop/tutorials/-/knowledge_base/7-0/creating-form-field-types

 

When I check documentation for Liferay 7.1, I cannot find this section.

 

If I use the example jar provided in the 7.0 documentation (the time field) and deploy it on 7.1, I see the time custom field available in the form editor, however, when I add it to the form, I get the exception below in the Chrome Browser console. This breaks the page and I am not able to publish/save the form.

 

Uncaught ReferenceError: soy is not defined
    at new ddm.time (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/frontend-js-web/aui/aui-datatype-date-parse/aui-datatype-date-parse-min.js&/public/o/frontend-js-web/aui/aui-datatype/aui-datatype-min.js&/public/o/dynamic-data-mapping-time/time.soy.js&/public/o/frontend-js-web/aui/event-valuechange/event-valuechange-min.js&/public/o/frontend-js-web/aui/aui-autosize-deprecated/aui-autosize-deprecated-min.js&/public/o/frontend-js-web/aui/aui-widget-trigger/aui-widget-trigger-min.js&/public/o/frontend-js-web/aui/aui-widget-position-align-suggestion/aui-widget-position-align-suggestion-min.js&/public/o/frontend-js-web/aui/widget-autohide/widget-autohide-min.js&/public/o/frontend-js-web/aui/aui-tooltip-base/aui-tooltip-base-min.js&/public/o/frontend-js-web/aui/aui-tooltip-delegate/aui-tooltip-delegate-min.js&/public/o/frontend-js-web/aui/autocomplete-base/autocomplete-base-min.js&/public/o/frontend-js-web/aui/autocomplete-sources/autocomplete-sources-min.js:4)
    at component.getTemplate (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-type-document-library/document_library_field.js&/public/o/dynamic-data-mapping-type-date/date_field.js&/public/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/public/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/public/o/dynamic-data-mapping-type-captcha/captcha_field.js&/public/o/dynamic-data-mapping-time/time_field.js&/public/o/dynamic-data-mapping-form-renderer/js/field.js&/public/o/lukb-liferay-plugins/form-fields/accountnumber/account_number_field.js:35)
    at component.render (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-type-document-library/document_library_field.js&/public/o/dynamic-data-mapping-type-date/date_field.js&/public/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/public/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/public/o/dynamic-data-mapping-type-captcha/captcha_field.js&/public/o/dynamic-data-mapping-time/time_field.js&/public/o/dynamic-data-mapping-form-renderer/js/field.js&/public/o/lukb-liferay-plugins/form-fields/accountnumber/account_number_field.js:37)
    at component.render (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-type-document-library/document_library_field.js&/public/o/dynamic-data-mapping-type-date/date_field.js&/public/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/public/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/public/o/dynamic-data-mapping-type-captcha/captcha_field.js&/public/o/dynamic-data-mapping-time/time_field.js&/public/o/dynamic-data-mapping-form-renderer/js/field.js&/public/o/lukb-liferay-plugins/form-fields/accountnumber/account_number_field.js:28)
    at DO.Method.exec (combo?browserId=other&minifierType=js&languageId=en_US&b=7110&t=1532691154824&/public/o/frontend-js-web/aui/dom-style/dom-style.js&/public/o/frontend-js-web/aui/event-base/event-base.js&/public/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/public/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/public/o/frontend-js-web/aui/event-delegate/event-delegate.js&/public/o/frontend-js-web/aui/event-focus/event-focus.js&/public/o/frontend-js-web/aui/event-hover/event-hover.js&/public/o/frontend-js-web/aui/event-key/event-key.js&/public/o/frontend-js-web/aui/event-mouseenter/event-mouseenter.js&/public/o/frontend-js-web/aui/event-mousewheel/event-mousewheel.js&/public/o/frontend-js-web/aui/event-outside/event-outside.js&/public/o/frontend-js-web/aui/event-resize/event-resize.js&/public/o/frontend-js-web/aui/event-simulate/event-simulate.js&/public/o/frontend-js-web/aui/event-synthetic/event-synthetic.js&/public/o/frontend-js-web/aui/intl/intl.js&/public/o/frontend-js-web/aui/io-base/io-base.js&/public/o/frontend-js-web/aui/io-form/io-form.js&/public/o/frontend-js-web/aui/io-queue/io-queue.js&/public/o/frontend-js-web/aui/io-upload-iframe/io-upload-iframe.js&/public/o/frontend-js-web/aui/io-xdr/io-xdr.js&/public/o/frontend-js-web/aui/json-parse/json-parse.js&/public/o/frontend-js-web/aui/json-stringify/json-stringify.js&/public/o/frontend-js-web/aui/node-base/node-base.js&/public/o/frontend-js-web/aui/node-core/node-core.js&/public/o/frontend-js-web/aui/node-event-delegate/node-event-delegate.js&/public/o/frontend-js-web/aui/node-event-simulate/node-event-simulate.js&/public/o/frontend-js-web/aui/node-focusmanager/node-focusmanager.js&/public/o/frontend-js-web/aui/node-pluginhost/node-pluginhost.js&/public/o/frontend-js-web/aui/node-screen/node-screen.js&/public/o/frontend-js-web/aui/node-style/node-style.js&/public/o/frontend-js-web/aui/oop/oop.js&/public/o/frontend-js-web/aui/plugin/plugin.js&/public/o/frontend-js-web/aui/pluginhost-base/pluginhost-base.js:31)
    at component.obj.(:16002/public/en/group/guest/~/control_panel/anonymous function) [as render] (http://localhost:16002/public/combo?browserId=other&minifierType=js&languageId=en_US&b=7110&t=1532691154824&/public/o/frontend-js-web/aui/dom-style/dom-style.js&/public/o/frontend-js-web/aui/event-base/event-base.js&/public/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/public/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/public/o/frontend-js-web/aui/event-delegate/event-delegate.js&/public/o/frontend-js-web/aui/event-focus/event-focus.js&/public/o/frontend-js-web/aui/event-hover/event-hover.js&/public/o/frontend-js-web/aui/event-key/event-key.js&/public/o/frontend-js-web/aui/event-mouseenter/event-mouseenter.js&/public/o/frontend-js-web/aui/event-mousewheel/event-mousewheel.js&/public/o/frontend-js-web/aui/event-outside/event-outside.js&/public/o/frontend-js-web/aui/event-resize/event-resize.js&/public/o/frontend-js-web/aui/event-simulate/event-simulate.js&/public/o/frontend-js-web/aui/event-synthetic/event-synthetic.js&/public/o/frontend-js-web/aui/intl/intl.js&/public/o/frontend-js-web/aui/io-base/io-base.js&/public/o/frontend-js-web/aui/io-form/io-form.js&/public/o/frontend-js-web/aui/io-queue/io-queue.js&/public/o/frontend-js-web/aui/io-upload-iframe/io-upload-iframe.js&/public/o/frontend-js-web/aui/io-xdr/io-xdr.js&/public/o/frontend-js-web/aui/json-parse/json-parse.js&/public/o/frontend-js-web/aui/json-stringify/json-stringify.js&/public/o/frontend-js-web/aui/node-base/node-base.js&/public/o/frontend-js-web/aui/node-core/node-core.js&/public/o/frontend-js-web/aui/node-event-delegate/node-event-delegate.js&/public/o/frontend-js-web/aui/node-event-simulate/node-event-simulate.js&/public/o/frontend-js-web/aui/node-focusmanager/node-focusmanager.js&/public/o/frontend-js-web/aui/node-pluginhost/node-pluginhost.js&/public/o/frontend-js-web/aui/node-screen/node-screen.js&/public/o/frontend-js-web/aui/node-style/node-style.js&/public/o/frontend-js-web/aui/oop/oop.js&/public/o/frontend-js-web/aui/plugin/plugin.js&/public/o/frontend-js-web/aui/pluginhost-base/pluginhost-base.js:30:101)
    at component._renderField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_types_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_layout_builder_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_deserializer.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_visitor.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pagination.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_wizard.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/public/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/public/o/frontend-js-web/liferay/navigation.js:146)
    at component._insertField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_types_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_layout_builder_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_deserializer.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_visitor.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pagination.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_wizard.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/public/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/public/o/frontend-js-web/liferay/navigation.js:139)
    at component.createNewField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_types_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_layout_builder_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_deserializer.js&/public/o/dynamic-data-mapping-form-builder/js/form_layout_visitor.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pagination.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_wizard.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/public/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/public/o/frontend-js-web/liferay/navigation.js:112)
    at component.updateDragAndDropBySidebar (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1532691154824&/public/o/dynamic-data-mapping-form-builder/js/form_builder_confirmation_dialog.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_dd_support.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_list.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_options_toolbar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_settings_sidebar.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_settings_form.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_settings_retriever.js&/public/o/dynamic-data-mapping-form-builder/js/form_builder_field_support.js&/public/o/frontend-js-web/aui/aui-toggler-base/aui-toggler-base-min.js&/public/o/frontend-js-web/aui/aui-toggler-delegate/aui-toggler-delegate-min.js:17)
 

Did you find any solution to this.,? 

I am also facing same problem. I creted form-field using Liferay Developer Studio. All files are generated by default.

Just i build it and deployed. But still facing this,

Uncaught ReferenceError: soy is not defined
    at new ddm.CustomTextField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/dynamic-data-mapping-form-renderer/js/expressions_evaluator.js&/o/dynamic-data-mapping-form-renderer/js/form_validation_support.js&/o/frontend-js-web/aui/datatype-date-parse/datatype-date-parse-min.js&/o/frontend-js-web/aui/datatype-date-format/lang/datatype-date-format_en-US.js&/o/frontend-js-web/aui/datatype-date-format/datatype-date-format-min.js&/o/frontend-js-web/aui/datatype-date-math/datatype-date-math-min.js&/o/frontend-js-web/aui/escape/escape-min.js&/o/frontend-js-web/aui/datatype-number-parse/datatype-number-parse-min.js&/o/frontend-js-web/aui/datatype-number-format/datatype-number-format-min.js&/o/frontend-js-web/aui/aui-datatype-date-parse/aui-datatype-date-parse-min.js&/o/frontend-js-web/aui/aui-datatype/aui-datatype-min.js&/o/dynamic-data-cutomtextfiled-form-field/cutomtextfiled.soy.js&/o/frontend-js-web/aui/event-valuechange/event-valuechange-min.js:356)
    at component.getTemplate (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/dynamic-data-mapping-type-select/select_field.js&/o/dynamic-data-mapping-type-radio/radio_field.js&/o/dynamic-data-mapping-type-password/password_field.js&/o/dynamic-data-mapping-type-paragraph/paragraph_field.js&/o/dynamic-data-mapping-type-key-value/key_value_field.js&/o/dynamic-data-mapping-type-options/options_field.js&/o/dynamic-data-mapping-type-numeric/numeric_field.js&/o/dynamic-data-mapping-type-grid/grid_field.js&/o/dynamic-data-mapping-type-fieldset/fieldset_field.js&/o/dynamic-data-mapping-type-document-library/document_library_field.js&/o/dynamic-data-mapping-type-date/date_field.js&/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/o/dynamic-data-mapping-type-captcha/captcha_field.js&/o/dynamic-data-cutomtextfiled-form-field/cutomtextfiled_field.js&/o/dynamic-data-mapping-form-renderer/js/field.js:3633)
    at component.render (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/dynamic-data-mapping-type-select/select_field.js&/o/dynamic-data-mapping-type-radio/radio_field.js&/o/dynamic-data-mapping-type-password/password_field.js&/o/dynamic-data-mapping-type-paragraph/paragraph_field.js&/o/dynamic-data-mapping-type-key-value/key_value_field.js&/o/dynamic-data-mapping-type-options/options_field.js&/o/dynamic-data-mapping-type-numeric/numeric_field.js&/o/dynamic-data-mapping-type-grid/grid_field.js&/o/dynamic-data-mapping-type-fieldset/fieldset_field.js&/o/dynamic-data-mapping-type-document-library/document_library_field.js&/o/dynamic-data-mapping-type-date/date_field.js&/o/dynamic-data-mapping-type-checkbox-multiple/checkbox_multiple_field.js&/o/dynamic-data-mapping-type-checkbox/checkbox_field.js&/o/dynamic-data-mapping-type-captcha/captcha_field.js&/o/dynamic-data-cutomtextfiled-form-field/cutomtextfiled_field.js&/o/dynamic-data-mapping-form-renderer/js/field.js:3703)
    at DO.Method.exec (combo?browserId=other&minifierType=js&languageId=en_US&b=7110&t=1540460299463&/o/frontend-js-web/jquery/jquery.js&/o/frontend-js-web/clay/popper.js&/o/frontend-js-web/clay/bootstrap.js&/o/frontend-js-web/loader/config.js&/o/frontend-js-web/loader/loader.js&/o/frontend-js-web/lodash/lodash.js&/o/frontend-js-web/aui/aui/aui.js&/o/frontend-js-web/aui/aui-base-html5-shiv/aui-base-html5-shiv.js&/o/frontend-js-web/liferay/browser_selectors.js&/o/frontend-js-web/liferay/modules.js&/o/frontend-js-web/liferay/aui_sandbox.js&/o/frontend-js-web/clay/collapsible-search.js&/o/frontend-js-web/clay/side-navigation.js&/o/frontend-js-web/jquery/fm.js&/o/frontend-js-web/jquery/form.js&/o/frontend-js-web/lodash/util.js&/o/frontend-js-web/misc/svg4everybody.js&/o/frontend-js-web/aui/arraylist-add/arraylist-add.js&/o/frontend-js-web/aui/arraylist-filter/arraylist-filter.js&/o/frontend-js-web/aui/arraylist/arraylist.js&/o/frontend-js-web/aui/array-extras/array-extras.js&/o/frontend-js-web/aui/array-invoke/array-invoke.js&/o/frontend-js-web/aui/attribute-base/attribute-base.js&/o/frontend-js-web/aui/attribute-complex/attribute-complex.js&/o/frontend-js-web/aui/attribute-core/attribute-core.js&/o/frontend-js-web/aui/attribute-observable/attribute-observable.js&/o/frontend-js-web/aui/attribute-extras/attribute-extras.js&/o/frontend-js-web/aui/base-base/base-base.js&/o/frontend-js-web/aui/base-pluginhost/base-pluginhost.js&/o/frontend-js-web/aui/classnamemanager/classnamemanager.js&/o/frontend-js-web/aui/datatype-xml-format/datatype-xml-format.js&/o/frontend-js-web/aui/datatype-xml-parse/datatype-xml-parse.js&/o/frontend-js-web/aui/dom-base/dom-base.js&/o/frontend-js-web/aui/dom-core/dom-core.js&/o/frontend-js-web/aui/dom-screen/dom-screen.js&/o/frontend-js-web/aui/dom-style/dom-style.js&/o/frontend-js-web/aui/event-base/event-base.js&/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/o/frontend-js-web/aui/event-delegate/event-delegate.js:62376)
    at component.obj.(:8080/group/guest/~/control_panel/anonymous function) [as render] (http://localhost:8080/combo?browserId=other&minifierType=js&languageId=en_US&b=7110&t=1540460299463&/o/frontend-js-web/jquery/jquery.js&/o/frontend-js-web/clay/popper.js&/o/frontend-js-web/clay/bootstrap.js&/o/frontend-js-web/loader/config.js&/o/frontend-js-web/loader/loader.js&/o/frontend-js-web/lodash/lodash.js&/o/frontend-js-web/aui/aui/aui.js&/o/frontend-js-web/aui/aui-base-html5-shiv/aui-base-html5-shiv.js&/o/frontend-js-web/liferay/browser_selectors.js&/o/frontend-js-web/liferay/modules.js&/o/frontend-js-web/liferay/aui_sandbox.js&/o/frontend-js-web/clay/collapsible-search.js&/o/frontend-js-web/clay/side-navigation.js&/o/frontend-js-web/jquery/fm.js&/o/frontend-js-web/jquery/form.js&/o/frontend-js-web/lodash/util.js&/o/frontend-js-web/misc/svg4everybody.js&/o/frontend-js-web/aui/arraylist-add/arraylist-add.js&/o/frontend-js-web/aui/arraylist-filter/arraylist-filter.js&/o/frontend-js-web/aui/arraylist/arraylist.js&/o/frontend-js-web/aui/array-extras/array-extras.js&/o/frontend-js-web/aui/array-invoke/array-invoke.js&/o/frontend-js-web/aui/attribute-base/attribute-base.js&/o/frontend-js-web/aui/attribute-complex/attribute-complex.js&/o/frontend-js-web/aui/attribute-core/attribute-core.js&/o/frontend-js-web/aui/attribute-observable/attribute-observable.js&/o/frontend-js-web/aui/attribute-extras/attribute-extras.js&/o/frontend-js-web/aui/base-base/base-base.js&/o/frontend-js-web/aui/base-pluginhost/base-pluginhost.js&/o/frontend-js-web/aui/classnamemanager/classnamemanager.js&/o/frontend-js-web/aui/datatype-xml-format/datatype-xml-format.js&/o/frontend-js-web/aui/datatype-xml-parse/datatype-xml-parse.js&/o/frontend-js-web/aui/dom-base/dom-base.js&/o/frontend-js-web/aui/dom-core/dom-core.js&/o/frontend-js-web/aui/dom-screen/dom-screen.js&/o/frontend-js-web/aui/dom-style/dom-style.js&/o/frontend-js-web/aui/event-base/event-base.js&/o/frontend-js-web/aui/event-custom-base/event-custom-base.js&/o/frontend-js-web/aui/event-custom-complex/event-custom-complex.js&/o/frontend-js-web/aui/event-delegate/event-delegate.js:62238:36)
    at component._renderField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/o/frontend-js-web/liferay/navigation.js:2636)
    at component._insertField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/o/frontend-js-web/liferay/navigation.js:2466)
    at component.createNewField (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/dynamic-data-mapping-form-builder/js/form_builder_pages_manager.js&/o/dynamic-data-mapping-form-builder/js/form_builder_util.js&/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder.js&/o/product-navigation-taglib/control_menu/js/product_navigation_control_menu.js&/o/frontend-js-web/liferay/navigation.js:1752)
    at component.updateDragAndDropBySidebar (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/frontend-js-web/aui/aui-layout-builder/aui-layout-builder-min.js&/o/frontend-js-web/aui/aui-form-builder-layout-builder/aui-form-builder-layout-builder-min.js&/o/frontend-js-web/aui/aui-form-builder-field-list/aui-form-builder-field-list-min.js&/o/frontend-js-web/aui/aui-form-builder-field-toolbar/aui-form-builder-field-toolbar-min.js&/o/frontend-js-web/aui/aui-form-builder-page-manager/aui-form-builder-page-manager-min.js&/o/frontend-js-web/aui/aui-form-builder-settings-modal/aui-form-builder-settings-modal-min.js&/o/frontend-js-web/aui/aui-form-builder/aui-form-builder-min.js&/o/dynamic-data-mapping-form-builder/js/form_builder_confirmation_dialog.js&/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_dd_support.js&/o/dynamic-data-mapping-form-builder/js/form_builder_field_list.js&/o/dynamic-data-mapping-form-builder/js/form_builder_field_options_toolbar.js:407)
    at component. (?browserId=other&minifierType=&languageId=en_US&b=7110&t=1540460299463&/o/frontend-js-web/aui/aui-layout-builder/aui-layout-builder-min.js&/o/frontend-js-web/aui/aui-form-builder-layout-builder/aui-form-builder-layout-builder-min.js&/o/frontend-js-web/aui/aui-form-builder-field-list/aui-form-builder-field-list-min.js&/o/frontend-js-web/aui/aui-form-builder-field-toolbar/aui-form-builder-field-toolbar-min.js&/o/frontend-js-web/aui/aui-form-builder-page-manager/aui-form-builder-page-manager-min.js&/o/frontend-js-web/aui/aui-form-builder-settings-modal/aui-form-builder-settings-modal-min.js&/o/frontend-js-web/aui/aui-form-builder/aui-form-builder-min.js&/o/dynamic-data-mapping-form-builder/js/form_builder_confirmation_dialog.js&/o/dynamic-data-mapping-form-builder/js/form_builder/form_builder_dd_support.js&/o/dynamic-data-mapping-form-builder/js/form_builder_field_list.js&/o/dynamic-data-mapping-form-builder/js/form_builder_field_options_toolbar.js:182)
thumbnail
Charalampos Chrysikopoulos, modified 6 Years ago. Junior Member Posts: 79 Join Date: 12/9/11 Recent Posts
I have a similar problem here with 7.1 DXP and liferay-fix-pack-dxp-12-7110. I generated a custom form field type from the blade template and deployed in the server. I didn't changed anything in the generated modules code.After the deployment the admin area of liferay forms wont load and in the browser console appear following errors:Uncaught SyntaxError: Missing catch or finally after try
Uncaught TypeError: Cannot read property 'init' of undefined
Uncaught (in promise) TypeError: Cannot read property 'register' of undefined
After undeploying the module everything work normal again.
Thanks in advance,
Harry
thumbnail
Joshua St. Clair, modified 6 Years ago. New Member Posts: 5 Join Date: 6/16/16 Recent Posts
I happened to have a 7.1, fp12 bundle up for my current dev environment so I built the blade template sample found at https://portal.liferay.dev/docs/7-1/tutorials/-/knowledge_base/t/creating-form-field-types with the command:

blade create -t form-field -v 7.1 -p com.liferay.docs.formfieldtype -c Time DDMTypeTime

And everything worked as expected. I'm attaching the code that it generated in the event that maybe your blade version is outdated and the code is different. If this same module is not working in your environment, there could be other hidden dependencies with other modules. 
thumbnail
Chris Mount, modified 5 Years ago. New Member Posts: 11 Join Date: 4/6/12 Recent Posts
I had this same problem and I compared the files in Joshua's zip to what my blade generates.

The issue appears to be related to version of the  liferay-npm-bundler :  2.7.0  in the package.json file.

I am using a 7.1 CE GA4 bundle and blade version 3.8.0.201909200317 and after changing liferay-npm-bundler to version 1.8.0 or 1.6.1 it worked successfully. 

Note, you may need to do a "blade gw clean" before you do the "blade deploy" to clear the "build" directory
thumbnail
Charalampos Chrysikopoulos, modified 6 Years ago. Junior Member Posts: 79 Join Date: 12/9/11 Recent Posts
It seems that if you use Blade prior version 3.3.0 it works.