feat: trmnlp config add support for field_types: text, code, time

This commit is contained in:
Benjamin Nussbaum 2025-08-27 20:08:47 +02:00
parent 58fad59301
commit a129c71d79

View file

@ -574,7 +574,7 @@ HTML;
$fieldKey = $field['keyname'] ?? $field['key'] ?? $field['name']; $fieldKey = $field['keyname'] ?? $field['key'] ?? $field['name'];
$currentValue = $configuration[$fieldKey] ?? ''; $currentValue = $configuration[$fieldKey] ?? '';
@endphp @endphp
<div class="mb-8"> <div class="mb-4">
@if($field['field_type'] === 'author_bio') @if($field['field_type'] === 'author_bio')
@continue @continue
@endif @endif
@ -587,14 +587,35 @@ HTML;
<flux:input <flux:input
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}" value="{{ $currentValue }}"
/> />
@elseif($field['field_type'] === 'text')
<flux:textarea
label="{{ $field['name'] }}"
description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}"
/>
@elseif($field['field_type'] === 'code')
<flux:textarea
label="{{ $field['name'] }}"
description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
rows="{{ $field['rows'] ?? 3 }}"
placeholder="{{ $field['placeholder'] ?? null }}"
wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}"
class="font-mono"
/>
@elseif($field['field_type'] === 'password') @elseif($field['field_type'] === 'password')
<flux:input <flux:input
type="password" type="password"
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}" value="{{ $currentValue }}"
viewable viewable
@ -603,6 +624,7 @@ HTML;
<flux:input <flux:input
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
value="{{ $field['value'] }}" value="{{ $field['value'] }}"
copyable copyable
/> />
@ -611,6 +633,7 @@ HTML;
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
> >
<option value="">Select timezone...</option> <option value="">Select timezone...</option>
@foreach(timezone_identifiers_list() as $timezone) @foreach(timezone_identifiers_list() as $timezone)
@ -622,6 +645,7 @@ HTML;
type="number" type="number"
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
description="{{ $field['description'] ?? $field['name'] }}" description="{{ $field['description'] ?? $field['name'] }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}" value="{{ $currentValue }}"
/> />
@ -629,6 +653,7 @@ HTML;
<flux:checkbox <flux:checkbox
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
description="{{ $field['description'] ?? $field['name'] }}" description="{{ $field['description'] ?? $field['name'] }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
:checked="$currentValue" :checked="$currentValue"
/> />
@ -637,6 +662,16 @@ HTML;
type="date" type="date"
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
description="{{ $field['description'] ?? $field['name'] }}" description="{{ $field['description'] ?? $field['name'] }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}"
/>
@elseif($field['field_type'] === 'time')
<flux:input
type="time"
label="{{ $field['name'] }}"
description="{{ $field['description'] ?? $field['name'] }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
value="{{ $currentValue }}" value="{{ $currentValue }}"
/> />
@ -646,6 +681,7 @@ HTML;
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
> >
@if(isset($field['options']) && is_array($field['options'])) @if(isset($field['options']) && is_array($field['options']))
@foreach($field['options'] as $option) @foreach($field['options'] as $option)
@ -664,6 +700,7 @@ HTML;
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
> >
<option value="">Select {{ $field['name'] }}...</option> <option value="">Select {{ $field['name'] }}...</option>
@if(isset($field['options']) && is_array($field['options'])) @if(isset($field['options']) && is_array($field['options']))
@ -687,6 +724,7 @@ HTML;
label="{{ $field['name'] }}" label="{{ $field['name'] }}"
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
description="{{ $field['description'] ?? '' }}" description="{{ $field['description'] ?? '' }}"
descriptionTrailing="{{ $field['help_text'] ?? '' }}"
wire:init="loadXhrSelectOptions('{{ $fieldKey }}', '{{ $field['endpoint'] }}')" wire:init="loadXhrSelectOptions('{{ $fieldKey }}', '{{ $field['endpoint'] }}')"
> >
<option value="">Select {{ $field['name'] }}...</option> <option value="">Select {{ $field['name'] }}...</option>
@ -722,7 +760,7 @@ HTML;
wire:click="searchXhrSelect('{{ $fieldKey }}', '{{ $field['endpoint'] }}')" wire:click="searchXhrSelect('{{ $fieldKey }}', '{{ $field['endpoint'] }}')"
icon="magnifying-glass"/> icon="magnifying-glass"/>
</flux:input.group> </flux:input.group>
<flux:description>{{ $field['help_text'] ?? '' }}</flux:description>
@if((isset($xhrSelectOptions[$fieldKey]) && is_array($xhrSelectOptions[$fieldKey]) && count($xhrSelectOptions[$fieldKey]) > 0) || !empty($currentValue)) @if((isset($xhrSelectOptions[$fieldKey]) && is_array($xhrSelectOptions[$fieldKey]) && count($xhrSelectOptions[$fieldKey]) > 0) || !empty($currentValue))
<flux:select <flux:select
wire:model="configuration.{{ $fieldKey }}" wire:model="configuration.{{ $fieldKey }}"
@ -753,7 +791,7 @@ HTML;
@endif @endif
</div> </div>
@else @else
<p>{{ $field['name'] }}: Field type "{{ $field['field_type'] }}" not yet supported</p> <flux:callout variant="warning">Field type "{{ $field['field_type'] }}" not yet supported</flux:callout>
@endif @endif
</div> </div>
@endforeach @endforeach