Issue Type: New Feature New Feature
Assignee: Unassigned
Attachments: AllEmptyOrNoneEmpty.java, config.modules.training-templating.dialogs.myTextImage.form.tabs.tabMain.fields.pointOfInterest.xml, config.modules.ui-framework.fieldTypes.crossValidatingCompositeField.xml, CrossFieldsComparator.java, CrossFieldsValidatingCompositeField.java, CrossFieldsValidatingCompositeFieldDefinition.java, CrossFieldsValidatingCompositeFieldFactory.java
Created: 04/Nov/14 1:50 PM
Description:

Cross field validation is not a feature of the current Magnolia Form UI implementation.

I have created a general issue for requesting this feature as a general feature throughout form fields: MGNLUI-3240

In this ticket the the idea is to implement it for the CompositeField, as it would be a alternative to handle many of the use cases that occur of fields that need to be cross validated.
Possible use cases:

  • A "point of interest" CompositeField with the sub-fields "Longitude' and 'Latitude'. The field is not required, BUT if in one sub field a value is entered, the other also needs a value (no value or all have a value situation).

Idea:
Extending the CompositeField by a cross field validation of its sub fields.
Overriding the validate() method and delegating to a configurable field comparator class.

POC implementation:
I tried quickly such an implementation to test if it is possible.
I created:

  • CrossFieldsValidatingCompositeField.java which extends the CompositeField and its definition & factory class.
    The field delegates to an implementation of the CrossFieldsComparator.java interface to do the field comparison.
  • CrossFieldsComparator.java does the field comparison.
  • AllEmptyOrNoneEmpty.java is the implementation for this use case, checking if one field ha a value.

Attention: This is just a POC, not product ready code! It can be used in projects, but will probably need some adaptions.

Usage:

  • Add a 'fieldTypes' mapping of the FieldDefinition and the FieldFactory class. (added bootstrap file)
  • Use the CrossFieldsValidatingCompositeField class for a composite field.
  • Define the crossFieldsComparator property pointing to the implementation CrossFieldsComparator for the specific use case, in this case here the AllEmptyOrNoneEmpty.

Other use cases:
Just implement another version of CrossFieldsComparator.

Project: Magnolia UI
Labels: support
Priority: Neutral Neutral
Reporter: Christian Ringele
Security Level: Public
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



----------------------------------------------------------------
For list details, see: http://www.magnolia-cms.com/community/mailing-lists.html
Alternatively, use our forums: http://forum.magnolia-cms.com/
To unsubscribe, E-mail to: <dev-list-unsubscr...@magnolia-cms.com>
----------------------------------------------------------------

Reply via email to