From 84e6b5ed62ea1c60c3a59efe218ace7dbd644342 Mon Sep 17 00:00:00 2001 From: Krzysztof Strzelecki Date: Sat, 7 Dec 2019 01:56:30 +0100 Subject: [PATCH] Dodanie edycji jednostki --- .../Controllers/fireStationController.php | 77 +++++++- resources/views/fireStationEdit.blade.php | 165 ++++++++++++++++++ resources/views/inc/addFireStation.blade.php | 4 +- resources/views/unit.blade.php | 2 +- routes/web.php | 2 + 5 files changed, 243 insertions(+), 7 deletions(-) create mode 100644 resources/views/fireStationEdit.blade.php diff --git a/app/Http/Controllers/fireStationController.php b/app/Http/Controllers/fireStationController.php index a97e451..cc5b8d2 100644 --- a/app/Http/Controllers/fireStationController.php +++ b/app/Http/Controllers/fireStationController.php @@ -15,14 +15,27 @@ class fireStationController extends Controller return view('unit', ["fireStation" => $fireStation]); } else{ $voivodeships = DB::table('wojewodztwa')->pluck("name","id"); - return view('unit',compact('voivodeships')); - //return view('unit'); + return view('unit',compact('voivodeships')); } } + + public function editForm() + { + if(auth()->user() != null && auth()->user()->fireStationID != null ) + { + $id = auth()->user()->fireStationID; + $fireStation = DB::table('firestations')->where("id", $id)->first(); + $voivodeships = DB::table('wojewodztwa')->pluck("name","id"); + return view('fireStationEdit', ["fireStation" => $fireStation], compact('voivodeships')); + } + else + return "Brak dostępu"; + } + public function store() { $this->validate(request(),[ - 'unitName' => 'required|min:3|max:45', + 'fireStationName' => 'required|min:3|max:45', 'number' => 'required|numeric', 'voivodeship' => 'required', 'county' => 'required', @@ -57,7 +70,7 @@ class fireStationController extends Controller $community = DB::table('gminy')->select('name')->where('id', $request -> community)->first(); $jednostka = fireStation::create([ - 'name' => $request -> unitName, + 'name' => $request -> fireStationName, 'number' => $request -> number, 'voivodeship' => $voivodeship -> name, 'county' => $county -> name, @@ -81,4 +94,60 @@ class fireStationController extends Controller return redirect()->to('/jednostka'); } + public function update(){ + $this->validate(request(),[ + 'fireStationName' => 'required|min:3|max:45', + 'number' => 'required|numeric', + 'voivodeship' => 'required', + 'county' => 'required', + 'community' => 'required', + 'postOffice' => 'required|min:3|max:45', + 'zipCode' => 'required|digits:5', + 'latitude' => ['required', 'regex:/^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/'], + 'longitude' => ['required', 'regex:/^[-]?((((1[0-7][0-9])|([0-9]?[0-9]))\.(\d+))|180(\.0+)?)$/'], + 'address' => 'required|min:3|max:45', + 'KRS' => 'required|digits:10', + 'NIP' => 'required|digits:10', + 'phoneNumber' => 'required|digits:9', + 'email' => 'required|email|unique:fireStations,email,'.auth()->user()->fireStationID, //wymagaj unikalnego adresu email ale pozwól na zachowanie starego adresu + ], + [ + 'required' => ':attribute jest wymagany(e).', + 'min' => ':attribute musi mieć przynajmniej :min znaki.', + 'max' => ':attribute musi mieć nie więcej niż :max znaków.', + 'numeric' => ':attribute może zawierać tylko cyfry.', + 'digits' => ':attribute musi składać się z :digits cyfr.', + 'unique' =>':attribute jest już zajęty.', + 'email' => 'Niepoprawny adres e-mail.', + 'latitude.regex' =>':attribute ma zakres od -90.0 do 90.0', + 'longitude.regex' =>':attribute ma zakres od -180.0 do 180.0' + ]); + + + $request = request(); + + $voivodeship = DB::table('wojewodztwa')->select('name')->where('id', $request -> voivodeship)->first(); + $county = DB::table('powiaty')->select('name')->where('id', $request -> county)->first(); + $community = DB::table('gminy')->select('name')->where('id', $request -> community)->first(); + + $fireStation = fireStation::find($request->fireStationID); + $fireStation-> name = $request-> fireStationName; + $fireStation-> number = $request-> number; + $fireStation-> voivodeship = $voivodeship-> name; + $fireStation-> county = $county-> name; + $fireStation-> community = $community-> name; + $fireStation-> postOffice = $request-> postOffice; + $fireStation-> zipCode = $request-> zipCode; + $fireStation-> address = $request-> address; + $fireStation-> latitude = $request-> latitude; + $fireStation-> longitude = $request-> longitude; + $fireStation-> KRS = $request-> KRS; + $fireStation-> NIP = $request-> NIP; + $fireStation-> phoneNumber = $request-> phoneNumber; + $fireStation-> email = $request-> email; + $fireStation-> changingID = auth()->user()->id; + $fireStation->save(); + + return redirect()->to('/jednostka');; + } } diff --git a/resources/views/fireStationEdit.blade.php b/resources/views/fireStationEdit.blade.php new file mode 100644 index 0000000..1359aca --- /dev/null +++ b/resources/views/fireStationEdit.blade.php @@ -0,0 +1,165 @@ +@extends('layout.app') + +@section('center-area') +@parent + + + Edycja jednostki straży pożarnej + + + + + + +

Edytuj jednostkę

+
+ {{ csrf_field() }} + +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+ +
+ @include('inc.formerrors') +
+ + +@stop diff --git a/resources/views/inc/addFireStation.blade.php b/resources/views/inc/addFireStation.blade.php index ce73335..1d04f60 100644 --- a/resources/views/inc/addFireStation.blade.php +++ b/resources/views/inc/addFireStation.blade.php @@ -4,7 +4,7 @@ @parent - Laravel Dependent Dropdown Tutorial With Example + Dodawanie jednostki straży pożarnej @@ -16,7 +16,7 @@ {{ csrf_field() }}
- +
diff --git a/resources/views/unit.blade.php b/resources/views/unit.blade.php index 4e13225..f3db799 100644 --- a/resources/views/unit.blade.php +++ b/resources/views/unit.blade.php @@ -4,7 +4,7 @@ @parent @stop diff --git a/routes/web.php b/routes/web.php index 0b6af29..b0ec811 100644 --- a/routes/web.php +++ b/routes/web.php @@ -52,6 +52,8 @@ Route::post('/strazacy/edit', 'fireFightersController@update'); Route::get('/jednostka', 'fireStationController@create'); Route::post('/jednostka', 'fireStationController@store'); +Route::get('/jednostka/edit', 'fireStationController@editForm'); +Route::post('/jednostka/edit', 'fireStationController@update'); Route::get('/jednostka/getcounties/{id}','DataController@getCounties'); Route::get('/jednostka/getcommunities/{id}','DataController@getCommunities');