Source of file GridFieldDeleteRelationsValidator.php
Size: 1,956 Bytes - Last Modified: 2021-12-23T10:20:36+00:00
/var/www/docs.ssmods.com/process/src/src/Forms/Validators/GridFieldDeleteRelationsValidator.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?php namespace Signify\Forms\Validators; use Signify\Forms\GridField\GridFieldDeleteRelationsButton; use SilverStripe\Forms\Validator; class GridFieldDeleteRelationsValidator extends Validator { public function php($data) { $valid = true; $filters = array(); // Check for checked filter checkboxes. foreach ($data as $key => $value) { if (preg_match('/' . GridFieldDeleteRelationsButton::FILTER_BY_SUFFIX . '$/', $key) && $value) { $filters[] = $key; } } // If the delete all checkbox is checked, no other filters can be checked. if (!empty($filters) && !empty($data[GridFieldDeleteRelationsButton::DELETE_ALL])) { $message = _t( GridFieldDeleteRelationsButton::class . '.VALIDATION_TooManyFilters', 'A filter checkbox and "Delete all" cannot be checked simultaneously.' ); $filters[] = GridFieldDeleteRelationsButton::DELETE_ALL; foreach ($filters as $fieldName) { $this->validationError($fieldName, $message); } $valid = false; } // At least one checkbox must be checked. if (empty($filters) && empty($data[GridFieldDeleteRelationsButton::DELETE_ALL])) { $message = _t( GridFieldDeleteRelationsButton::class . '.VALIDATION_RequireFilters', 'At least one filter checkbox or "Delete all" must be checked.' ); $this->validationError(GridFieldDeleteRelationsButton::DELETE_ALL, $message); $valid = false; } // Add a message to the form itself. if (!$valid) { $this->validationError('', _t( GridFieldDeleteRelationsButton::class . '.VALIDATION_FormMessage', 'Please correct the validation errors.' )); } return $valid; } } |