diff --git a/skolehjem/app/Http/Controllers/StaffController.php b/skolehjem/app/Http/Controllers/StaffController.php new file mode 100644 index 0000000..38b2821 --- /dev/null +++ b/skolehjem/app/Http/Controllers/StaffController.php @@ -0,0 +1,203 @@ +middleware([ "auth" ])->only("logout"); +// $this->middleware([ "guest" ])->only("login"); +// +// $this->middleware([ "permission:user.list", "role:admin" ])->only("index"); +// $this->middleware([ "permission:user.show", "role:admin" ])->only("show"); +// $this->middleware([ "permission:user.edit", "role:admin" ])->only([ "edit", "update" ]); +// $this->middleware([ "permission:user.delete", "role:admin" ])->only("delete"); + } + + /** + * Display a listing of the resource. + * + * @param Request $request + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function index(Request $request) + { + $staff = Staff::query()->paginate($request->query("page", 20)); + + return Response::detect("staff.index", [ "staff" => $staff ]); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function create() + { + return Response::detect("staff.create"); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function store(Request $request) + { + Log::debug("STORE FUNCTION"); + + $data = $request->validate([ + "name_first" => "required|max:255", + "name_last" => "required|max:255", + "email" => "required|email|unique:users", + "password" => "required|max:60", + "phone" => "required|unique:users", + + ]); + + Log::debug("FINISHED VALIDATION?"); + + $staff = new Staff($data); + + Log::debug("CREATED USER [NOT PERSISTED YET]"); + + $staff->save(); + + Log::debug("SAVED STAFF"); + + return view("staff.store"); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function show($id) + { + $staff = Staff::find($id); + + return Response::detect("staff.show", [ + "staff" => $staff + ]); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function edit($id) + { + $staff = Staff::find($id); + + return Response::detect("staff.edit", [ + "staff" => $staff + ]); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function update(Request $request, $id) + { + $data = $request->all(); + +// $data = $request->validate([ +// "name_first" => "max:255", +// "name_last" => "max:255", +// "email" => "email|unique:users", +// "password" => "max:60", +// "phone" => "unique:users", +// ]); + + // Validates if the user is updating itself or another user. +// if($id === Auth::id()) { +// $user = Auth::user(); +// +// $user->update($data); +// +// $user->save(); +// return Response::detect("users.edit", [ +// "user" => $user +// ]); +// } + + //TODO: Implement when security's ready!!! +// else if(Auth::user()->hasPermissionTo("user.edit")) { + $staff = Staff::find($id); + + /** @var Staff $staff */ + $staff->update($data); + + $staff->save(); +// } + + $staffs = Staff::query()->paginate(20); + + return Response::detect("users.index", [ + "staffs" => $staffs + ]); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function destroy($id) + { +// if($id === Auth::id()) { +// $user = Auth::user(); +// $user->delete(); +// } +// else if(Auth::user()->hasPermissionTo("user.delete")) { + $staff = Staff::find($id); + + $staff->delete(); +// } + + return redirect()->route("staff.index"); + } + + /*******************************************/ + /* Authentication */ + /*******************************************/ + + public function showLogin() { + return view("admin.staff.login"); + } + + public function login(Request $request) { + $data = $request->only("email", "password"); + + if(Auth::attempt($data)) { + //TODO: Implement home? + return redirect()->route("staff.index"); + } + + return redirect()->back(303); + } + + public function logout(Request $request) { + Auth::logout(); + + return redirect()->to("/"); + } +} diff --git a/skolehjem/app/Staff.php b/skolehjem/app/Staff.php new file mode 100644 index 0000000..23fc501 --- /dev/null +++ b/skolehjem/app/Staff.php @@ -0,0 +1,10 @@ +Opret Personal / +@endsection + +@section("content") +

Opret Personal:

