@foreach ($fields as $field)
@php
$visible = $field['visibility'] ?? false;
// For clients, also check is_visible_to_client
$hideField = !$field['visibility'];
if ($isClientView && !($field['is_visible_to_client'] ?? false)) {
$hideField = true;
}
$conditionalAttributes = '';
if (isset($field['conditionals'])) {
foreach ($field['conditionals'] as $conditionField => $condition) {
$conditionalAttributes .= " data-condition-field=\"{$conditionField}\"";
$conditionalAttributes .= " data-condition-condition=\"{$condition['condition']}\"";
$conditionalAttributes .= " data-condition-value=\"{$condition['value']}\"";
}
}
@endphp
@if ($field['contentType'] != 'inline_html')
@endif
@switch($field['contentType'])
@case('free_form_text')
@break
@case('password')
@break
@case('long_text')
@case('text_area')
@break
@case('list')
@if($isClientView)
@php
$listValue = isset($record) ? $field['value'] : '';
if($listValue && isset($field['list_id']) && isset($formLists[$field['list_id']])) {
$option = collect($formLists[$field['list_id']])->firstWhere('refid', $listValue);
$displayValue = $option['value'] ?? $listValue;
} else {
$displayValue = $listValue;
}
@endphp
{{ $displayValue }}
@else
@endif
@break
@case('record')
@php
$filterValue = null;
$filterId = null;
$filterModel = null;
if ($field['filterid']) {
$filterField = collect($fields)->firstWhere(
'id',
$field['filterid'],
);
$filterValue = $filterField
? $filterField['value']
: null;
$filterId = $filterField
? $filterField['fieldname']
: null;
$filterModel = $filterField
? $filterField['references']
: null;
}
@endphp
@if($isClientView)
@php
$recordRefValue = isset($record) ? $field['value'] : '';
$titleKey = $field['scriptid'] . '_title';
$displayTitle = $record->$titleKey ?? $recordRefValue;
@endphp
{{ $displayTitle }}
@else
@endif
@break
@case('text_area')
@break
@case('list')
@break
@case('multiple_select')
@break
@case('record')
@break
@case('date')
@break
@case('date_time')
@php
$apiValue = old('field.' . $field['scriptid'], isset($record) ? $field['value'] : '');
// Display raw value exactly as stored - no timezone conversion
if ($apiValue) {
// Ensure the value is in the correct format for datetime-local input
// datetime-local expects format: YYYY-MM-DDTHH:MM
if (strlen($apiValue) === 10) {
// Date only, add default time
$dateTimeValue = $apiValue . 'T00:00';
} elseif (strpos($apiValue, 'T') !== false) {
// Already has T separator, use as-is
$dateTimeValue = $apiValue;
} elseif (strpos($apiValue, ' ') !== false) {
// Has space separator, convert to T format
$dateTimeValue = str_replace(' ', 'T', $apiValue);
} else {
// Fallback: use as-is
$dateTimeValue = $apiValue;
}
} else {
$dateTimeValue = '';
}
@endphp
@break
@case('integer_number')
@break
@case('check_box')
@break
@case('currency')
@break
@case('decimal_number')
@break
@case('hyperlink')
@if($isClientView)
{{ old('field.' . $field['scriptid'], isset($record) && is_string($field['value']) ? $field['value'] : '') }}
@else
@endif
@break
@case('phone_number')
@break
@case('email_address')
@break
@case('time_of_day')
{{--
--}}
@break
@case('percent')
@break
@case('tag')
@break
@case('document')
@php $inputFile = null; @endphp
@if ($field['value'])
@if ($file = $record->files->firstWhere('id', $field['value']))
@php
$inputFile = $file;
@endphp
@endif
@endif
@break
@case('timeduration')
@break
@case('inline_html')
@break
@default
{{ $field['contentType'] }}
@endswitch
@if ($field['calculated'])
calculated
@endif
@endforeach