diff --git a/app/Livewire/Filament/Filament.php b/app/Livewire/Filament/Filament.php index 7d17274..926d68d 100644 --- a/app/Livewire/Filament/Filament.php +++ b/app/Livewire/Filament/Filament.php @@ -60,6 +60,77 @@ class Filament extends Component Flux::modal('createModal')->close(); } + public function edit($filamentid) { + @Auth::check(); + + $editid = $filamentid; + $this->editid = $editid; + + $filament = Model::findOrFail($editid); + + $this->name = $filament->name; + $this->description = $filament->description; + $this->diameter = $filament->diameter; + $this->color_id = $filament->color_id; + $this->type_id = $filament->filament_type_id; + $this->manufacturer_id = $filament->manufacturer_id; + $this->weight = $filament->weight; + $this->price = $filament->price; + $this->stock = $filament->stock; + + Flux::modal('editModal')->show(); + } + public function save($editid) { + @Auth::check(); + + $filament = Model::findOrFail($editid); + $filament->name = $this->name; + $filament->description = $this->description; + $filament->diameter = $this->diameter; + $filament->color_id = $this->color_id; + $filament->filament_type_id = $this->type_id; + $filament->manufacturer_id = $this->manufacturer_id; + $filament->weight = $this->weight; + $filament->price = $this->price; + $filament->stock = $this->stock; + $filament->save(); + + $this->resetInputFields(); + + Flux::modal('editModal')->close(); + } + + public function deleteModal($filamentid) { + @Auth::check(); + + $deleteid = $filamentid; + $this->deleteid = $deleteid; + + $filament = Model::findOrFail($deleteid); + $this->name = $filament->name; + $this->description = $filament->description; + $this->diameter = $filament->diameter; + $this->color_id = $filament->color_id; + $this->type_id = $filament->filament_type_id; + $this->manufacturer_id = $filament->manufacturer_id; + $this->weight = $filament->weight; + $this->price = $filament->price; + $this->stock = $filament->stock; + + Flux::modal('deleteModal')->show(); + } + public function delete($deleteid) { + @Auth::check(); + + $filament = Model::findOrFail($deleteid)->delete(); + + $this->deleteid = $deleteid; + Flux::modal('deleteModal')->close(); + + // Clear the form + $this->resetInputFields(); + } + public function cancel() { $this->resetInputFields(); Flux::modals()->close(); @@ -70,7 +141,7 @@ class Filament extends Component public function render() { return view('livewire.filament.filament', [ - 'filaments' => Model::search('name', $this->search)->paginate(10), + 'filaments' => Model::search('name', $this->search)->paginate(50), 'colors' => Color::all(), 'manufacturers' => Manufacturer::all(), 'types' => Type::all() diff --git a/database/migrations/2025_03_10_183058_create_filaments.php b/database/migrations/2025_03_10_183058_create_filaments.php index d530693..9d33fcf 100644 --- a/database/migrations/2025_03_10_183058_create_filaments.php +++ b/database/migrations/2025_03_10_183058_create_filaments.php @@ -18,9 +18,9 @@ return new class extends Migration $table->foreignId('color_id')->constrained()->onUpdate('cascade')->onDelete('cascade'); $table->foreignId('manufacturer_id')->constrained()->onUpdate('cascade')->onDelete('cascade');; $table->foreignId('filament_type_id')->constrained()->onUpdate('cascade')->onDelete('cascade');; - $table->string('weight')->required(); - $table->string('diameter')->required(); - $table->string('price')->nullable(); + $table->integer('weight')->required(); + $table->decimal('diameter', 10, 2)->required(); + $table->decimal('price', 10, 2)->nullable(); $table->string('finish')->nullable(); $table->string('image')->nullable(); $table->integer('stock')->default(0); diff --git a/resources/views/livewire/filament/filament.blade.php b/resources/views/livewire/filament/filament.blade.php index 888866a..e1fcc9e 100644 --- a/resources/views/livewire/filament/filament.blade.php +++ b/resources/views/livewire/filament/filament.blade.php @@ -16,7 +16,7 @@ -
{{ App\Models\Manufacturer::find($filament->manufacturer_id)->name }}
{{ App\Models\FilamentType::find($filament->filament_type_id)->name }}
{{ $filament->diameter }} mm
{{ $filament->weight }} g/m
${{ $filament->price }}
${{ $filament->stock }}
{{ $filament->weight }} g
{{ $filament->price }}€
{{ $filament->stock }}