From 4759df9077069c60b5cce42d8a3be83aa903173f Mon Sep 17 00:00:00 2001 From: Iridium34 Date: Sun, 14 Dec 2025 04:33:55 +0100 Subject: [PATCH] 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. --- app/Livewire/Extruder/CreateExtruder.php | 46 +++++++++++++ app/Livewire/Extruder/EditExtruder.php | 55 +++++++++++++++ app/Livewire/Extruder/Extruder.php | 36 ++++++++++ app/Livewire/Extruder/ShowExtruder.php | 27 ++++++++ resources/views/components/navbar.blade.php | 48 ++++++------- .../views/livewire/buildplate/index.blade.php | 9 ++- .../views/livewire/extruder/create.blade.php | 67 +++++++++++++++++++ .../views/livewire/extruder/edit.blade.php | 67 +++++++++++++++++++ .../views/livewire/extruder/index.blade.php | 55 +++++++++++++++ .../views/livewire/extruder/show.blade.php | 55 +++++++++++++++ .../livewire/manufacturer/index.blade.php | 2 +- routes/web.php | 7 ++ 12 files changed, 449 insertions(+), 25 deletions(-) create mode 100644 app/Livewire/Extruder/CreateExtruder.php create mode 100644 app/Livewire/Extruder/EditExtruder.php create mode 100644 app/Livewire/Extruder/Extruder.php create mode 100644 app/Livewire/Extruder/ShowExtruder.php create mode 100644 resources/views/livewire/extruder/create.blade.php create mode 100644 resources/views/livewire/extruder/edit.blade.php create mode 100644 resources/views/livewire/extruder/index.blade.php create mode 100644 resources/views/livewire/extruder/show.blade.php diff --git a/app/Livewire/Extruder/CreateExtruder.php b/app/Livewire/Extruder/CreateExtruder.php new file mode 100644 index 0000000..e653439 --- /dev/null +++ b/app/Livewire/Extruder/CreateExtruder.php @@ -0,0 +1,46 @@ +validate([ + 'name' => ['required', 'string', 'max:255'], + 'description' => ['nullable', 'string', 'max:255'], + 'manufacturer_id' => ['required', 'integer'], + 'diameter' => ['required', 'string', 'max:4'], + 'temp_max' => ['required', 'integer'] + ]); + + $extruder = new Model(); + $extruder->name = $this->name; + $extruder->description = $this->description; + $extruder->manufacturer_id = $this->manufacturer_id; + $extruder->diameter = $this->diameter; + $extruder->temp_max = $this->temp_max; + $extruder->save(); + + return $this->redirectRoute('extruder.show', $extruder->id , navigate: true); + } + + public function render() + { + return view('livewire.extruder.create', [ + ]); + } +} diff --git a/app/Livewire/Extruder/EditExtruder.php b/app/Livewire/Extruder/EditExtruder.php new file mode 100644 index 0000000..52e84de --- /dev/null +++ b/app/Livewire/Extruder/EditExtruder.php @@ -0,0 +1,55 @@ +extruder = $extruder; + $this->name = $extruder->name; + $this->description = $extruder->description; + $this->manufacturer_id = $extruder->manufacturer_id; + $this->diameter = $extruder->diameter; + $this->temp_max = $extruder->temp_max; + } + + public function save(){ + $this->validate([ + 'name' => ['required', 'string', 'max:255'], + 'description' => ['nullable', 'string', 'max:255'], + 'manufacturer_id' => ['required', 'integer'], + 'diameter' => ['required', 'string', 'max:4'], + 'temp_max' => ['required', 'integer'] + ]); + + $this->extruder->update([ + 'name' => $this->name, + 'description' => $this->description, + 'manufacturer_id' => $this->manufacturer_id, + 'diameter' => $this->diameter, + 'temp_max' => $this->temp_max + ]); + return $this->redirectRoute('extruder.show', $this->extruder->id, navigate: true); + } + public function cancel(){ + return $this->redirectRoute('extruder.index', navigate: true); + } + + public function render() + { + return view('livewire.extruder.edit', [ + ]); + } +} diff --git a/app/Livewire/Extruder/Extruder.php b/app/Livewire/Extruder/Extruder.php new file mode 100644 index 0000000..665550f --- /dev/null +++ b/app/Livewire/Extruder/Extruder.php @@ -0,0 +1,36 @@ +redirectRoute('extruder.create', navigate: true); + } + public function edit($id){ + return $this->redirectRoute('extruder.edit', $id, navigate: true); + } + public function show($id){ + return $this->redirectRoute('extruder.show', $id, navigate: true); + } + public function delete($id){ + Model::destroy($id); + } + + public function render() + { + return view('livewire.extruder.index', [ + 'extruders' => Model::search('name', $this->search)->paginate(10), + ]); + } +} diff --git a/app/Livewire/Extruder/ShowExtruder.php b/app/Livewire/Extruder/ShowExtruder.php new file mode 100644 index 0000000..de2bcd9 --- /dev/null +++ b/app/Livewire/Extruder/ShowExtruder.php @@ -0,0 +1,27 @@ +redirectRoute('extruder.index', navigate: true); + } + + public function edit($id){ + return $this->redirectRoute('extruder.edit', $id, navigate: true); + } + + public function render() + { + return view('livewire.extruder.show', [ + ]); + } +} diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index 8d38f04..50dbddd 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -9,29 +9,6 @@ Dashboard Orders - - - - - Database - - - All - Filaments - - - - Manufacturers - - Colors - - Types - - - BuildPlates - - - @@ -42,6 +19,31 @@ + + + + + + All + Filaments + + + + Manufacturers + + Colors + + Types + + + BuildPlates + + + Extruder + + + + diff --git a/resources/views/livewire/buildplate/index.blade.php b/resources/views/livewire/buildplate/index.blade.php index 80cb95b..b5f2ca0 100644 --- a/resources/views/livewire/buildplate/index.blade.php +++ b/resources/views/livewire/buildplate/index.blade.php @@ -26,7 +26,14 @@

