add 'inline_form_validation' option to validate inline forms with custom algo
This commit is contained in:
parent
212afe2775
commit
8d5de79192
|
@ -139,6 +139,7 @@ abstract class CrudController extends AdminController
|
|||
|
||||
$builder = $this->createFormBuilder($entity);
|
||||
$callback = $configuration->getFields($context)[$label]['options']['inline_form'] ?? null;
|
||||
$validationCallback = $configuration->getFields($context)[$label]['options']['inline_form_validation'] ?? null;
|
||||
|
||||
if (null === $callback) {
|
||||
throw $this->createNotFoundException();
|
||||
|
@ -169,12 +170,21 @@ abstract class CrudController extends AdminController
|
|||
);
|
||||
|
||||
$form->handleRequest($fakeRequest);
|
||||
|
||||
if (null !== $validationCallback) {
|
||||
call_user_func_array($validationCallback, [$entity, $form, $request]);
|
||||
}
|
||||
|
||||
$session->remove($lastRequestId);
|
||||
}
|
||||
|
||||
if ($request->isMethod('POST')) {
|
||||
$form->handleRequest($request);
|
||||
|
||||
if (null !== $validationCallback) {
|
||||
call_user_func_array($validationCallback, [$entity, $form, $request]);
|
||||
}
|
||||
|
||||
if ($form->isValid()) {
|
||||
if (null !== $beforeUpdate) {
|
||||
call_user_func_array($beforeUpdate, [$entity, $form, $request]);
|
||||
|
|
|
@ -37,6 +37,7 @@ abstract class Field
|
|||
'href_attr' => [],
|
||||
'attr' => [],
|
||||
'inline_form' => null,
|
||||
'inline_form_validation' => null,
|
||||
]);
|
||||
|
||||
$resolver->setRequired('view');
|
||||
|
@ -46,6 +47,7 @@ abstract class Field
|
|||
$resolver->setAllowedTypes('attr', 'array');
|
||||
$resolver->setAllowedTypes('href', ['null', 'string', 'callable']);
|
||||
$resolver->setAllowedTypes('inline_form', ['null', 'callable']);
|
||||
$resolver->setAllowedTypes('inline_form_validation', ['null', 'callable']);
|
||||
$resolver->setAllowedTypes('href_attr', ['array', 'callable']);
|
||||
$resolver->setAllowedTypes('raw', 'boolean');
|
||||
$resolver->setAllowedTypes('property_builder', ['null', 'callable']);
|
||||
|
|
Loading…
Reference in a new issue