Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for path mapping of error messages #113

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

pepamartinec
Copy link

This enables validators to map error message to form element children. Its equivalent of Symfonys ConstraintViolationBuilder->atPath().

PHP example:

class MyValidator extends ConstraintValidator
{
    public function validate($value, Constraint $constraint)
    {
        ...

        if ($isInvalid) {
            $this->context
                ->buildViolation($constraint->message)
                ->atPath('payment')
                ->addViolation();
        }
    }
}

JS counterpart

window.MyValidator = function() {
    this.validate = function (value) {
        ...

        if (isInvalid) {
            let error = new FpJsFormError(this.message);
            error.atPath = 'payment';

            return [error];
        }

        return [];
    }
};

The validator is now expected to return instances of FpJsFormError. If string is returned, it is automatically converted to FpJsFormError to keep backward compatibility with existing validators.

Internally, implementation keeps concept of error sourceId. It just recursively delegates error messages to element children.

66Ton99 and others added 14 commits January 31, 2016 23:10
[1.2] Fixed travis build & some improvements
Fixed validation_groups when option is a Closure formapro#93
- Added Symfony 2.6 to travis configuration
- Support for IsFalse/IsTrue/IsNull
- Testcase of multiplechoice less strict
- valid filename of generated screenshot on Windows
Updated 1.2 to support Symfony 2.6 & 2.7
- PHP7 compatibility
- Normalized multi choice behavior with 2.5.5+
- Minimum symfony version set to 2.7
- Updated JsFormValidatorFactory to return Choice(s)ToBooleanArrayTransformer transformer in case of expanded choice.
* Skip disabled fields

* Clear previous errors for disabled fields
* Pass whole type hierarchy to model

* Fix array construction (PHP 5.3 compatibility)
@66Ton99
Copy link
Collaborator

66Ton99 commented Jul 6, 2017

@Joker806 It looks messy. Can you update it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants