feat: implement comprehensive dashboard controller and modular administrative and project management interfaces
This commit is contained in:
@@ -198,7 +198,17 @@ class TaskController extends Controller
|
||||
: null;
|
||||
}
|
||||
|
||||
if (array_key_exists('completion_percentage', $validated)) {
|
||||
$pct = (float) $validated['completion_percentage'];
|
||||
if ($pct >= 100) {
|
||||
$validated['status'] = 'completed';
|
||||
} elseif ($pct > 0 && $task->status === TaskStatus::Pending) {
|
||||
$validated['status'] = 'in_progress';
|
||||
}
|
||||
}
|
||||
|
||||
$task->update($validated);
|
||||
$this->updateProjectCompletion($project);
|
||||
$task->users()->sync($userIds);
|
||||
|
||||
$addedUsers = array_diff($userIds, $oldUserIds);
|
||||
@@ -244,6 +254,16 @@ class TaskController extends Controller
|
||||
try {
|
||||
$task->transitionTo($newStatus);
|
||||
|
||||
$completionPct = match ($newStatus->value) {
|
||||
'completed', 'closed' => 100,
|
||||
'in_progress' => 50,
|
||||
default => 0,
|
||||
};
|
||||
$task->update([
|
||||
'status' => $newStatus->value,
|
||||
'completion_percentage' => $completionPct,
|
||||
]);
|
||||
|
||||
if ($newStatus === TaskStatus::Completed) {
|
||||
TaskCompleted::dispatch($task);
|
||||
}
|
||||
@@ -286,7 +306,17 @@ class TaskController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$task->update(['sort_order' => $taskData['sort_order']]);
|
||||
$completionPct = match ($taskData['status']) {
|
||||
'completed', 'closed' => 100,
|
||||
'in_progress' => 50,
|
||||
default => 0,
|
||||
};
|
||||
|
||||
$task->update([
|
||||
'status' => $taskData['status'],
|
||||
'sort_order' => $taskData['sort_order'],
|
||||
'completion_percentage' => $completionPct,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,7 +324,7 @@ class TaskController extends Controller
|
||||
$this->updateProjectCompletion($project);
|
||||
}
|
||||
|
||||
return back()->with('success', 'Tasks reordered successfully.');
|
||||
return back()->with('success', 'Tasks updated successfully.');
|
||||
}
|
||||
|
||||
private function updateProjectCompletion(Project $project): void
|
||||
|
||||
Reference in New Issue
Block a user