From 8a9d54a68c032ed8996cd17cf51205d2c0dcd095 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Sat, 11 Feb 2023 15:05:24 +0100 Subject: [PATCH] add new city from frontend --- app/Http/Livewire/City/Form/CityForm.php | 49 ++++++++++++++ app/Http/Livewire/Tables/CityTable.php | 9 ++- .../cities/areas/toolbar-left-end.blade.php | 8 +++ .../livewire/city/form/city-form.blade.php | 66 +++++++++++++++++++ resources/views/navigation-menu.blade.php | 9 --- routes/web.php | 17 ++++- 6 files changed, 147 insertions(+), 11 deletions(-) create mode 100644 app/Http/Livewire/City/Form/CityForm.php create mode 100644 resources/views/columns/cities/areas/toolbar-left-end.blade.php create mode 100644 resources/views/livewire/city/form/city-form.blade.php 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 @@ +
+ + + + {{ __('New City') }} + + +
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 @@ +
+ +
+

{{ __('City') }}

+
+
+ + + {{ __('Back') }} + +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + {{ __('Save') }} + + + +
+
+
+
diff --git a/resources/views/navigation-menu.blade.php b/resources/views/navigation-menu.blade.php index 77d2ac17..0cef884d 100644 --- a/resources/views/navigation-menu.blade.php +++ b/resources/views/navigation-menu.blade.php @@ -13,15 +13,6 @@