Make select2 ajax a little more flexible

This commit is contained in:
snipe
2025-10-31 12:23:08 +00:00
parent d96844498f
commit 6d5f515f48
2 changed files with 31 additions and 3 deletions
@@ -4,7 +4,11 @@
'data_endpoint' => false,
'data_placeholder' => false,
'multiple' => false,
'item' => null,
'item_model' => null,
'name' => null,
])
<select
{{ ($multiple == 'true')? ' multiple' : '' }}
{{ $attributes->class(['js-data-ajax select2', 'livewire-select2' => $forLivewire])->style(['width:100%']) }}
@@ -12,5 +16,25 @@
data-endpoint="{{ $data_endpoint }}"
data-placeholder="{{ $data_placeholder }}"
>
@if ($item && $selected)
@if (old($name))
<option value="{{ old($name) }}" selected="selected" role="option" aria-selected="true">
{{ $item_model::find(old($name)) ? $item_model::find(old($name))->display_name : '' }}
</option>
@endif
@if (is_integer($selected))
<option value="{{ $selected }}" selected="selected" role="option" aria-selected="true">
{{ $item_model::find($selected) ? $item_model::find($selected)->display_name : '' }}
</option>
@else
@foreach ($selected as $key => $id)
<option value="{{ $id }}" selected="selected" role="option" aria-selected="true">
{{ $item_model::find($id) ? $item_model::find($id)->display_name : '' }}
</option>
@endforeach
@endif
@endif
</select>
+7 -3
View File
@@ -96,15 +96,18 @@
@if (!$item->id)
<!-- Assets (multiple select for new maintenance) -->
<x-form-row>
<x-form-label>{{ trans('general.assets') }}</x-form-label>
<x-form-input>
<x-input.select2-ajax
:item="$item->id ? $item->asset()->pluck('id')->toArray() : old('selected_assets')"
item_model="\App\Models\Asset"
name="selected_assets[]"
:value="$item->name"
required="true"
multiple="true"
data_endpoint="hardware"
:selected="$item->id ? $item->asset()->pluck('id')->toArray() : old('selected_assets')"
:data_placeholder="trans('general.select_asset')"
/>
</x-form-input>
@@ -175,13 +178,14 @@
<!-- Supplier -->
<x-form-row>
{{ $item->supplier->id }}
<x-form-label>{{ trans('general.supplier') }}</x-form-label>
<x-form-input>
<x-input.select2-ajax
item="$item->supplier"
item_model="\App\Models\Supplier"
name="supplier_id"
:selected="old('supplier_id', ($item->supplier) ? $item->supplier_id : '')"
:selected="old('supplier_id', ($item->supplier) ? $item->supplier->id : '')"
data_endpoint="suppliers"
:data_placeholder="trans('general.select_supplier')"
/>