v0.14.15 - Removed the first foreach in location show, and made an inner join instead, so it comes in correct order (by time), instead of by time and by machine id.

Added: The Reservations now gets deleted when time is past their washing time, as soon as you go onto your own reservations, the admin page for reservations or when the location show page reloads (every 1 minut)
This commit is contained in:
Anders 2020-08-25 12:26:48 +02:00
parent 0c8791683f
commit bc847b38b0
2 changed files with 23 additions and 17 deletions

View File

@ -15,6 +15,8 @@ use App\WashingReservation;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
date_default_timezone_set('Europe/Copenhagen');
class WashingReservationController extends Controller
{
public function __construct()
@ -37,6 +39,8 @@ class WashingReservationController extends Controller
*/
public function index(Request $request)
{
WashingReservation::query()->where('time', '<', date('Y-m-d H:i:s', strtotime('-1 hour')))->delete();
$reservations = WashingReservation::query()->orderBY('time' , 'asc')->paginate($request->query("limit", 20));
return Response::detect("washing-reservations.index", [ "reservations" => $reservations]);
@ -260,6 +264,8 @@ class WashingReservationController extends Controller
public function appindex(Request $request)
{
WashingReservation::query()->where('time', '<', date('Y-m-d H:i:s', strtotime('-1 hour')))->delete();
$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]);

View File

@ -18,8 +18,7 @@
$i = 1;
?>
<div class="row">
@foreach(\App\WashingMachine::query()->where("location_id", "=", $location->id)->get() as $machine)
@foreach(\App\WashingReservation::query()->where("machine_id", "=", $machine->id)->where("time", "LIKE", date("Y-m-d"). "%")->orderBy("time", "asc")->get() as $reservation)
@foreach(\App\WashingReservation::query()->join('washing_machines', 'washing_machines.id', '=', 'washing_reservations.machine_id')->where("location_id", "=", $location->id)->where("time", "LIKE", date("Y-m-d"). "%")->orderBy("time", "asc")->get() as $reservation)
@if (date('Y-m-d H:i:s', strtotime('-1 hour')) < $reservation->time)
@if($i % 3 == 1)
</div>
@ -33,9 +32,10 @@
</div>
</div>
<?php $i++; ?>
@else
{{ \App\WashingReservation::query()->join('washing_machines', 'washing_machines.id', '=', 'washing_reservations.machine_id')->where("location_id", "=", $location->id)->where('time', '<', date('Y-m-d H:i:s'). '%')->delete() }}
@endif
@endforeach
@endforeach
@if($i == 1)
<b class="w-100 text-center" style="font-size: 2vw; padding-top: 16px;">Der er ingen vaskemaskine reservationer for i dag.</b>
@endif
@ -46,8 +46,8 @@
<script type="text/javascript">
$(document).ready(function () {
setInterval(function(){ // There has to be a space between " and # or it will not load correctly
$('#mainDiv').load(" #mainDiv").fadeIn();
}, (60000*5));
$('#mainDiv').load(" #mainDiv");
}, (60000*1));
});
</script>
@yield("scripts")