0, 'Active' => 0, 'Paused' => 0, 'Done' => 0, 'Cancelled' => 0]; $error = $e->getMessage(); } function statusBadge(string $status): string { $colors = [ 'active' => '#22c55e', 'paused' => '#f59e0b', 'done' => '#6b7280', 'cancelled' => '#ef4444', ]; $icons = [ 'active' => '●', 'paused' => '⏸', 'done' => '✓', 'cancelled' => '✕', ]; $color = $colors[$status] ?? '#6b7280'; $icon = $icons[$status] ?? ''; return "$icon " . htmlspecialchars($status) . ""; } function timeAgo(string $datetime): string { if (empty($datetime)) return '—'; $ts = strtotime($datetime); $diff = time() - $ts; if ($diff < 60) return 'just now'; if ($diff < 3600) return floor($diff / 60) . 'm ago'; if ($diff < 86400) return floor($diff / 3600) . 'h ago'; if ($diff < 604800) return floor($diff / 86400) . 'd ago'; return date('M j', $ts); } ?> Team Tasks — Payfrit

🚀 Team Tasks

Payfrit bot task tracker — real-time view of all team activity

Total
Active
Paused
Done
Cancelled
Clear Filters

No tasks found

Tasks will appear here when bots register work via the API.
# Bot Task Status Assigned By Channel Started Completed
@
#' . htmlspecialchars($t['Channel']) . '' : '—' ?>
{ } JSON