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
+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)
]);
}
}