diff --git a/app/Http/Livewire/City/Form/CityForm.php b/app/Http/Livewire/City/Form/CityForm.php new file mode 100644 index 00000000..f8bdf133 --- /dev/null +++ b/app/Http/Livewire/City/Form/CityForm.php @@ -0,0 +1,49 @@ + [ + 'except' => null, + ], + ]; + + public function rules() + { + return [ + 'city.country_id' => 'required', + 'city.name' => 'required|string', + 'city.longitude' => 'required', + 'city.latitude' => 'required', + ]; + } + + public function mount() + { + if (!$this->city) { + $this->city = new City(); + } + } + + public function save() + { + $this->validate(); + $this->city->save(); + + return redirect($this->fromUrl); + } + + public function render() + { + return view('livewire.city.form.city-form'); + } +} diff --git a/app/Http/Livewire/Tables/CityTable.php b/app/Http/Livewire/Tables/CityTable.php index bc995c5a..ca870c38 100644 --- a/app/Http/Livewire/Tables/CityTable.php +++ b/app/Http/Livewire/Tables/CityTable.php @@ -35,7 +35,14 @@ class CityTable extends DataTableComponent ]; }) ->setColumnSelectStatus(false) - ->setPerPage(10); + ->setPerPage(10) + ->setConfigurableAreas([ + 'toolbar-left-end' => [ + 'columns.cities.areas.toolbar-left-end', [ + 'country' => $this->country, + ], + ], + ]); } public function columns(): array diff --git a/resources/views/columns/cities/areas/toolbar-left-end.blade.php b/resources/views/columns/cities/areas/toolbar-left-end.blade.php new file mode 100644 index 00000000..ec9727dd --- /dev/null +++ b/resources/views/columns/cities/areas/toolbar-left-end.blade.php @@ -0,0 +1,8 @@ +
diff --git a/resources/views/livewire/city/form/city-form.blade.php b/resources/views/livewire/city/form/city-form.blade.php new file mode 100644 index 00000000..ae9fab26 --- /dev/null +++ b/resources/views/livewire/city/form/city-form.blade.php @@ -0,0 +1,66 @@ +