This commit is contained in:
2020-08-04 13:21:39 +02:00
85 changed files with 1502 additions and 87 deletions
@@ -58,7 +58,7 @@ class EventController extends Controller
public function store(Request $request)
{
$requestBody = $request->validate([
"name" => "required|unique:events|max:255",
"name" => "required|max:255",
"description" => "required|max:255",
"date" => "required"
]);
@@ -66,11 +66,12 @@ class EventController extends Controller
//creates a new Event model with the given parameter
$event = new Event($requestBody);
$saved = $event->save();
$allEvents = Event::query()->where('name', '=', $request->name)->get();
if(!$saved){
return Response::detect("events.store");
}else{
if(count($allEvents) > 0)
return redirect()->route("events.index", ['events' => $event])->with('EventNameExists', '<p><b>Der findes allerede et event med det navn!</b></p>');
else {
$event->save();
$event = Event::query()->paginate($request->input("limit", 20));
return redirect()->route("events.index", ['events' => $event]);
}
@@ -129,14 +130,17 @@ class EventController extends Controller
$data = $request->all();
$event = Event::find($id);
$event->update($data);
$saved = $event->save();
if(!$saved){
return Response::detect("events.update", [ "event" => $event]);
$allEvents = Event::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get();
if(count($allEvents) > 0){
return redirect()->route("events.index", ['events' => $event])->with('EventNameExists', '<p><b>Der findes allerede et event med det navn!</b></p>');
}else{
$event->update($data);
$event->save();
$event = Event::query()->paginate($request->input("limit", 20));
return Response::detect("events.index", ['events' => $event]);
return redirect()->route("events.index", ['events' => $event]);
}
}
@@ -64,13 +64,15 @@ class MenuPlanController extends Controller
]);
$menuPlans = new MenuPlan($requestMenuPlanCreate);
$saved = $menuPlans->save();
if(!$saved){
return Response::detect("menuplans.store");
}else{
$allMenuPlans = MenuPlan::query()->where('week', '=', $request->week)->get();
if(count($allMenuPlans) > 0)
return redirect()->route("menu-plans.index")->with('WeekExists', '<p><b>Der findes allerede en menuplan for den uge!</b></p>');
else {
$menuPlans->save();
$menuPlans = MenuPlan::query()->paginate($request->input("limit", 20));
return Response::detect("menuplans.index", ['menuPlans' => $menuPlans]);
return redirect()->route("menu-plans.index", ['menuPlans' => $menuPlans]);
}
}
@@ -110,14 +112,17 @@ class MenuPlanController extends Controller
//FORCED UPDATE
$menuplan = MenuPlan::find($id);
$menuplan->update($data);
$saved = $menuplan->save();
if(!$saved){
return Response::detect("menuplans.update", [ "menuplan" => $menuplan ]);
$allMenuPlans = MenuPlan::query()->where('week', '=', $request->week)->where('id', '!=', $id)->get();
if(count($allMenuPlans) > 0){
return redirect()->route("menu-plans.index")->with('WeekExists', '<p><b>Der findes allerede en menuplan for den uge!</b></p>');
}else{
$menuplan->update($data);
$menuplan->save();
$menuPlans = MenuPlan::query()->paginate($request->input("limit", 20));
return Response::detect("menuplans.index", ['menuPlans' => $menuPlans]);
return redirect()->route("menu-plans.index", ['menuPlans' => $menuPlans]);
}
}
@@ -57,13 +57,16 @@ class rolesController extends Controller
]);
$role = new Role($requestRole);
$saved = $role->save();
if(!$saved){
return Response::detect("roles.store");
}else{
$allRoles = Role::query()->where('name', '=', $request->name)->get();
// If there already is a role with that name, then don't create
if(count($allRoles) > 0)
return redirect()->route("roles.store")->with('RoleNameExists', '<p><b>Der findes allerede en rolle med det navn!</b></p>');
else { // Else - Create it
$role->save();
$roles = Role::query()->paginate($request->input("limit", 20));
return Response::detect("roles.index", ['roles' => $roles]);
return redirect()->route("roles.index", ['roles' => $roles]);
}
@@ -103,14 +106,16 @@ class rolesController extends Controller
{
$data = $request->all();
$role = Role::find($id);
$role->update($data);
$saved = $role->save();
if(!$saved){
return Response::detect("roles.update", [ "role" => $role ]);
$allRoles = Role::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get();
if(count($allRoles) > 0){
return redirect()->route("roles.index", [ "role" => $role ])->with('RoleNameExists', '<p><b>Der findes allerede en rolle med det navn!</b></p>');
}else{
$role->update($data);
$role->save();
$roles = Role::query()->paginate($request->input("limit", 20));
return Response::detect("roles.index", ['roles' => $roles]);
return redirect()->route("roles.index", ['roles' => $roles]);
}
}
@@ -67,14 +67,20 @@ class UserController extends Controller
$data = $request->validate([
"name_first" => "required|max:255",
"name_last" => "required|max:255",
"email" => "required|email|unique:users",
"email" => "required",
"password" => "required|max:60",
"phone" => "required|unique:users",
"phone" => "required",
]);
if ($request->password != $request->password2) {
return redirect()->route('users.create')->with('error#notsamepass', '<p>Der stod ikke det samme i `Password` & `Confirm Password`!</p>');
}
$allUsersEmail = User::query()->where('email', '=', $request->email)->get();
$allUsersPhone = User::query()->where('phone', '=', $request->phone)->get();
if ($request->password != $request->password2)
return redirect()->route('users.create')->with('error#notsamepass', '<p><b>Der stod ikke det samme i `Password` & `Confirm Password`!</b></p>');
elseif (count($allUsersEmail) > 0)
return redirect()->route('users.create')->with('EmailExists', '<p><b>Der findes allerede en bruger med den Email!</b></p>');
elseif (count($allUsersPhone) > 0)
return redirect()->route('users.create')->with('PhoneExists', '<p><b>Der findes allerede en bruger med det Telefon Nr.!</b></p>');
$roles = $request->input("roles", [ "User" ]);
@@ -130,15 +136,22 @@ class UserController extends Controller
{
$user = User::find($id);
$allUsersEmail = User::query()->where('email', '=', $request->email)->where('id', '!=', $id)->get();
$allUsersPhone = User::query()->where('phone', '=', $request->phone)->where('id', '!=', $id)->get();
if($id === Auth::id() || auth()->user()->hasPermissionTo("user.edit")) {
if ($request->roles != null && auth()->user()->hasPermissionTo("user.edit")) { //You can only edit roles on the admin site, so if there is an input roles, then update user info and edit roles
if ($request->password != "") { // If you have edited the password, then run this
if(count($allUsersEmail) > 0)
return redirect()->route('users.edit', ['user' => $id])->with('EmailExists', '<p><b>Der findes allerede en bruger med den Email!</b></p>');
elseif(count($allUsersPhone) > 0)
return redirect()->route('users.edit', ['user' => $id])->with('PhoneExists', '<p><b>Der findes allerede en bruger med det Telefon Nr.!</b></p>');
elseif ($request->password != "") { // If you have edited the password, then run this
if ($request->password == $request->password2) { // If the password is the same as confirm password, then update everything from user
$data = $request->all();
/** @var User $user */
$user->update($data);
} else // Else go back with an error message
return redirect()->route("users.edit", ['user' => $id])->with('error#notsamepass', '<p>Der stod ikke det samme i `Password` & `Confirm Password`!</p>');
return redirect()->route("users.edit", ['user' => $id])->with('error#notsamepass', '<p><b>Der stod ikke det samme i `Password` & `Confirm Password`!</b></p>');
}
else { // If you haven't touched the password, then update everything else but password
$data = $request->only(['name_first', 'name_last', 'email', 'phone', 'roles']);
@@ -257,21 +270,21 @@ class UserController extends Controller
if ($request->input('password') != null) { // If you're editing the password
$data = $request->only(['name_first', 'name_last', 'email', 'phone', 'password']);
if ($request->input('password') != $request->input('confirmpassword')) { // If new password and new password confirm is not the same, go back with fail message.
return redirect()->route("users.accounteditpass")->with('error#notsamepass', '<p class="text-center">Der stod ikke det samme i `Nyt Password` & `Confirm Password`!</p>');
return redirect()->route("users.accounteditpass")->with('error#notsamepass', '<p class="text-center"><b>Der stod ikke det samme i `Nyt Password` & `Confirm Password`!</b></p>');
} elseif (!Hash::check($request->input('oldpassword'), $user->password)) { // If the written current password and current password in DB is not the same, go back with fail message.
return redirect()->route("users.accounteditpass")->with('error#oldpass', '<p class="text-center">Det indtastede password i `Nuværende Password` er ikke dit nuværende password!</p>');
return redirect()->route("users.accounteditpass")->with('error#oldpass', '<p class="text-center"><b>Det indtastede password i `Nuværende Password` er ikke dit nuværende password!</b></p>');
} 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")->with('success#passwordchange', '<p class="text-center text-white">Dit password er hermed ændret!</p>');
return redirect()->route("users.login")->with('success#passwordchange', '<p class="text-center text-white"><b>Dit password er hermed ændret!</b></p>');
}
} else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user.
$data = $request->only(['email', 'phone']);
$user->update($data);
return redirect()->route("users.account")->with('success#credentialschanged', '<p class="text-center">Dine oplysninger er hermed ændret!</p>');
return redirect()->route("users.account")->with('success#credentialschanged', '<p class="text-center"><b>Dine oplysninger er hermed ændret!</b></p>');
}
$users = User::query()->paginate(20);
@@ -44,14 +44,14 @@ class UserEventController extends Controller
// If the row has both, then go back and show an error - Cause you're not allowed to be on the same event twice.
if (count($getTableInfo) > 0)
return redirect()->route("events.index")->with('error#' . $request->event_id, '<p class="text-center">Du har allerede tilmeldt dig denne Aktivitet!</p>');
return redirect()->route("events.index")->with('error#' . $request->event_id, '<p class="text-center"><b>Du har allerede tilmeldt dig denne Aktivitet!</b></p>');
// If not, then it keeps going and saves and shows a success message
$UserEvent = new UserEvent($data);
$UserEvent->user_id = auth()->user()->id;
$UserEvent->save();
return redirect()->route("events.index")->with('signup#' . $request->event_id, '<p class="text-center">Du er hermed tilmeldt denne aktivitet!</p>');
return redirect()->route("events.index")->with('signup#' . $request->event_id, '<p class="text-center"><b>Du er hermed tilmeldt denne aktivitet!</b></p>');
}
/**
@@ -71,7 +71,7 @@ class UserEventController extends Controller
$JoinedEvents = UserEvent::query()->join('events', 'events.id', '=', 'user_events.event_id')->where('user_id', "=", auth()->user()->id)->get();
return redirect()->route("userevents.index", [ "userevents" => $JoinedEvents ])->with('eventunsubscribed', '<p class="text-center">Du er hermed afmeldt aktiviteten!</p>');
return redirect()->route("userevents.index", [ "userevents" => $JoinedEvents ])->with('eventunsubscribed', '<p class="text-center"><b>Du er hermed afmeldt aktiviteten!</b></p>');
}
public function show()
@@ -59,13 +59,16 @@ class WashingMachineController extends Controller
]);
$machine = new WashingMachine($data);
$saved = $machine->save();
if(!$saved){
return Response::detect("washing-machines.store");
}else{
$allMachines = WashingMachine::query()->where('name', '=', $request->name)->get();
// If there already is a washing machine with that name, then don't add it
if (count($allMachines) > 0)
return redirect()->route("washing-machines.store")->with('WashingNameExists', '<p><b>Der findes allerede en vaskemaskine med det navn!</b></p>');
else { // Else - Add it
$machine->save();
$machines = WashingMachine::query()->paginate($request->input("limit", 20));
return Response::detect("washing-machines.index", ['machines' => $machines]);
return redirect()->route("washing-machines.index", ['machines' => $machines]);
}
}
@@ -114,19 +117,17 @@ class WashingMachineController extends Controller
$machine = WashingMachine::find($id);
$machine->update($data);
$saved = $machine->save();
$allMachines = WashingMachine::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get();
if(!$saved){
return Response::detect("washing-machines.update", [
"machine" => $machine
]);
} else {
// If there already is a washing machine with that name, then don't change it
if (count($allMachines) > 0)
return redirect()->route("washing-machines.store")->with('WashingNameExists', '<p><b>Der findes allerede en vaskemaskine med det navn!</b></p>');
else { // Else - Change the name
$machine->update($data);
$machine->save();
$machines = WashingMachine::query()->paginate($request->input("limit", 20));
return Response::detect("washing-machines.index", [
"machines" => $machines
]);
return redirect()->route("washing-machines.index", ["machines" => $machines]);
}
}
@@ -20,7 +20,7 @@ class WashingReservationController extends Controller
{
$this->middleware([ "auth" ]);
$this->middleware([ "check.auth:washing.machine.reservation.list" ])->only("index");
$this->middleware([ "check.auth:washing.machine.reservation.list" ])->only(["index", "appindex"]);
$this->middleware([ "check.auth:washing.machine.reservation.show" ])->only("show");
$this->middleware([ "check.auth:washing.machine.reservation.create" ])->only("create", "store");
$this->middleware([ "check.auth:washing.machine.reservation.edit" ])->only("edit", "update");
@@ -78,7 +78,7 @@ class WashingReservationController extends Controller
} else {
$reservations = WashingReservation::query()->paginate($request->input("limit", 20));
return redirect()->route('washing-reservations.index', ["reservations" => $reservations]);
return redirect()->route('washing-reservations.appindex', ["reservations" => $reservations]);
}
}
@@ -180,15 +180,12 @@ class WashingReservationController extends Controller
}
}
function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Vaskemaskine</th>".
"<th>Tidspunkt</th>".
"<th>Bruger</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
@@ -219,7 +216,6 @@ class WashingReservationController extends Controller
'<td>' . WashingMachine::query()->find($user->machine_id)->name . '</td>'.
'<td>' . $user->time . '</td>'.
'<td>' . ucfirst(User::query()->find($user->user_id)->name_first) . ' ' . ucfirst(User::query()->find($user->user_id)->name_last) . '</td>'.
'<td><a href="'. route("washing-reservations.edit", [ "washing_reservation" => $user->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("washing-reservations.destroy", [ "washing_reservation" => $user->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
@@ -242,9 +238,11 @@ class WashingReservationController extends Controller
}
}
public function appindex(Request $request)
{
$reservations = WashingReservation::query()->where("user_id", "=", auth()->user()->id)->orderBY('time' , 'asc')->paginate($request->query("limit", 20));
return Response::detect("washing-reservations.index", [ "reservations" => $reservations]);
}
}
@@ -18,7 +18,7 @@
<label for="description">Beskrivelse:</label>
<input type="text" name="description" id="description" max="500" required>
<label for="date">Aktivitet dato:</label>
<input type="date" name="date" id="date" required>
<input type="datetime-local" name="date" id="date" required>
<input type="submit" class="btn btn-dark text-white" value="Opret">
</form>
@@ -19,7 +19,7 @@
<label for="description">Beskrivelse</label>
<input value="{{$event->description}}" type="text" name="description" id="description" required>
<label for="date">Beskrivelse</label>
<input value="{{$event->date}}" type="date" name="date" id="date" required>
<input value="{{$event->date}}" type="datetime-local" name="date" id="date" required>
<input type="submit" class="btn btn-dark text-white" value="Rediger">
</form>
@@ -17,8 +17,9 @@
@csrf
<input type="text" class="form-controller" id="search" name="search" placeholder="Søg på Evt Navn, Evt Dato"></input>
</form>
</div>
{!! session()->get('EventNameExists') !!}
<table class="tbl mt-2">
<tr>
<th>Event Navn</th>
@@ -32,7 +33,7 @@
<tr>
<td>{{ $event->name }}</td>
<td>{{ $event->description }}</td>
<td>{{ $event->date }}</td>
<td>{{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($event->date))->format('d/m/Y \k\l\. H:i') }}</td>
<td><a href="{{ route("events.signups", [ "event" => $event ]) }}"><img class="w-100" src="{{ asset('/images/icons/eye-dark.svg') }}" alt="Update"></a></td>
<td><a href="{{ route("events.edit", [ "event" => $event ]) }}"><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
<td><form method="post" action="{{ route("events.destroy", [ "event" => $event ]) }}" class="w-100 nostyle">
@@ -47,7 +47,6 @@
url: '{{route('feedbacks.search')}}',
data: {'option':$value},
success:function (data) {
console.log($value);
$('tbody').html(data);
},
error:function (data) {
@@ -18,8 +18,9 @@
@csrf
<input type="number" class="form-controller" id="search" name="search" pattern="[0-9]{2}" placeholder="Søg efter ugenummer"></input>
</form>
</div>
{!! session()->get('WeekExists') !!}
<table class="tbl mt-2">
<tr>
<th>Uge</th>
@@ -17,9 +17,9 @@
@csrf
<input type="text" class="form-controller" id="search" name="search" placeholder="Søg efter navn"></input>
</form>
</div>
{!! session()->get('RoleNameExists') !!}
<table class="tbl mt-2">
<tr>
<th>Navn</th>
@@ -12,6 +12,8 @@
@section("content")
<h1>Opret Bruger:</h1>
{!! session()->get('error#notsamepass') !!}
{!! session()->get('EmailExists') !!}
{!! session()->get('PhoneExists') !!}
<form method="post" action="{{ route("users.store") }}">
@csrf
<label for="name_first">Fornavn:</label>
@@ -12,6 +12,8 @@
@section("content")
<h1>Rediger Bruger:</h1>
{!! session()->get('error#notsamepass') !!}
{!! session()->get('EmailExists') !!}
{!! session()->get('PhoneExists') !!}
<form method="post" action="{{ route("users.update", ['user' => $user]) }}">
@csrf
@method("put")
@@ -13,6 +13,7 @@
<div class="row align-items-center">
<a class="btn btn-inline btn-sde-blue mb-0" href="{{ route('washing-machines.create') }}"><img src="{{ asset('/images/icons/plus.svg') }}" alt="Create">Opret Vaskemaskine</a>
</div>
{!! session()->get('WashingNameExists') !!}
<table class="tbl mt-2">
<tr>
<th>Navn</th>
@@ -33,15 +33,13 @@
<th>Vaskemaskine</th>
<th>Tidspunkt</th>
<th>Bruger</th>
<th style="width: 1em;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
<th style="width: 1em;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
</tr>
@foreach($reservations as $reservation)
<tr>
<td>{{ \App\WashingMachine::query()->find($reservation->machine_id)->name }}</td>
<td>{{ $reservation->time }}</td>
<td>{{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($reservation->time))->format('d/m/Y \k\l\. H:i') }}</td>
<td>{{ ucfirst(\App\User::query()->find($reservation->user_id)->name_first) }} {{ ucfirst(\App\User::query()->find($reservation->user_id)->name_last) }}</td>
<td><a href="{{ route('washing-reservations.edit', ['washing_reservation' => $reservation]) }}"><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
<td><form method="post" action="{{ route('washing-reservations.destroy', ['washing_reservation' => $reservation]) }}" class="w-100 nostyle">
@csrf
@method("delete")
@@ -65,7 +63,6 @@
url: '{{route('washing-reservations.search')}}',
data: {'search':$value, 'isCheck': $checkboxValue},
success:function (data) {
console.log($checkboxValue);
$('tbody').html(data);
},
error:function (data) {
@@ -10,7 +10,7 @@
@foreach($events as $event)
<form method="get" action="{{ route("userevents.create") }}">
<h3 class="sde-blue bold text-center mb-0">{{$event->name}}</h3>
<p class="text-center mt-0">{{$event->date}}</p>
<p class="text-center mt-0">{{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($event->date))->format('d/m/Y \k\l\. H:i') }}</p>
<p class="text-center">{{$event->description}}</p>
<input type="hidden" name="event_id" value="{{ $event->id }}">
{!! session()->get('error#' . $event->id) !!}
@@ -5,7 +5,7 @@
@section("content")
<main>
<h1 class="text-center sde-blue mb-0">Aktiviteter</h1>
<h1 class="text-center sde-blue mb-0">Tilmeldte Aktiviteter</h1>
{!! session()->get('eventunsubscribed') !!}
@if(!$userevents->isEmpty())
@foreach($userevents as $userevent)
@@ -13,7 +13,7 @@
@csrf
@method("delete")
<h3 class="sde-blue bold text-center mb-0">{{$userevent->name}}</h3>
<p class="text-center mt-0">{{$userevent->date}}</p>
<p class="text-center mt-0">{{ \Illuminate\Support\Facades\Date::createFromTimeStamp(strtotime($userevent->date))->format('d/m/Y \k\l\. H:i') }}</p>
<p class="text-center">{{$userevent->description}}</p>
<button type="submit" class="btn text-center btn-sde-blue" onclick="return confirm('Are you sure you want to remove this event?');">Afmeld</button>
</form>
@@ -5,11 +5,11 @@
<div class="d-flex col block-container mt-2">
<a href="{{ route('menu-plans.index') }}" class="block text-center mb-1">Menuplan</a>
<a href="{{ route('events.index') }}" class="block text-center mb-1">Aktiviteter</a>
<a href="{{ route('washing-reservations.index') }}" class="block text-center mb-1">Reservationer</a>
<a href="{{ route('washing-reservations.appindex') }}" class="block text-center mb-1">Reservationer</a>
<a href="{{ route('contacts.index') }}" class="block text-center mb-1">Kontoret</a>
<a href="{{ route('phones.index') }}" class="block text-center mb-1">Vagttelefon</a>
</div>
<div class="links row">
<div class="row" style="position: absolute; bottom: 8px; align-self: center;">
<a href="https://www.facebook.com" target="_blank" class="link">
<img src="{{ URL::asset('/images/icons/facebook-icon.png') }}" class="h-100" alt="Facebook">
</a>
@@ -9,7 +9,7 @@
<h1 class="text-center sde-blue mt-0">Vagttelefon</h1>
<p class="mt-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sodales pulvinar congue aenean suspendisse.</p>
<label class="toggle">
<input class="toggle__input" type="checkbox" name="accept" id="input">
<input class="toggle__input" type="checkbox" name="accept" id="input" onclick="check()">
<span class="toggle__label sde-blue">
<span class="toggle__text sde-blue semi-bold">Accepterer</span>
</span>
@@ -20,5 +20,17 @@
@endsection
@section("scripts")
<script>
function check() {
var checkBox = document.getElementById("input");
var btn = document.getElementById("call");
if (checkBox.checked == true){
btn.href = "";
btn.classList.remove("btn-disabled");
} else {
btn.href = "tel:+4556304566";
btn.classList.add("btn-disabled");
}
}
</script>
@endsection