{{ $buildplate->name }}

{{ $buildplate->description }}

-

{{ App\Models\Manufacturer::find($buildplate->manufacturer_id)->name }}

+

+ @if ($buildplate->manufacturer_id !== 0) + + {{ App\Models\Manufacturer::find($buildplate->manufacturer_id)->name }} + + + @endif +

{{ $buildplate->temp_max }}

{{ $buildplate->amount }}

diff --git a/resources/views/livewire/extruder/create.blade.php b/resources/views/livewire/extruder/create.blade.php new file mode 100644 index 0000000..cd5cc02 --- /dev/null +++ b/resources/views/livewire/extruder/create.blade.php @@ -0,0 +1,67 @@ +
+
+ + {{ __('Create Extruder') }} + + + Save + Cancel + + + +
+
+
+

Extruder Information

+

Extruder details.

+
+
+
+
+
Name
+
+ +
+
+
+
Description
+
+ +
+
+
+
Manufacturer
+
+ + Select Manufacturer + @foreach(\App\Models\Manufacturer::all() as $manufacturer) + {{$manufacturer->name}} + @endforeach + +
+
+
+
Diameter
+
+ + + mm + +
+
+
+
Max Temperature
+
+ + + °C + +
+
+
+
+
+ +
+
+
diff --git a/resources/views/livewire/extruder/edit.blade.php b/resources/views/livewire/extruder/edit.blade.php new file mode 100644 index 0000000..e296482 --- /dev/null +++ b/resources/views/livewire/extruder/edit.blade.php @@ -0,0 +1,67 @@ +
+
+ + {{ __('Edit Extruder') }} + + + Save + Cancel + + + +
+
+
+

Extruder Information

+

Extruder details.

+
+
+
+
+
Name
+
+ +
+
+
+
Description
+
+ +
+
+
+
Manufacturer
+
+ + Select Manufacturer + @foreach(\App\Models\Manufacturer::all() as $manufacturer) + {{$manufacturer->name}} + @endforeach + +
+
+
+
Diameter
+
+ + + mm + +
+
+
+
Max Temperature
+
+ + + °C + +
+
+
+
+
+ +
+
+
diff --git a/resources/views/livewire/extruder/index.blade.php b/resources/views/livewire/extruder/index.blade.php new file mode 100644 index 0000000..62f41af --- /dev/null +++ b/resources/views/livewire/extruder/index.blade.php @@ -0,0 +1,55 @@ +
+ + {{ __('Extruders') }} + + + + + + + Create Extruder + + + +
+ + + Name + Description + Manufacturer + Diameter + Max Temp. + + Actions + + @foreach ($extruders as $extruder) + +

{{ $extruder->name }}

+

{{ $extruder->description }}

+

+ @if ($extruder->manufacturer_id !== 0) + + {{ App\Models\Manufacturer::find($extruder->manufacturer_id)->name }} + + + @endif +

+

{{ $extruder->diameter }} mm

+

{{ $extruder->temp_max }} °C

+

+ +
+ + + +
+
+ + @endforeach + + {{ $extruders->links() }} + +
+ +
+
diff --git a/resources/views/livewire/extruder/show.blade.php b/resources/views/livewire/extruder/show.blade.php new file mode 100644 index 0000000..784c957 --- /dev/null +++ b/resources/views/livewire/extruder/show.blade.php @@ -0,0 +1,55 @@ +
+ + {{ __('Show Extruder') }} + + + Back + Edit + + + +
+
+
+

Extruder Information

+

Extruder details.

+
+
+
+
+
Name
+
+ {{ $extruder->name }} +
+
+
+
Description
+
+ {{ $extruder->description }} +
+
+
+
Manufacturer
+
+ {{ App\Models\Manufacturer::find($extruder->manufacturer_id)->name }} +
+
+
+
Diameter
+
+ {{ $extruder->diameter }} mm +
+
+
+
Max Temperature
+
+ {{ $extruder->temp_max }} °C +
+
+
+
+
+ +
+ +
diff --git a/resources/views/livewire/manufacturer/index.blade.php b/resources/views/livewire/manufacturer/index.blade.php index 98af151..9729866 100644 --- a/resources/views/livewire/manufacturer/index.blade.php +++ b/resources/views/livewire/manufacturer/index.blade.php @@ -31,7 +31,7 @@

@if($manufacturer->website !== '') - {{ $manufacturer->website }} + {{ $manufacturer->website }} @endif

diff --git a/routes/web.php b/routes/web.php index 4e656f0..b5912ac 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ name('manufacturer.edit'); Route::get('manufacturer/{manufacturer}', \App\Livewire\Manufacturer\ShowManufacturer::class)->name('manufacturer.show'); + // Extruders + Route::get('extruder', Extruder::class)->name('extruder.index'); + Route::get('extruder/create', \App\Livewire\Extruder\CreateExtruder::class)->name('extruder.create'); + Route::get('extruder/{extruder}/edit', \App\Livewire\Extruder\EditExtruder::class)->name('extruder.edit'); + Route::get('extruder/{extruder}', \App\Livewire\Extruder\ShowExtruder::class)->name('extruder.show'); + // Orders Route::get('orders', Orders::class)->name('orders.index');