Primer commit
This commit is contained in:
67
app/Http/Controllers/TaskController.php
Normal file
67
app/Http/Controllers/TaskController.php
Normal 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
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user