diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php index c42c89ce0..2fe7da9a5 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php @@ -692,6 +692,24 @@ abstract class BaseField $this->internalValue = $this->internalDefaultValue; } + /** + * @return string default validation message + */ + protected function defaultValidationMessage() + { + return gettext('Validation failed.'); + } + + /** + * @return string current validation message + */ + protected function getValidationMessage() + { + return $this->internalValidationMessage !== null ? + gettext($this->internalValidationMessage) : + $this->defaultValidationMessage(); + } + /** * set Validation message ( for usage in model xml ) * @param string $msg validation message (on failure) diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php index 5335b6f0e..9e32875b9 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php @@ -58,21 +58,13 @@ abstract class BaseListField extends BaseField protected $internalMultiSelect = false; /** - * @var string default validation message string + * {@inheritdoc} */ - protected $internalValidationMessage = null; - - /** - * @return string validation message - */ - protected function getValidationMessage() + protected function defaultValidationMessage() { - if ($this->internalValidationMessage == null) { - return gettext('option not in list'); - } else { - return $this->internalValidationMessage; - } + return gettext('Option not in list.'); } + /** * select if multiple interfaces may be selected at once * @param $value boolean value 0/1 @@ -132,14 +124,16 @@ abstract class BaseListField extends BaseField { $validators = parent::getValidators(); if ($this->internalValue != null) { - $domain = array_map('strval', array_keys($this->internalOptionList)); - $this_message = $this->getValidationMessage(); + $args = [ + 'domain' => array_map('strval', array_keys($this->internalOptionList)), + 'message' => $this->getValidationMessage(), + ]; if ($this->internalMultiSelect) { // field may contain more than one option - $validators[] = new CsvListValidator(array('message' => $this_message, 'domain' => $domain)); + $validators[] = new CsvListValidator($args); } else { // single option selection - $validators[] = new InclusionIn(array('message' => $this_message, 'domain' => $domain)); + $validators[] = new InclusionIn($args); } } return $validators; diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/NetworkAliasField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/NetworkAliasField.php index 40ce9292a..4ed589f7a 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/NetworkAliasField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/NetworkAliasField.php @@ -56,16 +56,9 @@ class NetworkAliasField extends BaseListField /** * {@inheritdoc} */ - protected function getValidationMessage() + protected function defaultValidationMessage() { - if ($this->internalValidationMessage == null) { - return sprintf( - gettext("%s is not a valid source IP address or alias."), - (string)$this - ); - } else { - return $this->internalValidationMessage; - } + return sprintf(gettext("%s is not a valid source IP address or alias."), (string)$this); } /** diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php index bd6915bc0..439032c99 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php @@ -173,17 +173,13 @@ class PortField extends BaseListField } /** - * return validation message + * {@inheritdoc} */ - protected function getValidationMessage() + protected function defaultValidationMessage() { - if ($this->internalValidationMessage == null) { - $msg = gettext('Please specify a valid port number (1-65535).'); - if ($this->enableWellKnown) { - $msg .= ' ' . sprintf(gettext('A service name is also possible (%s).'), implode(', ', self::$wellknownservices)); - } - } else { - $msg = $this->internalValidationMessage; + $msg = gettext('Please specify a valid port number (1-65535).'); + if ($this->enableWellKnown) { + $msg .= ' ' . sprintf(gettext('A service name is also possible (%s).'), implode(', ', self::$wellknownservices)); } return $msg; } diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/TextField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/TextField.php index 38406f8fe..0ae6863ef 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/TextField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/TextField.php @@ -42,11 +42,6 @@ class TextField extends BaseField */ protected $internalIsContainer = false; - /** - * @var string default validation message string - */ - protected $internalValidationMessage = "text validation error"; - /** * @var null|string validation mask (regex) */ @@ -61,6 +56,14 @@ class TextField extends BaseField $this->internalMask = $value; } + /** + * {@inheritdoc} + */ + protected function defaultValidationMessage() + { + return gettext('Text does not validate.'); + } + /** * retrieve field validators for this field type * @return array returns Text/regex validator @@ -70,8 +73,10 @@ class TextField extends BaseField $validators = parent::getValidators(); if ($this->internalValue != null) { if ($this->internalValue != null && $this->internalMask != null) { - $validators[] = new Regex(array('message' => $this->internalValidationMessage, - 'pattern' => trim($this->internalMask))); + $validators[] = new Regex([ + 'message' => $this->getValidationMessage(), + 'pattern' => trim($this->internalMask), + ]); } } return $validators;