+
+ @csrf + + + + + + + + + + + + + +
+@endsection diff --git a/skolehjem/resources/views/admin/staff/delete.blade.php b/skolehjem/resources/views/admin/staff/delete.blade.php new file mode 100644 index 0000000..4c3f81e --- /dev/null +++ b/skolehjem/resources/views/admin/staff/delete.blade.php @@ -0,0 +1,13 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Personal - Fjern +@endsection + +@section("path") + Fjern Personal / +@endsection + +@section("content") +@endsection diff --git a/skolehjem/resources/views/admin/staff/edit.blade.php b/skolehjem/resources/views/admin/staff/edit.blade.php new file mode 100644 index 0000000..fe8271d --- /dev/null +++ b/skolehjem/resources/views/admin/staff/edit.blade.php @@ -0,0 +1,31 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Personal - Rediger +@endsection + +@section("path") + Rediger Personal / +@endsection + +@section("content") +

Rediger Personal:

+
$staff]) }}"> + @csrf + @method("put") + + + + + + + + + + + + + +
+@endsection diff --git a/skolehjem/resources/views/admin/staff/index.blade.php b/skolehjem/resources/views/admin/staff/index.blade.php new file mode 100644 index 0000000..e206090 --- /dev/null +++ b/skolehjem/resources/views/admin/staff/index.blade.php @@ -0,0 +1,42 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Personal - Vis +@endsection + +@section("path") + Vis Personal / +@endsection + +@section("content") + + + + + + + + + + @foreach($staffs as $staff) + + + + + + + + + @endforeach +
FornavnEfternavnEmailTlf nrUpdateDelete
{{ $staff->name_first }}{{ $staff->name_last }}{{ $staff->email }}{{ $staff->phone }} $staff->id ]) }}">Update +
$staff ]) }}" class="w-100"> + @csrf + @method("delete") + + +
+
+ + {{ $staff->links() }} +@endsection diff --git a/skolehjem/resources/views/admin/staff/login.blade.php b/skolehjem/resources/views/admin/staff/login.blade.php new file mode 100644 index 0000000..5accdac --- /dev/null +++ b/skolehjem/resources/views/admin/staff/login.blade.php @@ -0,0 +1,27 @@ +@extends("app.layout.base") + +@section("title") + Login +@endsection + +@section("content") +
+
+ Syddansk Erhvervsskole +
+
+ @csrf + + + + + +
+ Forgot password? +
+@endsection diff --git a/skolehjem/resources/views/admin/staff/logout.blade.php b/skolehjem/resources/views/admin/staff/logout.blade.php new file mode 100644 index 0000000..d364bbd --- /dev/null +++ b/skolehjem/resources/views/admin/staff/logout.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Home - Logud +@endsection + +@section("path") + Logud / +@endsection + +@section("content") + +@endsection diff --git a/skolehjem/resources/views/admin/staff/show.blade.php b/skolehjem/resources/views/admin/staff/show.blade.php new file mode 100644 index 0000000..5563064 --- /dev/null +++ b/skolehjem/resources/views/admin/staff/show.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Personal - Vis +@endsection + +@section("path") + Vis Personal / +@endsection + +@section("content") + show.blade.php +@endsection diff --git a/skolehjem/resources/views/admin/staff/store.blade.php b/skolehjem/resources/views/admin/staff/store.blade.php new file mode 100644 index 0000000..43ae210 --- /dev/null +++ b/skolehjem/resources/views/admin/staff/store.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Personal - Opret +@endsection + +@section("path") + Opret Personal / +@endsection + +@section("content") + Personal blev (ikke) oprettet. +@endsection diff --git a/skolehjem/resources/views/admin/staff/update.blade.php b/skolehjem/resources/views/admin/staff/update.blade.php new file mode 100644 index 0000000..7f7a25f --- /dev/null +++ b/skolehjem/resources/views/admin/staff/update.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Personal - Rediger +@endsection + +@section("path") + Rediger Personal / +@endsection + +@section("content") + Din Personal blev (ikke) redigeret. +@endsection diff --git a/skolehjem/routes/web.php b/skolehjem/routes/web.php index 260a3f8..ef7c2dd 100644 --- a/skolehjem/routes/web.php +++ b/skolehjem/routes/web.php @@ -29,6 +29,7 @@ Route::get("/logout", "UserController@logout")->name("users.logout"); Route::resource("contacts", "ContactController"); Route::resource("menu-plans", "MenuPlanController"); Route::resource("users", "UserController"); +Route::resource("staff", "StaffController"); Route::resource("events", "EventController"); Route::resource("washing-machines", "WashingMachineController"); Route::resource("washing-reservations", "WashingReservationController");