From f0e6e1e89fca336047eb44feb7f62cec83a7653f Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 8 Nov 2019 11:16:52 +0100 Subject: [PATCH] MVC: refactor ConfigdActionsField, skip unit test since we don't want to mock configd at the moment. for https://github.com/opnsense/core/issues/3252 --- .../Base/FieldTypes/ConfigdActionsField.php | 63 +++---------------- 1 file changed, 9 insertions(+), 54 deletions(-) diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ConfigdActionsField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ConfigdActionsField.php index fa794271c..a4aba00ae 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ConfigdActionsField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ConfigdActionsField.php @@ -1,7 +1,7 @@ internalCacheKey])) { - self::$internalOptionList[$this->internalCacheKey] = array(); + if (!isset(self::$internalStaticOptionList[$this->internalCacheKey])) { + self::$internalStaticOptionList[$this->internalCacheKey] = array(); $backend = new Backend(); $service_tempfile = "/tmp/configdmodelfield.data"; @@ -90,7 +85,6 @@ class ConfigdActionsField extends BaseField } } - foreach ($actions as $key => $value) { // use filters to determine relevance $isMatched = true; @@ -104,14 +98,15 @@ class ConfigdActionsField extends BaseField } if ($isMatched) { if (!isset($value['description']) || $value['description'] == '') { - self::$internalOptionList[$this->internalCacheKey][$key] = $key; + self::$internalStaticOptionList[$this->internalCacheKey][$key] = $key; } else { - self::$internalOptionList[$this->internalCacheKey][$key] = $value['description']; + self::$internalStaticOptionList[$this->internalCacheKey][$key] = $value['description']; } } } - natcasesort(self::$internalOptionList[$this->internalCacheKey]); + natcasesort(self::$internalStaticOptionList[$this->internalCacheKey]); } + $this->internalOptionList = self::$internalStaticOptionList[$this->internalCacheKey]; } /** @@ -126,44 +121,4 @@ class ConfigdActionsField extends BaseField $this->internalCacheKey = md5(serialize($this->internalFilters)); } } - - /** - * get valid options, descriptions and selected value - * @return array - */ - public function getNodeData() - { - $result = array(); - // if interface is not required, add empty option - if (!$this->internalIsRequired) { - $result[""] = array("value" => gettext("none"), "selected" => 0); - } - - foreach (self::$internalOptionList[$this->internalCacheKey] as $optKey => $optValue) { - if ($optKey == $this->internalValue) { - $selected = 1; - } else { - $selected = 0; - } - $result[$optKey] = array("value" => $optValue, "selected" => $selected); - } - - - - return $result; - } - - /** - * retrieve field validators for this field type - * @return array returns Text/regex validator - */ - public function getValidators() - { - $validators = parent::getValidators(); - if ($this->internalValue != null) { - $validators[] = new InclusionIn(array('message' => $this->internalValidationMessage, - 'domain'=>array_keys(self::$internalOptionList[$this->internalCacheKey]))); - } - return $validators; - } }