Frontend: - Connect MetroMap to live Inertia props (replace hardcoded demo data) - Drill-down navigation via router.visit for project-level maps - Reactive breadcrumb based on map level - Empty state when no projects exist - Reusable Modal component with retro styling - ProjectForm and CommitmentForm with Inertia useForm - FormInput reusable component (text, date, textarea, select) - FloatingActions FAB button for creating projects/themes Backend: - CommitmentService + CommitmentController (CRUD, mark complete, overdue) - DocumentService + DocumentController (upload, download, delete) - MapController now passes users and speerpunten to frontend - 7 new routes (4 commitment, 3 document) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
62 lines
1.8 KiB
PHP
62 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Commitment;
|
|
use App\Services\CommitmentService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CommitmentController extends Controller
|
|
{
|
|
public function __construct(
|
|
private CommitmentService $commitmentService
|
|
) {}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$validated = $request->validate([
|
|
'beschrijving' => 'required|string',
|
|
'eigenaar_id' => 'required|exists:users,id',
|
|
'deadline' => 'required|date',
|
|
'project_id' => 'required|exists:projects,id',
|
|
'prioriteit' => 'nullable|string',
|
|
'bron' => 'nullable|string',
|
|
'besluit_id' => 'nullable|exists:besluiten,id',
|
|
]);
|
|
|
|
$this->commitmentService->create($validated);
|
|
|
|
return back()->with('success', 'Commitment aangemaakt.');
|
|
}
|
|
|
|
public function update(Request $request, Commitment $commitment)
|
|
{
|
|
$validated = $request->validate([
|
|
'beschrijving' => 'sometimes|required|string',
|
|
'eigenaar_id' => 'sometimes|required|exists:users,id',
|
|
'deadline' => 'sometimes|required|date',
|
|
'prioriteit' => 'nullable|string',
|
|
'bron' => 'nullable|string',
|
|
'status' => 'nullable|string',
|
|
]);
|
|
|
|
$this->commitmentService->update($commitment, $validated);
|
|
|
|
return back()->with('success', 'Commitment bijgewerkt.');
|
|
}
|
|
|
|
public function complete(Commitment $commitment)
|
|
{
|
|
$this->commitmentService->markComplete($commitment);
|
|
|
|
return back()->with('success', 'Commitment afgerond.');
|
|
}
|
|
|
|
public function destroy(Commitment $commitment)
|
|
{
|
|
$commitment->delete();
|
|
|
|
return back()->with('success', 'Commitment verwijderd.');
|
|
}
|
|
}
|