Created FilamentController & Filament Model + Views

This commit is contained in:
2025-03-10 21:47:57 +01:00
parent fbf0a3b6ca
commit 6a199c3a3c
14 changed files with 544 additions and 14 deletions
@@ -0,0 +1,80 @@
<x-app-layout>
<x-slot name="header">
{{ __('Create Filaments') }}
</x-slot>
<x-slot name="headeraction">
<div class="flex gap-4 justify-end">
<a href="{{ route('filaments.index') }}" class=" text-zinc-50 hover:text-zinc-300 font-bold text-base py-2 px-4 rounded cursor-pointer">Back</a>
<a href="{{ route('filaments.store') }}" onclick="event.preventDefault(); document.getElementById('create-filament-form').submit();" class="bg-green-500 hover:bg-green-700 text-zinc-700 hover:text-white font-bold text-base py-2 px-4 rounded cursor-pointer">Submit</a>
</div>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white dark:bg-zinc-700 p-4 overflow-hidden shadow-xl sm:rounded-lg">
<form id="create-filament-form" class="flex flex-col gap-6" method="POST" action="{{ route('filaments.store') }}">
@csrf
<div class="form-group flex flex-col">
<label for="name" class="text-lg ">Name</label>
<input type="text" id="name" name="name" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="">
</div>
<div class="form-group flex flex-col">
<label for="description">Description</label>
<textarea name="description" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded"></textarea>
</div>
<div class="form-group flex flex-col">
<label for="manufacturer_id">Manufacturer</label>
<select name="manufacturer_id" id="manufacturer_id" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="">
@foreach ($manufacturers as $manufacturer)
<option value="{{ $manufacturer->id }}">{{ $manufacturer->name }}</option>
@endforeach
</select>
</div>
<div class="form-group flex flex-col">
<label for="type_id">FilamentType</label>
<select name="type_id" id="type_id" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="">
@foreach ($types as $type)
<option value="{{ $type->id }}">{{ $type->name }}</option>
@endforeach
</select>
</div>
<div class="form-group flex flex-col">
<label for="color_id">FilamentType</label>
<select name="color_id" id="color_id" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="">
@foreach ($colors as $color)
<option value="{{ $color->id }}">{{ $color->name }} | {{ $color->hex }}</option>
@endforeach
</select>
</div>
<div class="form-group flex flex-col">
<label for="weight" class="text-lg ">Weight</label>
<input type="number" id="weight" name="weight" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="">
</div>
<div class="form-group flex flex-col">
<label for="diameter" class="text-lg ">Diameter</label>
<input type="number" step="0.01" id="diameter" name="diameter" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="">
</div>
<div class="form-group flex flex-col">
<label for="price" class="text-lg ">Price</label>
<input type="number" step="0.01" id="price" name="price" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" >
</div>
<div class="flex justify-end gap-4">
<a href="{{ route('filaments.index') }}" class="bg-zinc-500 hover:bg-zinc-700 text-zinc-800 hover:text-white font-bold py-2 px-4 rounded cursor-pointer">Cancel</a>
<button type="submit" class="bg-green-500 hover:bg-green-700 text-zinc-800 hover:text-white font-bold py-2 px-4 rounded cursor-pointer">Submit</button>
</div>
</form>
</div>
</div>
</div>
</x-app-layout>
+74
View File
@@ -0,0 +1,74 @@
<x-app-layout>
<x-slot name="header">
{{ __('Edit Filament') }}
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white dark:bg-zinc-700 p-4 overflow-hidden shadow-xl sm:rounded-lg">
<form id="update-color-form" class="flex flex-col gap-6" method="POST" action="{{ route('filaments.update', $filament->id) }}">
@csrf
@method('PUT')
<div class="form-group flex flex-col">
<label for="name" class="text-lg ">Name</label>
<input type="text" id="name" name="name" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="" value="{{ $filament->name }}">
</div>
<div class="form-group flex flex-col">
<label for="description">Description</label>
<textarea name="description" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" value="{{ $filament->description }}"></textarea>
</div>
<div class="form-group flex flex-col">
<label for="manufacturer_id">Manufacturer</label>
<select name="manufacturer_id" id="manufacturer_id" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="" value="{{ $filament->manufacturer_id }}">
@foreach ($manufacturers as $manufacturer)
<option value="{{ $manufacturer->id }}">{{ $manufacturer->name }}</option>
@endforeach
</select>
</div>
<div class="form-group flex flex-col">
<label for="type_id">FilamentType</label>
<select name="type_id" id="type_id" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="" value="{{ $filament->type_id }}">
@foreach ($types as $type)
<option value="{{ $type->id }}">{{ $type->name }}</option>
@endforeach
</select>
</div>
<div class="form-group flex flex-col">
<label for="color_id">FilamentType</label>
<select name="color_id" id="color_id" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="" value="{{ $filament->color_id }}">
@foreach ($colors as $color)
<option value="{{ $color->id }}">{{ $color->name }} | {{ $color->hex }}</option>
@endforeach
</select>
</div>
<div class="form-group flex flex-col">
<label for="weight" class="text-lg ">Weight</label>
<input type="number" id="weight" name="weight" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="" value="{{ $filament->weight }}">
</div>
<div class="form-group flex flex-col">
<label for="diameter" class="text-lg ">Diameter</label>
<input type="number" step="0.01" id="diameter" name="diameter" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" required="" value="{{ $filament->diameter }}">
</div>
<div class="form-group flex flex-col">
<label for="price" class="text-lg ">Price</label>
<input type="number" step="0.01" id="price" name="price" class="form-control bg-white dark:bg-zinc-800 border-zinc-50 dark:border-zinc-600 rounded" value="{{ $filament->price }}">
</div>
<div class="flex justify-end gap-4">
<a href="{{ route('filaments.index') }}" class="bg-zinc-500 hover:bg-zinc-700 text-zinc-800 hover:text-white font-bold py-2 px-4 rounded cursor-pointer">Cancel</a>
<button type="submit" class="bg-green-500 hover:bg-green-700 text-zinc-800 hover:text-white font-bold py-2 px-4 rounded cursor-pointer">Submit</button>
</div>
</form>
</div>
</div>
</div>
</x-app-layout>
+4 -4
View File
@@ -14,11 +14,11 @@
<div class="bg-white dark:bg-zinc-700 overflow-hidden shadow-xl sm:rounded-lg">
<ul class="">
<li class="flex gap-6 bg-zinc-50 dark:bg-zinc-900 p-2 px-4"><div class="">ID</div><div class="">Name</div><div class="">Options</div></li>
@foreach ($types as $type)
@foreach ($filaments as $filament)
<li class="flex gap-6 py-3 px-4 items-center">
<div class="p-2">{{ $type->id }}</div>
<div class="p-2"><a href="/types/{{ $type->id }}">{{ $type->name }}</a></div>
<div class="px-2"><a href="{{ route('types.edit', $type->id) }}"><flux:icon.ellipsis class="hover:text-zinc-50 hover:bg-zinc-500 stroke-3 rounded "/></a></div>
<div class="p-2">{{ $filament->id }}</div>
<div class="p-2"><a href="/filaments/{{ $filament->id }}">{{ $filament->name }}</a></div>
<div class="px-2"><a href="{{ route('filaments.edit', $filament->id) }}"><flux:icon.ellipsis class="hover:text-zinc-50 hover:bg-zinc-500 stroke-3 rounded "/></a></div>
</li>
@endforeach
</ul>
+60
View File
@@ -0,0 +1,60 @@
<x-app-layout>
<x-slot name="header">
{{ $filament->name }}
</x-slot>
<x-slot name="headeraction">
<div class="flex gap-4 justify-end">
<a href="{{ route('filaments.index') }}" class=" text-zinc-50 hover:text-zinc-300 font-bold text-base py-2 px-4 rounded cursor-pointer">Back</a>
<a href="{{ route('filaments.edit', $filament->id) }}" class="bg-zinc-500 hover:bg-zinc-700 text-zinc-50 hover:text-white font-bold text-base py-2 px-4 rounded cursor-pointer">Edit</a>
<a href="{{ route('filaments.destroy', $filament->id) }}" onclick="event.preventDefault(); document.getElementById('delete-form-{{ $filament->id }}').submit();" class="bg-red-500 hover:bg-red-500 text-zinc-50 hover:text-white font-bold text-base py-2 px-4 rounded cursor-pointer">Delete</a>
</div>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white dark:bg-zinc-700 overflow-hidden shadow-xl sm:rounded-lg">
<div class="p-4">
<div class="text-lg font-bold">Name</div>
<div class="p-4">
{{ $filament->name }}
</div>
<div class="text-lg font-bold">Description</div>
<div class="p-4">
{{ $filament->description }}
</div>
<div class="text-lg font-bold">Manufacturer</div>
<div class="p-4">
{{ $filament->manufacturer->name }}
</div>
<div class="text-lg font-bold">Type</div>
<div class="p-4">
{{ $filament->type->name }}
</div>
<div class="text-lg font-bold">Color</div>
<div class="p-4 flex gap-2">
<div class="w-8 h-8 rounded" style="background-color: {{ $filament->color->hex }}"></div>
{{ $filament->color->name }}
</div>
<div class="text-lg font-bold">Weight</div>
<div class="p-4">
{{ $filament->weight }}g
</div>
<div class="text-lg font-bold">Diameter</div>
<div class="p-4">
{{ $filament->diameter }}mm
</div>
<div class="text-lg font-bold">Price</div>
<div class="p-4">
{{ $filament->price }}
</div>
</div>
<form id="delete-form-{{ $filament->id }}" method="POST" action="{{ route('filaments.destroy', $filament->id) }}" class="hidden">
@csrf
@method('DELETE')
</form>
</div>
</div>
</div>
</x-app-layout>