Primer commit

This commit is contained in:
2026-08-03 18:01:15 +02:00
commit 99b9fed37f
121 changed files with 18222 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
<?php
namespace App\Http\Controllers;
use App\Models\Project;
use App\Models\Task;
use Illuminate\Http\Request;
class TaskController extends Controller
{
public function store(Request $request, Project $project)
{
$data = $request->validate([
'title' => 'required|string|max:255',
'description' => 'nullable|string',
'priority' => 'sometimes|in:low,medium,high,urgent',
]);
$data['description'] = $this->sanitizeDescription($data['description'] ?? null);
$data['priority'] = $data['priority'] ?? 'medium';
$project->tasks()->create($data);
return redirect()->back();
}
public function update(Request $request, Task $task)
{
$data = $request->validate([
'title' => 'sometimes|string|max:255',
'description' => 'nullable|string',
'status' => 'sometimes|in:todo,in_progress,blocked,done',
'priority' => 'sometimes|in:low,medium,high,urgent',
]);
if (array_key_exists('description', $data)) {
$data['description'] = $this->sanitizeDescription($data['description']);
}
$task->update($data);
return redirect()->back();
}
public function destroy(Task $task)
{
$task->delete();
return redirect()->back();
}
private function sanitizeDescription(?string $description): ?string
{
if ($description === null) {
return null;
}
$allowedTags = '<br><b><strong><i><em><u><p><ul><ol><li>';
$description = strip_tags($description, $allowedTags);
return preg_replace(
'/<(br|b|strong|i|em|u|p|ul|ol|li)\b[^>]*>/i',
'<$1>',
$description
);
}
}