Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Adding new fields of component CollectionRecordControl to screenField…
…s in hasScreenFields trait
  • Loading branch information
CarliPinell committed Sep 6, 2024
commit aba583d1e251279adc403c03996ff6ec8652737f
29 changes: 10 additions & 19 deletions ProcessMaker/Traits/HasScreenFields.php
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
<?php

namespace ProcessMaker\Traits;

use Illuminate\Support\Arr;
use Log;
use ProcessMaker\Models\Column;
use ProcessMaker\Models\Screen;

trait HasScreenFields
{
private $parsedFields;

private $restrictedComponents = [
'FormImage',
];

public function getFieldsAttribute()
{
if (empty($this->parsedFields)) {
Expand All @@ -35,27 +30,33 @@ public function getFieldsAttribute()
]);
}
}

return $this->parsedFields->unique('field');
}

public function parseNestedScreen($node)
{
$nested = Screen::find($node['config']['screen']);
foreach ($nested->fields as $field) {
$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);
}
Expand All @@ -64,7 +65,6 @@ public function walkArray($array, $key = null)
}
}
}

public function parseItem($item)
{
if (isset($item['component']) && !in_array($item['component'], $this->restrictedComponents)) {
Expand All @@ -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'])) {
Expand All @@ -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':
Expand All @@ -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
Expand Down