@php
$pageTitle = $settings['overrideTitle'] ?? trans('common.add_item') . config('default.page_title_delimiter') . $settings['title'];
@endphp
@extends($settings['guard'] . '.layouts.default')
@section('page_title', $pageTitle . config('default.page_title_delimiter') . config('default.app_name'))
@section('content')
{{-- Page Header --}}
@if($settings['list'])
{{ trans('common.back_to_list') }}
@endif
@php $hasTabs = !empty($form['tabs']); @endphp
{{-- Form Content --}}
@if ($form['columns'])
@if($hasTabs)
{{-- Tabs at Page Level (NO card wrapper!) --}}
@php $previousTab = null; @endphp
@foreach ($form['columns'] as $column)
@if (!$column['hidden'])
@if($column['tab'] && $column['tab'] !== $previousTab)
@if($previousTab !== null)
@endif
@endif
@if($column['container_start::insert'])
@endif
@if($column['classes::insert'])
@endif
@if(!empty($column['conditional']))
{$column['conditional']['field']} ?? ($form['columns'][$column['conditional']['field']]['default'] ?? ''), $column['conditional']['values'])) style="display: none;" @endif>
@endif
@include('data.form', compact('form', 'column'))
@if(!empty($column['conditional']))
@endif
@if($column['classes::insert'])
@endif
@if($column['container_end::insert'])
@endif
@php $previousTab = $column['tab']; @endphp
@endif
@endforeach
@else
{{-- Non-tabbed form: Wrap in clean card --}}
@foreach ($form['columns'] as $column)
@if (!$column['hidden'])
@if($column['container_start::insert'])
@endif
@if($column['classes::insert'])
@endif
@if(!empty($column['conditional']))
{$column['conditional']['field']} ?? ($form['columns'][$column['conditional']['field']]['default'] ?? ''), $column['conditional']['values'])) style="display: none;" @endif>
@endif
@include('data.form', compact('form', 'column'))
@if(!empty($column['conditional']))
@endif
@if($column['classes::insert'])
@endif
@if($column['container_end::insert'])
@endif
@endif
@endforeach
@endif
{{-- Form Actions --}}
@endif
{{-- Custom JavaScript from DataDefinition settings --}}
@php
$customJs = null;
if (!empty($settings['js'])) {
if (is_string($settings['js'])) {
// String = applies to all views
$customJs = $settings['js'];
} elseif (is_array($settings['js'])) {
// Check for exact match or comma-separated keys containing 'insert'
foreach ($settings['js'] as $views => $code) {
$viewList = array_map('trim', explode(',', $views));
if (in_array('insert', $viewList) || in_array('all', $viewList)) {
$customJs = $code;
break;
}
}
}
}
@endphp
@if ($customJs)
@endif
@if (session('current_tab_index') && $hasTabs)
@endif
@if ($errors->any())
@endif
@stop