Added Extruder Livewire components with Create, Edit, Show, and Index. Introduced corresponding routes, views, and navigation updates. Enhanced Buildplate and Manufacturer views for improved linking and consistency.

This commit is contained in:
2025-12-14 04:33:55 +01:00
parent 95f0154235
commit 4759df9077
12 changed files with 449 additions and 25 deletions
@@ -0,0 +1,55 @@
<section>
<x-header>
{{ __('Extruders') }}
<x-slot name="headerleft">
<input type="text" placeholder="Search..." wire:model.live="search" class="bg-black/10 border-white/20 rounded text-gray-50 placeholder:text-gray-200 focus:border-white/50 focus:ring-white/50" />
</x-slot>
<x-slot name="headerright">
<flux:button wire:click="create" variant="primary" class="bg-selective hover:bg-selective-600 text-gray-950 transition ease-in-out hover:cursor-pointer">Create Extruder</flux:button>
</x-slot>
</x-header>
<div class="container m-auto my-8 bg-elephant border border-elephant-900 rounded-lg shadow p-6 text-gray-50">
<x-table>
<x-slot name="tableheader">
<x-table.header>Name</x-table.header>
<x-table.header>Description</x-table.header>
<x-table.header>Manufacturer</x-table.header>
<x-table.header>Diameter</x-table.header>
<x-table.header>Max Temp.</x-table.header>
<x-table.header></x-table.header>
<x-table.header class="w-[150px]">Actions</x-table.header>
</x-slot>
@foreach ($extruders as $extruder)
<tr wire:key="{{ $extruder->id }}" class="text-gray-200 border-b border-white/50 hover:bg-white/10 transition duration-150 ease-in-out">
<x-table.item><p class="p-4 px-3 pl-6 font-bold">{{ $extruder->name }}</p></x-table.item>
<x-table.item><p class="p-4 px-3">{{ $extruder->description }}</p></x-table.item>
<x-table.item><p class="p-4 px-3">
@if ($extruder->manufacturer_id !== 0)
<a href="{{ route('manufacturer.show', $extruder->manufacturer_id) }}" class="flex items-center gap-2">
{{ App\Models\Manufacturer::find($extruder->manufacturer_id)->name }}
<flux:icon name="arrow-right" variant="mini"></flux:icon>
</a>
@endif
</p></x-table.item>
<x-table.item><p class="p-4 px-3 text-left">{{ $extruder->diameter }} mm</p></x-table.item>
<x-table.item><p class="p-4 px-3 text-left">{{ $extruder->temp_max }} °C</p></x-table.item>
<x-table.item><p class="p-4 px-3"></p></x-table.item>
<x-table.item>
<div class="flex flex-row gap-4 justify-end pr-8">
<flux:button variant="primary" class="text-gray-200 bg-transparent shadow-none hover:bg-cornflower hover:shadow hover:text-gray-950 hover:cursor-pointer" wire:click="show({{ $extruder->id }})" icon="magnifying-glass"></flux:button>
<flux:button variant="primary" class="text-gray-200 bg-transparent shadow-none hover:bg-gold-drop hover:shadow hover:text-gray-950 hover:cursor-pointer" wire:click="edit({{ $extruder->id }})" icon="pencil"></flux:button>
<flux:button variant="primary" class="text-gray-200 bg-transparent shadow-none hover:bg-red-700 hover:shadow hover:cursor-pointer" wire:click="delete({{ $extruder->id }})" icon="trash"></flux:button>
</div>
</x-table.item>
</tr>
@endforeach
<x-slot name="pagination">
{{ $extruders->links() }}
</x-slot>
</x-table>
</div>
</section>