diff --git a/skolehjem/app/Album.php b/skolehjem/app/Album.php
index e32fee6..0465646 100644
--- a/skolehjem/app/Album.php
+++ b/skolehjem/app/Album.php
@@ -1,11 +1,18 @@
validate([
- "name_first" => "required|max:255",
- "name_last" => "required|max:255",
+ "contactname" => "required|max:255",
+ "title" => "required|max:255",
"email" => "required|max:255",
"phone" => "required|max:255",
]);
diff --git a/skolehjem/app/Http/Controllers/EventController.php b/skolehjem/app/Http/Controllers/EventController.php
index 3497ae3..f487688 100644
--- a/skolehjem/app/Http/Controllers/EventController.php
+++ b/skolehjem/app/Http/Controllers/EventController.php
@@ -29,8 +29,11 @@ class EventController extends Controller
*/
public function index(Request $request)
{
+
$events = Event::query()->paginate($request->input("limit", 20));
+ //returns the function with events index page and a parameter of events.
+ //also Response::detect checks screen size to determine if user is on a computer or mobile.
return Response::detect("events.index", [ "events" => $events]);
}
@@ -41,6 +44,7 @@ class EventController extends Controller
*/
public function create()
{
+ //returns "create event" blade
return Response::detect("events.create");
}
@@ -58,6 +62,7 @@ class EventController extends Controller
"date" => "required"
]);
+ //creates a new Event model with the given parameter
$event = new Event($requestBody);
$saved = $event->save();
diff --git a/skolehjem/app/Http/Controllers/ResourceController.php b/skolehjem/app/Http/Controllers/ResourceController.php
index 0563f52..7fe829d 100644
--- a/skolehjem/app/Http/Controllers/ResourceController.php
+++ b/skolehjem/app/Http/Controllers/ResourceController.php
@@ -2,6 +2,8 @@
namespace App\Http\Controllers;
+use App\Resource;
+use App\ResourceExtension;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
@@ -23,9 +25,11 @@ class ResourceController extends Controller
*
* @return \Illuminate\Http\Response
*/
- public function index()
+ public function index(Request $request)
{
+ $resources = Resource::query()->paginate($request->input("limit", 20));
+ return Response::detect("resources.index", [ "resources" => $resources ]);
}
/**
@@ -35,7 +39,7 @@ class ResourceController extends Controller
*/
public function create()
{
- //
+ return Response::detect("resources.create");
}
/**
@@ -46,7 +50,33 @@ class ResourceController extends Controller
*/
public function store(Request $request)
{
- //
+// $data = $request->validate([
+// "" => ""
+// ]);
+
+// $resource = new Resource($data);
+
+ $file = $request->file("resource");
+
+
+
+ $resourceExtension = ResourceExtension::where("extension", "=", $file->extension())->first();
+
+ if($resourceExtension === null) {
+ //TODO: Create new resourceExtension!
+ }
+ else {
+
+ $resource = new Resource();
+
+ $resource->resourceExtension()->save($resourceExtension);
+
+
+
+ $resource->save();
+ }
+
+ return Response::detect("resources.store");
}
/**
diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php
index afb8e6f..7e3be4d 100644
--- a/skolehjem/app/Http/Controllers/UserController.php
+++ b/skolehjem/app/Http/Controllers/UserController.php
@@ -8,6 +8,7 @@ use Illuminate\Http\Response;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use Spatie\Permission\Models\Role;
@@ -77,6 +78,7 @@ class UserController extends Controller
// Log::debug("CREATED USER [NOT PERSISTED YET]");
+ $user->assignRole([ "R1", "R2" ]);
$user->save();
// Log::debug("SAVED USER");
@@ -151,19 +153,36 @@ class UserController extends Controller
// else if(Auth::user()->hasPermissionTo("user.edit")) {
$user = User::find($id);
- /** @var User $user */
- $user->update($data);
-
- if ($request->roles != null) {
+ if ($request->roles != null) { //You can only edit roles on the admin site, so if there is an input roles, then update user info and edit roles
+ /** @var User $user */
+ $user->update($data);
$user->roles()->detach();
$user->forgetCachedPermissions();
foreach ($request->roles as $role){
$user->assignRole($role);
}
+
+ //$user->save();
+ } else { // Else if you're not on the admin site (user site)
+ if ($request->input('password') != null) { // If you're editing the password
+ if ($request->input('password') != $request->input('confirmpassword')) { // If new password and new password confirm is not the same, go back.
+ return Response::detect("users.editpass");
+ } elseif (!Hash::check($request->input('oldpassword'), $user->password)) { // If the written current password and current password in DB is not the same, go back.
+ return Response::detect("users.editpass");
+ } else { // If new password and current password is the same AND current written and current DB password is the same. Then update and logout.
+ /** @var User $user */
+ $user->update($data);
+ Auth::logout();
+
+ return redirect()->route("users.login");
+ }
+ } else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user.
+ $user->update($data);
+ }
+
}
- $user->save();
// }
$users = User::query()->paginate(20);
diff --git a/skolehjem/app/Http/Controllers/WashingMachineController.php b/skolehjem/app/Http/Controllers/WashingMachineController.php
index 27d1cde..07b5eeb 100644
--- a/skolehjem/app/Http/Controllers/WashingMachineController.php
+++ b/skolehjem/app/Http/Controllers/WashingMachineController.php
@@ -2,10 +2,13 @@
namespace App\Http\Controllers;
+use Illuminate\Contracts\Foundation\Application;
+use Illuminate\Contracts\View\Factory;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\WashingMachine;
+use Illuminate\View\View;
class WashingMachineController extends Controller
{
@@ -24,11 +27,11 @@ class WashingMachineController extends Controller
* Display a listing of the resource.
*
* @param Request $request
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function index(Request $request)
{
- $machines = WashingMachine::query()->paginate($request->query("page", 1));
+ $machines = WashingMachine::query()->paginate($request->query("limit", 20));
return Response::detect("washing-machines.index", [ "machines" => $machines ]);
}
@@ -36,7 +39,7 @@ class WashingMachineController extends Controller
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function create()
{
@@ -47,25 +50,30 @@ class WashingMachineController extends Controller
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function store(Request $request)
{
$data = $request->validate([
- "time" => "required"
+ "name" => "required"
]);
$machine = new WashingMachine($data);
- $machine->save();
+ $saved = $machine->save();
- return Response::detect("washing-machines.store");
+ if(!$saved){
+ return Response::detect("washing-machines.store");
+ }else{
+ $machines = WashingMachine::query()->paginate($request->input("limit", 20));
+ return Response::detect("washing-machines.index", ['machines' => $machines]);
+ }
}
/**
* Display the specified resource.
*
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function show($id)
{
@@ -80,7 +88,7 @@ class WashingMachineController extends Controller
* Show the form for editing the specified resource.
*
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function edit($id)
{
@@ -96,36 +104,43 @@ class WashingMachineController extends Controller
*
* @param \Illuminate\Http\Request $request
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function update(Request $request, $id)
{
$data = $request->validate([
- "time" => "required"
+ "name" => "required"
]);
$machine = WashingMachine::find($id);
$machine->update($data);
- $machine->save();
+ $saved = $machine->save();
- return Response::detect("washing-machines.edit", [
- "machine" => $machine
- ]);
+ if(!$saved){
+ return Response::detect("washing-machines.update", [
+ "machine" => $machine
+ ]);
+ } else {
+ $machines = WashingMachine::query()->paginate($request->input("limit", 20));
+ return Response::detect("washing-machines.index", [
+ "machines" => $machines
+ ]);
+ }
}
/**
* Remove the specified resource from storage.
*
- * @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @param $id
+ * @return Response
*/
public function destroy($id)
{
$machine = WashingMachine::find($id);
$machine->delete();
- return Response::detect("washing-machines.destroy");
+ return redirect()->route("washing-machines.index");
}
}
diff --git a/skolehjem/app/Http/Controllers/WashingReservationController.php b/skolehjem/app/Http/Controllers/WashingReservationController.php
index 1063930..612ef94 100644
--- a/skolehjem/app/Http/Controllers/WashingReservationController.php
+++ b/skolehjem/app/Http/Controllers/WashingReservationController.php
@@ -2,10 +2,15 @@
namespace App\Http\Controllers;
+use App\WashingMachine;
+use Illuminate\Contracts\Foundation\Application;
+use Illuminate\Contracts\View\Factory;
+use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\WashingReservation;
+use Illuminate\View\View;
class WashingReservationController extends Controller
{
@@ -24,11 +29,11 @@ class WashingReservationController extends Controller
* Display a listing of the resource.
*
* @param Request $request
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function index(Request $request)
{
- $reservations = WashingReservation::query()->paginate($request->query("page", 1));
+ $reservations = WashingReservation::query()->paginate($request->query("limit", 20));
return Response::detect("washing-reservations.index", [ "reservations" => $reservations]);
}
@@ -36,36 +41,48 @@ class WashingReservationController extends Controller
/**
* Show the form for creating a new resource.
*
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function create()
{
- return Response::detect("washing-reservations.create");
+ $machines = WashingMachine::all();
+ return Response::detect("washing-reservations.create", [ 'machines' => $machines ]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function store(Request $request)
{
$data = $request->validate([
- "time" => "required"
+ "time" => "required",
+ "machine" => "required"
]);
$machineReservation = new WashingReservation($data);
$machineReservation->save();
- return Response::detect("washing-reservations.store");
+ $saved = $machineReservation->save();
+
+ if(!$saved){
+ return Response::detect("washing-reservations.store", [
+ "washing_reservation" => $machineReservation
+ ]);
+ }else{
+ $reservations = WashingReservation::query()->paginate($request->input("limit", 20));
+
+ return Response::detect("washing-reservations.index", [ "reservations" => $reservations]);
+ }
}
/**
* Display the specified resource.
*
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function show($id)
{
@@ -80,11 +97,14 @@ class WashingReservationController extends Controller
* Show the form for editing the specified resource.
*
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function edit($id)
{
- return Response::detect("washing-reservations.edit");
+ $reservation = WashingReservation::query()->find($id);
+ $machines = WashingMachine::all();
+
+ return Response::detect("washing-reservations.edit", ['washing_reservation' => $reservation, 'machines' => $machines ]);
}
/**
@@ -92,36 +112,45 @@ class WashingReservationController extends Controller
*
* @param \Illuminate\Http\Request $request
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return Application|Factory|View
*/
public function update(Request $request, $id)
{
$data = $request->validate([
- "time" => "required"
+ "time" => "required",
+ "machine" => "required"
]);
$machineReservation = WashingReservation::find($id);
$machineReservation->update($data);
- $machineReservation->save();
+ $saved = $machineReservation->save();
- return Response::detect("washing-reservations.edit", [
- "washingReservation" => $machineReservation
- ]);
+ if(!$saved){
+ return Response::detect("washing-reservations.update", [
+ "washing_reservation" => $machineReservation
+ ]);
+ }else{
+ $reservations = WashingReservation::query()->paginate($request->query("limit", 20));
+
+ return Response::detect("washing-reservations.index", [ "reservations" => $reservations]);
+ }
}
/**
* Remove the specified resource from storage.
*
* @param int $id
- * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+ * @return RedirectResponse
*/
public function destroy($id)
{
$machineReservation = WashingReservation::find($id);
$machineReservation->delete();
- return Response::detect("washing-reservations.delete");
+ $reservations = WashingReservation::query()->paginate( 20);
+
+ return redirect()->route("washing-reservations.index", [ "reservations" => $reservations]);
}
}
diff --git a/skolehjem/app/Http/Middleware/CheckAuth.php b/skolehjem/app/Http/Middleware/CheckAuth.php
index 2c5df81..7256fae 100644
--- a/skolehjem/app/Http/Middleware/CheckAuth.php
+++ b/skolehjem/app/Http/Middleware/CheckAuth.php
@@ -10,9 +10,11 @@ class CheckAuth
/**
* Handle an incoming request.
*
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
+ * @param \Illuminate\Http\Request $request
+ * @param \Closure $next
+ * @param $permissions
* @return mixed
+ * @throws \Exception
*/
public function handle($request, Closure $next, $permissions)
{
diff --git a/skolehjem/app/MenuPlan.php b/skolehjem/app/MenuPlan.php
index cef6c24..77dc688 100644
--- a/skolehjem/app/MenuPlan.php
+++ b/skolehjem/app/MenuPlan.php
@@ -1,11 +1,19 @@
belongsTo("App\ResourceExtension");
+ }
+
+ public function resourceCategory() {
+ return $this->hasOneThrough("App\ResourceCategory", "App\ResourceExtension");
+ }
}
diff --git a/skolehjem/app/ResourceCategory.php b/skolehjem/app/ResourceCategory.php
index 787be29..b664f08 100644
--- a/skolehjem/app/ResourceCategory.php
+++ b/skolehjem/app/ResourceCategory.php
@@ -1,10 +1,18 @@
hasMany("App\ResourceExtension");
+ }
}
diff --git a/skolehjem/app/ResourceExtension.php b/skolehjem/app/ResourceExtension.php
index 1ee4ab0..8936f7f 100644
--- a/skolehjem/app/ResourceExtension.php
+++ b/skolehjem/app/ResourceExtension.php
@@ -1,10 +1,18 @@
hasMany("App\Resource");
+ }
}
diff --git a/skolehjem/app/User.php b/skolehjem/app/User.php
index ac8b735..0db07bf 100644
--- a/skolehjem/app/User.php
+++ b/skolehjem/app/User.php
@@ -1,7 +1,12 @@
id();
$table->timestamp("time");
$table->timestamps();
+ $table->unsignedBigInteger('machine');
+ $table->foreign("machine")->references('id')->on('washing_machines');
});
}
diff --git a/skolehjem/database/migrations/2020_06_29_065007_create_contact.php b/skolehjem/database/migrations/2020_06_29_065007_create_contact.php
index 233c7e3..0c01880 100644
--- a/skolehjem/database/migrations/2020_06_29_065007_create_contact.php
+++ b/skolehjem/database/migrations/2020_06_29_065007_create_contact.php
@@ -16,8 +16,8 @@ class CreateContact extends Migration
Schema::create('contacts', function (Blueprint $table) {
$table->id();
$table->timestamps();
- $table->string('name_first', 255);
- $table->string('name_last', 255);
+ $table->string('contactname', 255);
+ $table->string('title', 255);
$table->string('email', 255);
$table->integer('phone');
//$table->unique('email');
diff --git a/skolehjem/database/migrations/2020_07_01_061911_create_resource_category.php b/skolehjem/database/migrations/2020_07_01_061911_create_resource_category.php
new file mode 100644
index 0000000..4d797bb
--- /dev/null
+++ b/skolehjem/database/migrations/2020_07_01_061911_create_resource_category.php
@@ -0,0 +1,34 @@
+id();
+ $table->string("name", 60)->unique();
+ $table->text("description");
+ $table->string("slug", 255)->unique();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('resource_categories');
+ }
+}
diff --git a/skolehjem/database/migrations/2020_06_30_092130_create_resource_extensions.php b/skolehjem/database/migrations/2020_07_01_062112_create_resource_extension.php
similarity index 69%
rename from skolehjem/database/migrations/2020_06_30_092130_create_resource_extensions.php
rename to skolehjem/database/migrations/2020_07_01_062112_create_resource_extension.php
index 3f1abb5..ddba508 100644
--- a/skolehjem/database/migrations/2020_06_30_092130_create_resource_extensions.php
+++ b/skolehjem/database/migrations/2020_07_01_062112_create_resource_extension.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateResourceExtensions extends Migration
+class CreateResourceExtension extends Migration
{
/**
* Run the migrations.
@@ -15,9 +15,12 @@ class CreateResourceExtensions extends Migration
{
Schema::create('resource_extensions', function (Blueprint $table) {
$table->id();
- $table->string("extension")->unique();
+ $table->string("extension", 60)->unique();
$table->text("description");
+ $table->unsignedInteger("resource_category_id");
$table->timestamps();
+
+ $table->foreign("resource_category_id")->references("id")->on("resource_categories");
});
}
diff --git a/skolehjem/database/migrations/2020_07_01_062544_create_resource.php b/skolehjem/database/migrations/2020_07_01_062544_create_resource.php
new file mode 100644
index 0000000..0176e1b
--- /dev/null
+++ b/skolehjem/database/migrations/2020_07_01_062544_create_resource.php
@@ -0,0 +1,35 @@
+id();
+ $table->string("filename")->unique();
+ $table->unsignedInteger("extension_id");
+ $table->timestamps();
+
+ $table->foreign("extension_id")->references("id")->on("resource_extensions");
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('resources');
+ }
+}
diff --git a/skolehjem/database/seeds/PermissionSeeder.php b/skolehjem/database/seeds/PermissionSeeder.php
index 53de434..befed63 100644
--- a/skolehjem/database/seeds/PermissionSeeder.php
+++ b/skolehjem/database/seeds/PermissionSeeder.php
@@ -17,6 +17,7 @@ class PermissionSeeder extends Seeder
/**
* The USER specific permissions
*/
+ "user.create" => "Creation of new user",
"user.list" => "Access to list the users.",
"user.show" => "Shows another user profile.",
"user.edit" => "Allows editing of other users.",
diff --git a/skolehjem/database/seeds/UserSeeder.php b/skolehjem/database/seeds/UserSeeder.php
index 39325cf..e723546 100644
--- a/skolehjem/database/seeds/UserSeeder.php
+++ b/skolehjem/database/seeds/UserSeeder.php
@@ -19,13 +19,13 @@ class UserSeeder extends Seeder
// } catch (Exception $e) {
// }
- Log::debug("YEET");
+
- if(User::where("name_first", "admin"))
+ /*if(User::where("name_first", "admin"))
{
return;
- }
+ }*/
diff --git a/skolehjem/resources/views/admin/contacts/create.blade.php b/skolehjem/resources/views/admin/contacts/create.blade.php
index f9f485e..c64fefd 100644
--- a/skolehjem/resources/views/admin/contacts/create.blade.php
+++ b/skolehjem/resources/views/admin/contacts/create.blade.php
@@ -13,10 +13,10 @@
Opret Kontakt:
diff --git a/skolehjem/resources/views/admin/washing-reservations/edit.blade.php b/skolehjem/resources/views/admin/washing-reservations/edit.blade.php
index 66e0edb..c1a2d98 100644
--- a/skolehjem/resources/views/admin/washing-reservations/edit.blade.php
+++ b/skolehjem/resources/views/admin/washing-reservations/edit.blade.php
@@ -6,22 +6,26 @@
@endsection
@section("path")
- Rediger Vaske Reservationer /
+ Rediger Vaske Reservationer /
@endsection
@section("content")
Rediger Booking:
-
diff --git a/skolehjem/resources/views/admin/washing-reservations/index.blade.php b/skolehjem/resources/views/admin/washing-reservations/index.blade.php
index 3fbdf89..b26f834 100644
--- a/skolehjem/resources/views/admin/washing-reservations/index.blade.php
+++ b/skolehjem/resources/views/admin/washing-reservations/index.blade.php
@@ -21,21 +21,17 @@
- Fornavn |
- Efternavn |
- Tlf nr |
Vaskemaskine |
+ Time |
 }}) |
 }}) |
@foreach($reservations as $reservation)
- {Fornavn} |
- {Efternavn} |
- {Tlf Nr} |
- {Vaskemaskine Nr.} |
-  }}) |
- |