@if (isset($field['subfields']) && is_array($field['subfields']) && count($field['subfields']))
@if(!empty($mainCategory->items))
@foreach($mainCategory->items as $sub_key => $item)
@if(!empty($step == 0))
@php
$detail = Null;
if(!empty($entry))
{
$detail = $entry->detials()
->where('main_category_id', $mainCategory->id)
->whereNull('main_item_id')
->first();
}
@endphp
@foreach($field['subfields'] as $subfield)
@php
$mainCategoryId = $subfield['name'] == 'main_category_id' ? $mainCategory->id : NULL;
@endphp
@if(!empty($mainCategory->appendix) && $subfield['type'] == 'upload_multiple')
@php
$subfield['withFiles'] = [
'fileNamer' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class,
'disk' => 'public',
'path' => $subfield['withFiles']['path'],
];
$subfieldViewAppendix = $crud->getFirstFieldView($subfield['type'], $subfield['view_namespace'] ?? false);
if(isset($row)) {
// Cast objects to array (could be a translation object, or a developer provided collection).
if (is_object($row)) {
$row = collect($row)->toArray();
}
if(!is_array($subfield['name'])) {
if(!Str::contains($subfield['name'], '.')) {
// this is a fix for 4.1 repeatable names that when the field was multiple, saved the keys with `[]` in the end. Eg: `tags[]` instead of `tags`
if(isset($row[$subfield['name']]) || isset($row[$subfield['name'].'[]'])) {
//$subfield['value'] = $row[$subfield['name']] ?? $row[$subfield['name'].'[]'];
}
$subfield['name'] = $field['name'].'['.$row_key.']['.$subfield['name'].']';
}else{
$subfield['value'] = \Arr::get($row, $subfield['name']);
$subfield['name'] = $field['name'].'['.$row_key.']['.Str::replace('.', '][', $subfield['name']).']';
}
}else{
foreach ($subfield['name'] as $k => $item) {
$subfield['name'][$k] = $field['name'].'['.$row_key.']['.$item.']';
// $subfield['value'][$subfield['name'][$k]] = \Arr::get($row, $item);
}
}
} else {
// use an un-matchable field name to avoid field initialization problems
// this would prevent the field from EVER get value in old() and triggering errors.
if(!is_array($subfield['name'])) {
$subfield['name'] = $field['name'].'['.$row_key.']['.$subfield['name'].']';
}else{
foreach($subfield['name'] as $k => $subfieldName) {
$subfield['name'][$k] = $field['name'].'['.$row_key.']['.$subfieldName.']';
}
}
}
if(!empty($detail) && !empty($detail->appendix))
{
$subfield['value'] = $detail->appendix;
}
$subfield['appendix'] = $mainCategory->appendix;
@endphp
@include($subfieldViewAppendix, ['field' => $subfield])
@endif
@if(!empty($mainCategoryId))
@endif
@if(!empty($detail))
@endif
@endforeach
@php
$row_key++;
@endphp
@endif
@php
$detail = Null;
if(!empty($entry))
{
$detail = $entry->detials()
->where('main_category_id', $mainCategory->id)
->where('main_item_id', $item->id)
->first();
}
$subfieldItem = [
'type' => 'text',
'label' => $item->title,
'attributes' => [
'placeholder' => str_replace('{count}', '', $item->placeholder)
],
'wrapper' => [
'class' => 'col-md-11 offset-md-1 mt-5',
],
'name' => 'total'
];
if(!empty($detail))
{
$subfieldItem['value'] = $detail?->total;
}
$subfieldView = $crud->getFirstFieldView($subfieldItem['type'], $subfieldItem['view_namespace'] ?? false);
$subfieldItem['name'] = 'detials['.$row_key.']['.$subfieldItem['name'].']';
@endphp
@if(!empty($item->additional))
@include($subfieldView, ['field' => $subfieldItem])
@php
$subfieldAdditional = [
'type' => 'text',
'label' => " ",
'attributes' => [
'placeholder' => str_replace('{size}', '', $item->additional)
],
'wrapper' => [
'class' => 'col-md-11 mt-5',
],
'name' => 'size'
];
if(!empty($detail))
{
$subfieldAdditional['value'] = $detail?->size;
}
$subfieldViewAdditional = $crud->getFirstFieldView($subfieldAdditional['type'], $subfieldAdditional['view_namespace'] ?? false);
$subfieldAdditional['name'] = 'detials['.$row_key.']['.$subfieldAdditional['name'].']';
@endphp
@include($subfieldViewAdditional, ['field' => $subfieldAdditional])
@else
@include($subfieldView, ['field' => $subfieldItem])
@endif
@if(!empty($item->reference_attachment))
@php
$subfieldReference = [
'type' => 'upload',
'label' => $item->reference_attachment,
'disk' => 'public',
'prefix' => 'attachments/liquidtrashes/',
'withFiles' => [
'fileNamer' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class,
'disk' => 'public',
'path' => 'attachments/liquidtrashes',
],
'wrapper' => [
'class' => 'col-md-10 offset-md-2 mt-5',
],
'name' => 'attachment',
];
$subfieldViewReference = $crud->getFirstFieldView($subfieldReference['type'], $subfieldReference['view_namespace'] ?? false);
if(isset($row)) {
// Cast objects to array (could be a translation object, or a developer provided collection).
if (is_object($row)) {
$row = collect($row)->toArray();
}
if(!is_array($subfieldReference['name'])) {
if(!Str::contains($subfieldReference['name'], '.')) {
// this is a fix for 4.1 repeatable names that when the field was multiple, saved the keys with `[]` in the end. Eg: `tags[]` instead of `tags`
if(isset($row[$subfieldReference['name']]) || isset($row[$subfieldReference['name'].'[]'])) {
//$subfield['value'] = $row[$subfield['name']] ?? $row[$subfield['name'].'[]'];
}
$subfieldReference['name'] = $field['name'].'['.$row_key.']['.$subfieldReference['name'].']';
}else{
$subfieldReference['value'] = \Arr::get($row, $subfieldReference['name']);
$subfieldReference['name'] = $field['name'].'['.$row_key.']['.Str::replace('.', '][', $subfieldReference['name']).']';
}
}else{
foreach ($subfieldReference['name'] as $k => $item) {
$subfieldReference['name'][$k] = $field['name'].'['.$row_key.']['.$item.']';
// $subfield['value'][$subfield['name'][$k]] = \Arr::get($row, $item);
}
}
} else {
// use an un-matchable field name to avoid field initialization problems
// this would prevent the field from EVER get value in old() and triggering errors.
if(!is_array($subfieldReference['name'])) {
$subfieldReference['name'] = $field['name'].'['.$row_key.']['.$subfieldReference['name'].']';
}else{
foreach($subfieldReference['name'] as $k => $subfieldName) {
$subfieldReference['name'][$k] = $field['name'].'['.$row_key.']['.$subfieldName.']';
}
}
}
if(!empty($detail) && !empty($detail->attachment))
{
$subfieldReference['value'] = $detail->attachment;
}
@endphp
@include($subfieldViewReference, ['field' => $subfieldReference])
@endif
@if(!empty($item->appendix))
@php
$subfieldItem = [
'type' => 'upload_multiple',
'name' => 'appendix',
'disk' => 'public',
'withFiles' => [
'fileNamer' => \Backpack\CRUD\app\Library\Uploaders\Support\FileNameGenerator::class,
'disk' => 'public',
'path' => 'attachments/liquidtrashes',
],
'label' => '',
'wrapper' => [
'class' => 'col-md-10 offset-md-2 mt-5',
],
];
$subfieldViewAppendix = $crud->getFirstFieldView($subfieldItem['type'], $subfieldItem['view_namespace'] ?? false);
$subfieldItem['name'] = 'detials['.$row_key.']['.$subfieldItem['name'].']';
if(!empty($detail) && !empty($detail->appendix))
{
$subfieldItem['value'] = $detail->appendix;
}
$subfieldItem['appendix'] = $item->appendix;
@endphp
@include($subfieldViewAppendix, ['field' => $subfieldItem])
@else
@endif
@if(!empty($detail))
@endif
@php
$step++;
$row_key++;
@endphp
@endforeach
@endif
@endif