Renamed and reorganized Livewire components, namespaces, and views for improved file structure and clarity. Introduced filaments.show and filaments.edit routes. Updated database migrations and navigation routes accordingly. Upgraded dependencies in composer.

This commit is contained in:
2025-12-13 03:10:31 +01:00
parent 85b97ed3b1
commit 7e79d1d034
35 changed files with 1319 additions and 736 deletions
@@ -1,7 +1,8 @@
<?php
namespace App\Livewire\Filament;
namespace App\Livewire\Buildplate;
use App\Models\Buildplate as BuildplateModel;
use App\Models\Manufacturer as Manufacturer;
use Flux\Flux;
use Illuminate\Support\Facades\Auth;
@@ -9,7 +10,6 @@ use Livewire\Attributes\Title;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Buildplate as BuildplateModel;
#[title('Buildplates')]
class Buildplate extends Component
@@ -125,7 +125,7 @@ class Buildplate extends Component
public function render()
{
return view('livewire.filament.buildplate', [
return view('livewire.buildplate.index', [
'buildplates' => BuildplateModel::search('name', $this->search)->paginate(20),
'manufacturers' => Manufacturer::all(),
]);
@@ -1,15 +1,14 @@
<?php
namespace App\Livewire\Filament;
use Livewire\WithPagination;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\Attributes\title;
use Illuminate\Support\Facades\Auth;
use Flux\Flux;
namespace App\Livewire\Color;
use App\Models\Color as ColorModel;
use Flux\Flux;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\WithPagination;
#[title('Colors')]
class Color extends Component
@@ -30,14 +29,14 @@ class Color extends Component
public $editid = '';
public $deleteid = '';
public function create() {
@Auth::check();
// Validate
$this->validate();
$this->validate();
$color = new ColorModel();
$color->name = $this->name;
@@ -63,20 +62,20 @@ class Color extends Component
$this->name = $color->name;
$this->hex = $color->hex;
Flux::modal('editModal')->show();
}
public function save($editid) {
@Auth::check();
$color = ColorModel::findOrFail($editid);
$color->name = $this->name;
$color->hex = $this->hex;
$color->save();
session()->flash('status', 'Color successfully updated.');
Flux::modal('editModal')->close();
}
@@ -112,7 +111,7 @@ class Color extends Component
}
public function render()
{
return view('livewire.filament.color', [
return view('livewire.color.index', [
'colors' => ColorModel::search('name', $this->search)->paginate(20)
]);
}
+1 -1
View File
@@ -12,7 +12,7 @@ class Dashboard extends Component
public function render()
{
return view('livewire.dashboard', [
'manufacturers' => Manufacturer::all()->sortBy('filament_count')->reverse()
'manufacturer' => Manufacturer::all()->sortBy('filament_count')->reverse()
]);
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace App\Livewire\Filament;
use Livewire\Component;
use App\Models\Filament as Model;
use App\Models\Manufacturer;
use Livewire\WithPagination;
use Livewire\Attributes\title;
#[title('Show Filament')]
class CreateFilament extends Component
{
public Model $filament ;
public function back(){
return redirect()->route('filaments.index');
}
public function render()
{
return view('livewire.filament.edit-filament', [
'manufacturers' => Manufacturer::all(),
'colors' => \App\Models\Color::all(),
'types' => \App\Models\FilamentType::all()
]);
}
}
+37
View File
@@ -0,0 +1,37 @@
<?php
namespace App\Livewire\Filament;
use Livewire\Component;
use App\Models\Filament as Model;
use App\Models\Manufacturer;
use Livewire\WithPagination;
use Livewire\Attributes\title;
#[title('Show Filament')]
class EditFilament extends Component
{
public Model $filament ;
public function back(){
return redirect()->route('filaments.index');
}
public function show($id){
return redirect()->route('filaments.show', $id);
}
public function mount(Model $filament){
$this->filament = $filament;
}
public function render()
{
return view('livewire.filament.edit', [
'manufacturers' => Manufacturer::all(),
'colors' => \App\Models\Color::all(),
'types' => \App\Models\FilamentType::all()
]);
}
}
+10 -22
View File
@@ -63,27 +63,6 @@ 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;
$filament->finish = $this->finish;
$this->price = $filament->price;
$this->stock = $filament->stock;
Flux::modal('editModal')->show();
}
public function save($editid) {
@Auth::check();
@@ -144,9 +123,18 @@ class Filament extends Component
public function resetInputFields() {
$this->reset(['name', 'description', 'diameter', 'color_id', 'type_id', 'manufacturer_id', 'weight', 'price', 'finish', 'deleteid', 'editid']);
}
public function show($id){
return redirect()->route('filaments.show', $id);
}
public function edit($id){
return redirect()->route('filaments.edit', $id);
}
public function render()
{
return view('livewire.filament.filament', [
return view('livewire.filament.index', [
'filaments' => Model::search('name', $this->search)->paginate(50),
'colors' => Color::all(),
'manufacturers' => Manufacturer::all(),
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace App\Livewire\Filament;
use Livewire\Component;
use App\Models\Filament as Model;
use Livewire\WithPagination;
use Livewire\Attributes\title;
#[title('Show Filament')]
class ShowFilament extends Component
{
public Model $filament ;
public function back(){
return redirect()->route('filaments.index');
}
public function edit($id){
return redirect()->route('filaments.edit', $id);
}
public function mount(Model $filament){
$this->filament = $filament;
}
public function render()
{
return view('livewire.filament.show-filament', [
]);
}
}
-116
View File
@@ -1,116 +0,0 @@
<?php
namespace App\Livewire\Filament;
use Livewire\Component;
use Livewire\Attributes\title;
use Livewire\WithPagination;
use Livewire\Attributes\Validate;
use Illuminate\Support\Facades\Auth;
use App\Models\FilamentType;
use Flux\Flux;
#[title('Types')]
class Type extends Component
{
use WithPagination;
// Validation
#[Validate('required')]
public $name = '';
public $description = '';
public $search ='';
public $editid = '';
public $deleteid = '';
public $amount = '0';
public function create() {
@Auth::check();
// Validate
$this->validate();
$type = new FilamentType();
$type->name = $this->name;
$type->description = $this->description;
$type->save();
// Clear the form
$this->resetInputFields();
// Close the modal
Flux::modal('createModal')->close();
}
public function edit($typeid) {
@Auth::check();
$editid = $typeid;
$this->editid = $editid;
$type =FilamentType::findOrFail($editid);
$this->name = $type->name;
$this->description = $type->description;
Flux::modal('editModal')->show();
}
public function save($editid) {
@Auth::check();
$type = FilamentType::findOrFail($editid);
$type->name = $this->name;
$type->description = $this->description;
$type->save();
$this->resetInputFields();
Flux::modal('editModal')->close();
}
public function deleteModal($typeid) {
@Auth::check();
$deleteid = $typeid;
$this->deleteid = $deleteid;
$type = FilamentType::findOrFail($deleteid);
$this->name = $type->name;
$this->description = $type->description;
Flux::modal('deleteModal')->show();
}
public function delete($deleteid) {
@Auth::check();
$type = FilamentType::findOrFail($deleteid)->delete();
$this->deleteid = $deleteid;
Flux::modal('deleteModal')->close();
// Clear the form
$this->resetInputFields();
}
public function cancel() {
$this->resetInputFields();
Flux::modals()->close();
}
public function resetInputFields() {
$this->reset(['name', 'description', 'deleteid', 'editid']);
}
public function render()
{
return view('livewire.filament.type', [
'types' => FilamentType::search('name', $this->search)->paginate(10)
]);
}
}
@@ -1,15 +1,14 @@
<?php
namespace App\Livewire\Filament;
namespace App\Livewire\Manufacturer;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Manufacturer as Model;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Flux\Flux;
use Illuminate\Support\Facades\Auth;
use App\Models\Filament;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\WithPagination;
#[title('Manufacturer List')]
class Manufacturer extends Component{
@@ -107,7 +106,7 @@ class Manufacturer extends Component{
public function render()
{
return view('livewire.filament.manufacturer', [
return view('livewire.manufacturer.index', [
'manufacturers' => Model::search('name', $this->search)->paginate(10)
]);
}
+49
View File
@@ -0,0 +1,49 @@
<?php
namespace App\Livewire\Type;
use App\Models\FilamentType;
use Flux\Flux;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\WithPagination;
#[title('Types')]
class CreateType extends Component
{
use WithPagination;
// Validation
#[Validate('required')]
public $name = '';
public $description = '';
public $search ='';
public function save() {
@Auth::check();
// Validate
$this->validate();
$type = new FilamentType();
$type->name = $this->name;
$type->description = $this->description;
$type->save();
return redirect()->route('type.index');
}
public function cancel(){
return redirect()->route('type.index');
}
public function render()
{
return view('livewire.type.create', [
]);
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace App\Livewire\Type;
use App\Models\FilamentType;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Livewire\Component;
#[title('Types')]
class EditType extends Component
{
public FilamentType $type;
// Validation
#[Validate('required')]
public function save() {
$this->validate([
'type.name' => ['required', 'string', 'max:255'],
'type.description' => ['nullable', 'string'],
]);
$this->type->save();
return redirect()->route('type.show', $this->type->id );
}
public function cancel(){
return redirect()->route('type.index');
}
public function mount(FilamentType $type){
$this->type = $type;
}
public function render()
{
return view('livewire.type.edit', [
]);
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Livewire\Type;
use App\Models\FilamentType;
use Flux\Flux;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\WithPagination;
#[title('Types')]
class ShowType extends Component
{
public FilamentType $type;
public function back(){
return redirect()->route('type.index');
}
public function edit($id){
return redirect()->route('type.edit', $id);
}
public function mount(FilamentType $type){
$this->type = $type;
}
public function render()
{
return view('livewire.type.show', [
]);
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Livewire\Type;
use App\Models\FilamentType;
use Flux\Flux;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\title;
use Livewire\Attributes\Validate;
use Livewire\Component;
use Livewire\WithPagination;
#[title('Types')]
class Type extends Component
{
use WithPagination;
public $search = '';
// Validation
#[Validate('required')]
public function create() {
@Auth::check();
return redirect()->route('type.create');
}
public function edit($id){
return redirect()->route('type.edit', $id);
}
public function show($id){
return redirect()->route('type.show', $id);
}
public function delete($id){
@Auth::check();
FilamentType::destroy($id);
}
public function render()
{
return view('livewire.type.index', [
'types' => FilamentType::search('name', $this->search)->paginate(10)
]);
}
}
+1 -1
View File
@@ -21,7 +21,7 @@ class Color extends Model
return $this->hasMany(Filament::class);
}
// Color has many filament types
// Color has many filament type
public function filamentTypes()
{
return $this->hasMany(FilamentType::class);
+1 -1
View File
@@ -23,7 +23,7 @@ class Manufacturer extends Model
return $this->hasMany(Filament::class);
}
// Manufacturer has many filament types
// Manufacturer has many filament type
public function filamentTypes()
{
return $this->hasMany(FilamentType::class);