From aba583d1e251279adc403c03996ff6ec8652737f Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Fri, 6 Sep 2024 15:26:00 -0400 Subject: [PATCH 1/2] Adding new fields of component CollectionRecordControl to screenFields in hasScreenFields trait --- ProcessMaker/Traits/HasScreenFields.php | 29 +++++++++---------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/ProcessMaker/Traits/HasScreenFields.php b/ProcessMaker/Traits/HasScreenFields.php index 3262f756bc..83c3e856c0 100644 --- a/ProcessMaker/Traits/HasScreenFields.php +++ b/ProcessMaker/Traits/HasScreenFields.php @@ -1,20 +1,15 @@ parsedFields)) { @@ -35,10 +30,8 @@ public function getFieldsAttribute() ]); } } - return $this->parsedFields->unique('field'); } - public function parseNestedScreen($node) { $nested = Screen::find($node['config']['screen']); @@ -46,16 +39,24 @@ public function parseNestedScreen($node) $this->parsedFields->push($field); } } - + public function parseCollectionRecordControl($node) + { + $collection = Screen::find($node['config']['collection']['screen']); + foreach ($collection->fields as $field) { + $this->parsedFields->push($field); + } + } public function walkArray($array, $key = null) { if (!is_array($array)) { $array = json_decode($array); } - foreach ($array as $subkey => $value) { + if (isset($value['component']) && $value['component'] === 'FormNestedScreen') { $this->parseNestedScreen($value); + } elseif (isset($value['component']) && $value['component'] === 'FormCollectionRecordControl') { + $this->parseCollectionRecordControl($value); } elseif ($key !== 'inspector' && is_array($value) && isset($value['config']['name'])) { $this->parseItem($value); } @@ -64,7 +65,6 @@ public function walkArray($array, $key = null) } } } - public function parseItem($item) { if (isset($item['component']) && !in_array($item['component'], $this->restrictedComponents)) { @@ -79,12 +79,10 @@ public function parseItem($item) ])); } } - public function parseItemName($item) { return $item['config']['name']; } - public function parseItemLabel($item) { if (isset($item['config']['label'])) { @@ -93,15 +91,12 @@ public function parseItemLabel($item) return null; } } - public function parseItemFormat($item) { $format = 'string'; - if (isset($item['config']['dataFormat'])) { $format = $item['config']['dataFormat']; } - if (isset($item['component'])) { switch ($item['component']) { case 'FileUpload': @@ -128,22 +123,18 @@ public function parseItemFormat($item) break; } } - return $format; } - public function parseItemMask($item) { return $item['config']['dataMask'] ?? null; if (isset($item['config']['dataMask'])) { } } - public function parseIsSubmitButton($item) { return Arr::get($item, 'config.event') === 'submit'; } - /** * Return an array of fields that can be included when * saving a draft or doing a quick fill, so as not to From 8c7425171c9ad6f64589526e5580bdc8de83fbc1 Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Fri, 6 Sep 2024 15:32:03 -0400 Subject: [PATCH 2/2] Adding spaces --- ProcessMaker/Traits/HasScreenFields.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ProcessMaker/Traits/HasScreenFields.php b/ProcessMaker/Traits/HasScreenFields.php index 83c3e856c0..7451339729 100644 --- a/ProcessMaker/Traits/HasScreenFields.php +++ b/ProcessMaker/Traits/HasScreenFields.php @@ -1,5 +1,6 @@ parsedFields->unique('field'); } + public function parseNestedScreen($node) { $nested = Screen::find($node['config']['screen']); @@ -39,6 +41,7 @@ public function parseNestedScreen($node) $this->parsedFields->push($field); } } + public function parseCollectionRecordControl($node) { $collection = Screen::find($node['config']['collection']['screen']); @@ -46,6 +49,7 @@ public function parseCollectionRecordControl($node) $this->parsedFields->push($field); } } + public function walkArray($array, $key = null) { if (!is_array($array)) { @@ -65,6 +69,7 @@ public function walkArray($array, $key = null) } } } + public function parseItem($item) { if (isset($item['component']) && !in_array($item['component'], $this->restrictedComponents)) { @@ -79,10 +84,12 @@ public function parseItem($item) ])); } } + public function parseItemName($item) { return $item['config']['name']; } + public function parseItemLabel($item) { if (isset($item['config']['label'])) { @@ -91,6 +98,7 @@ public function parseItemLabel($item) return null; } } + public function parseItemFormat($item) { $format = 'string'; @@ -125,16 +133,19 @@ public function parseItemFormat($item) } return $format; } + public function parseItemMask($item) { return $item['config']['dataMask'] ?? null; if (isset($item['config']['dataMask'])) { } } + public function parseIsSubmitButton($item) { return Arr::get($item, 'config.event') === 'submit'; } + /** * Return an array of fields that can be included when * saving a draft or doing a quick fill, so as not to @@ -142,6 +153,7 @@ public function parseIsSubmitButton($item) * * @return array */ + public function screenFilteredFields() { return $this->fields->pluck('field');