diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 348a9d710..caa9c904c 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -2139,4 +2139,45 @@ class pmDynaform return defined("LEAVE_CASE_WARNING") ? LEAVE_CASE_WARNING : 0; } + /** + * Unset a json property from the following controls: text, textarea, dropdown, + * checkbox, checkgroup, radio, datetime, suggest, hidden, file, grid. + * @param stdClass $json + * @param string $property + * @return void + */ + public function jsonUnsetProperty(&$json, $property) + { + if (empty($json)) { + return; + } + foreach ($json as $key => &$value) { + $sw1 = is_array($value); + $sw2 = is_object($value); + if ($sw1 || $sw2) { + $this->jsonUnsetProperty($value, $property); + } + if (!$sw1 && !$sw2) { + if ($key === "type" && ( + $value === "text" || + $value === "textarea" || + $value === "dropdown" || + $value === "checkbox" || + $value === "checkgroup" || + $value === "radio" || + $value === "datetime" || + $value === "suggest" || + $value === "hidden" || + $value === "file" || + $value === "grid")) { + if ($value === "grid" && $property === "data") { + $json->{$property} = []; + } else { + unset($json->{$property}); + } + } + } + } + } + } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Light.php b/workflow/engine/src/ProcessMaker/Services/Api/Light.php index cb7f0f76d..98bfe07ac 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Light.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Light.php @@ -998,6 +998,7 @@ class Light extends Api \G::LoadClass("pmDynaform"); $pmDynaform = new \pmDynaform(array("APP_DATA" => $caseVariables, "CURRENT_DYNAFORM" => $dyn_uid)); $pmDynaform->jsonr($result['formContent']); + $pmDynaform->jsonUnsetProperty($result['formContent'], "data"); return $result; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));