42 lines
1.2 KiB
PHP
42 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\Maintenance\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\Maintenance\Http\Controllers\Concerns\AuthorizesMaintenance;
|
|
use Modules\Maintenance\Services\MaintenanceDashboardService;
|
|
use Modules\Maintenance\Utils\MaintenanceUtil;
|
|
|
|
class CalendarController extends Controller
|
|
{
|
|
use AuthorizesMaintenance;
|
|
|
|
public function __construct(
|
|
protected MaintenanceDashboardService $dashboardService,
|
|
protected MaintenanceUtil $maintenanceUtil
|
|
) {}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$this->authorizeMaintenanceAccess('maintenance.calendar.view');
|
|
|
|
$business = $this->maintenanceUtil->getBusiness();
|
|
if (! $business) {
|
|
abort(404);
|
|
}
|
|
|
|
if ($request->ajax()) {
|
|
$start = $request->get('start', now()->startOfMonth()->toDateString());
|
|
$end = $request->get('end', now()->endOfMonth()->toDateString());
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'events' => $this->dashboardService->getCalendarEvents($business, $start, $end),
|
|
]);
|
|
}
|
|
|
|
return view('maintenance::calendar.index');
|
|
}
|
|
}
|