Skip to content

Support for path mapping of error messages#113

Closed
pepamartinec wants to merge 14 commits into
formapro:masterfrom
usetreno:error-path
Closed

Support for path mapping of error messages#113
pepamartinec wants to merge 14 commits into
formapro:masterfrom
usetreno:error-path

Conversation

@pepamartinec
Copy link
Copy Markdown

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
Copy Markdown
Collaborator

66Ton99 commented Jul 6, 2017

@Joker806 It looks messy. Can you update it?

@66Ton99
Copy link
Copy Markdown
Collaborator

66Ton99 commented Jun 4, 2026

Closing this in favor of #178, which ports the error path mapping behavior to current master with focused Jest coverage, docs, and green CI. Thanks for the original implementation and context.

@66Ton99 66Ton99 closed this Jun 4, 2026
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