Download index.html from cloudmatrix2025/matrix-control-panel: direct link, hf CLI and curl.
- Browser
- Download file 32 kB
-
https://huggingface.co/spaces/cloudmatrix2025/matrix-control-panel/resolve/main/index.html
- Command line
-
hf download hf://spaces/cloudmatrix2025/matrix-control-panel/index.html
-
curl -L -o index.html https://huggingface.co/spaces/cloudmatrix2025/matrix-control-panel/resolve/main/index.html
32 kB
| <html lang="pt-br"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Matrix Control Panel - Dashboard</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | |
| <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Roboto:wght@300;400;500&display=swap" rel="stylesheet"> | |
| <style> | |
| :root { | |
| --primary: #0ea5e9; | |
| --secondary: #7e22ce; | |
| --dark: #0f172a; | |
| --darker: #020617; | |
| --neon: #00f7ff; | |
| } | |
| body { | |
| font-family: 'Roboto', sans-serif; | |
| background-color: var(--darker); | |
| color: #e2e8f0; | |
| } | |
| .futuristic-font { | |
| font-family: 'Orbitron', sans-serif; | |
| } | |
| .glass-card { | |
| background: rgba(15, 23, 42, 0.7); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(14, 165, 233, 0.2); | |
| box-shadow: 0 0 15px rgba(0, 247, 255, 0.1); | |
| } | |
| .neon-border { | |
| border: 1px solid var(--neon); | |
| box-shadow: 0 0 10px rgba(0, 247, 255, 0.5); | |
| } | |
| .neon-text { | |
| text-shadow: 0 0 5px var(--neon); | |
| } | |
| .pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { box-shadow: 0 0 0 0 rgba(0, 247, 255, 0.4); } | |
| 70% { box-shadow: 0 0 0 10px rgba(0, 247, 255, 0); } | |
| 100% { box-shadow: 0 0 0 0 rgba(0, 247, 255, 0); } | |
| } | |
| .terminal { | |
| background-color: rgba(0, 0, 0, 0.7); | |
| border: 1px solid var(--primary); | |
| font-family: 'Courier New', monospace; | |
| color: #00ff00; | |
| } | |
| .chart-container { | |
| position: relative; | |
| height: 300px; /* Altura fixa para os gráficos */ | |
| width: 100%; | |
| } | |
| .nav-link.active { | |
| background-color: rgba(14, 165, 233, 0.2); | |
| border: 1px solid var(--neon); | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen"> | |
| <!-- Navigation --> | |
| <nav class="glass-card fixed w-full z-50"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex items-center justify-between h-16"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0"> | |
| <span class="text-xl futuristic-font neon-text">Matrix CP</span> | |
| </div> | |
| <div class="hidden md:block"> | |
| <div class="ml-10 flex items-baseline space-x-4"> | |
| <a href="#" class="nav-link px-3 py-2 rounded-md text-sm font-medium hover:bg-sky-900/30 hover:neon-border transition-all active">Dashboard</a> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="hidden md:block"> | |
| <div class="ml-4 flex items-center md:ml-6"> | |
| <button class="p-1 rounded-full text-sky-400 hover:text-white focus:outline-none"> | |
| <span class="sr-only">Notificações</span> | |
| <svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" /> | |
| </svg> | |
| </button> | |
| <div class="ml-3 relative"> | |
| <div> | |
| <button type="button" class="max-w-xs flex items-center text-sm rounded-full focus:outline-none" id="user-menu"> | |
| <span class="sr-only">Abrir menu do usuário</span> | |
| <img class="h-8 w-8 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt=""> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="-mr-2 flex md:hidden"> | |
| <button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-sky-400 hover:text-white hover:bg-sky-900/30 focus:outline-none" id="mobile-menu-button"> | |
| <span class="sr-only">Abrir menu principal</span> | |
| <svg class="block h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" /> | |
| </svg> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Mobile menu --> | |
| <div class="md:hidden hidden" id="mobile-menu"> | |
| <div class="px-2 pt-2 pb-3 space-y-1 sm:px-3"> | |
| <a href="#" class="nav-link-mobile block px-3 py-2 rounded-md text-base font-medium hover:bg-sky-900/30 hover:neon-border transition-all active">Dashboard</a> | |
| </div> | |
| </div> | |
| </nav> | |
| <!-- Main Content --> | |
| <main class="pt-20 pb-12 px-4 sm:px-6 lg:px-8"> | |
| <!-- Dashboard Section --> | |
| <div class="glass-card rounded-lg p-6 neon-border"> | |
| <div class="flex justify-between items-center mb-6"> | |
| <h1 class="text-3xl font-bold futuristic-font neon-text">Matrix Analytics Dashboard</h1> | |
| <div class="flex space-x-3"> | |
| <div class="relative"> | |
| <select class="appearance-none bg-slate-800 border border-sky-500 rounded-lg px-4 py-2 pr-8 focus:outline-none focus:ring-2 focus:ring-sky-500 focus:border-transparent text-sm"> | |
| <option>Últimos 7 dias</option> | |
| <option>Últimos 30 dias</option> | |
| <option>Este mês</option> | |
| <option>Mês passado</option> | |
| <option>Personalizado</option> | |
| </select> | |
| <div class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-sky-400"> | |
| <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /> | |
| </svg> | |
| </div> | |
| </div> | |
| <button class="bg-sky-600 hover:bg-sky-700 px-4 py-2 rounded-lg futuristic-font transition-colors flex items-center text-sm"> | |
| <svg class="h-4 w-4 mr-1" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4" /> | |
| </svg> | |
| Novo Relatório | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Summary Cards --> | |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"> | |
| <div class="glass-card rounded-lg p-6 hover:neon-border transition-all"> | |
| <div class="flex justify-between"> | |
| <div> | |
| <p class="text-sm text-slate-400">Total de Tarefas</p> | |
| <h3 class="text-2xl font-bold futuristic-font mt-1">1,248</h3> | |
| <div class="flex items-center mt-2"> | |
| <svg class="h-4 w-4 text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round, stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18" /> | |
| </svg> | |
| <span class="text-xs text-green-500 ml-1">12% vs período anterior</span> | |
| </div> | |
| </div> | |
| <div class="h-12 w-12 rounded-full bg-sky-900/30 flex items-center justify-center"> | |
| <svg class="h-6 w-6 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" /> | |
| </svg> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="glass-card rounded-lg p-6 hover:neon-border transition-all"> | |
| <div class="flex justify-between"> | |
| <div> | |
| <p class="text-sm text-slate-400">Tarefas Concluídas</p> | |
| <h3 class="text-2xl font-bold futuristic-font mt-1">892</h3> | |
| <div class="flex items-center mt-2"> | |
| <svg class="h-4 w-4 text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18" /> | |
| </svg> | |
| <span class="text-xs text-green-500 ml-1">8% vs período anterior</span> | |
| </div> | |
| </div> | |
| <div class="h-12 w-12 rounded-full bg-green-900/30 flex items-center justify-center"> | |
| <svg class="h-6 w-6 text-green-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /> | |
| </svg> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="glass-card rounded-lg p-6 hover:neon-border transition-all"> | |
| <div class="flex justify-between"> | |
| <div> | |
| <p class="text-sm text-slate-400">Taxa de Sucesso</p> | |
| <h3 class="text-2xl font-bold futuristic-font mt-1">71.5%</h3> | |
| <div class="flex items-center mt-2"> | |
| <svg class="h-4 w-4 text-red-500" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 14l7-7m0 0l7 7m-7-7v18" /> | |
| </svg> | |
| <span class="text-xs text-red-500 ml-1">2% vs período anterior</span> | |
| </div> | |
| </div> | |
| <div class="h-12 w-12 rounded-full bg-purple-900/30 flex items-center justify-center"> | |
| <svg class="h-6 w-6 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" /> | |
| </svg> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="glass-card rounded-lg p-6 hover:neon-border transition-all"> | |
| <div class="flex justify-between"> | |
| <div> | |
| <p class="text-sm text-slate-400">Tempo Médio</p> | |
| <h3 class="text-2xl font-bold futuristic-font mt-1">3.2h</h3> | |
| <div class="flex items-center mt-2"> | |
| <svg class="h-4 w-4 text-green-500" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18" /> | |
| </svg> | |
| <span class="text-xs text-green-500 ml-1">15% vs período anterior</span> | |
| </div> | |
| </div> | |
| <div class="h-12 w-12 rounded-full bg-yellow-900/30 flex items-center justify-center"> | |
| <svg class="h-6 w-6 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /> | |
| </svg> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Main Charts --> | |
| <div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8"> | |
| <div class="glass-card rounded-lg p-6"> | |
| <div class="flex justify-between items-center mb-4"> | |
| <h3 class="text-lg font-semibold futuristic-font">Tarefas por Status</h3> | |
| <div class="flex space-x-2"> | |
| <button class="text-xs bg-sky-900/30 hover:bg-sky-900/50 px-3 py-1 rounded-lg transition-colors">Diário</button> | |
| <button class="text-xs bg-slate-800 hover:bg-slate-700 px-3 py-1 rounded-lg transition-colors">Semanal</button> | |
| <button class="text-xs bg-slate-800 hover:bg-slate-700 px-3 py-1 rounded-lg transition-colors">Mensal</button> | |
| </div> | |
| </div> | |
| <div class="chart-container"> | |
| <canvas id="statusChart"></canvas> | |
| </div> | |
| </div> | |
| <div class="glass-card rounded-lg p-6"> | |
| <div class="flex justify-between items-center mb-4"> | |
| <h3 class="text-lg font-semibold futuristic-font">Desempenho por Agente</h3> | |
| <div class="flex space-x-2"> | |
| <button class="text-xs bg-sky-900/30 hover:bg-sky-900/50 px-3 py-1 rounded-lg transition-colors">Tarefas</button> | |
| <button class="text-xs bg-slate-800 hover:bg-slate-700 px-3 py-1 rounded-lg transition-colors">Tempo</button> | |
| <button class="text-xs bg-slate-800 hover:bg-slate-700 px-3 py-1 rounded-lg transition-colors">Sucesso</button> | |
| </div> | |
| </div> | |
| <div class="chart-container"> | |
| <canvas id="performanceChart"></canvas> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Secondary Charts --> | |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"> | |
| <div class="glass-card rounded-lg p-6"> | |
| <h3 class="text-lg font-semibold futuristic-font mb-4">Distribuição por Tipo</h3> | |
| <div class="chart-container"> | |
| <canvas id="typeChart"></canvas> | |
| </div> | |
| </div> | |
| <div class="glass-card rounded-lg p-6"> | |
| <h3 class="text-lg font-semibold futuristic-font mb-4">Tendência Temporal</h3> | |
| <div class="chart-container"> | |
| <canvas id="trendChart"></canvas> | |
| </div> | |
| </div> | |
| <div class="glass-card rounded-lg p-6"> | |
| <h3 class="text-lg font-semibold futuristic-font mb-4">Prioridades</h3> | |
| <div class="chart-container"> | |
| <canvas id="priorityChart"></canvas> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Recent Activity --> | |
| <div class="glass-card rounded-lg p-6"> | |
| <div class="flex justify-between items-center mb-4"> | |
| <h3 class="text-lg font-semibold futuristic-font">Atividade Recente</h3> | |
| <button class="text-sm text-sky-400 hover:text-sky-300 flex items-center"> | |
| Ver tudo | |
| <svg class="h-4 w-4 ml-1" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" /> | |
| </svg> | |
| </button> | |
| </div> | |
| <div class="space-y-4"> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-sky-900/30 flex items-center justify-center"> | |
| <svg class="h-5 w-5 text-sky-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 01118 0z" /> | |
| </svg> | |
| </div> | |
| <div class="ml-4"> | |
| <p class="text-sm font-medium">Agente "Backend" completou a tarefa TASK-014</p> | |
| <p class="text-xs text-slate-400">2 minutos atrás</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-purple-900/30 flex items-center justify-center"> | |
| <svg class="h-5 w-5 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" /> | |
| </svg> | |
| </div> | |
| <div class="ml-4"> | |
| <p class="text-sm font-medium">Nova tarefa criada: "Implementar cache Redis"</p> | |
| <p class="text-xs text-slate-400">15 minutos atrás</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-yellow-900/30 flex items-center justify-center"> | |
| <svg class="h-5 w-5 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /> | |
| </svg> | |
| </div> | |
| <div class="ml-4"> | |
| <p class="text-sm font-medium">Tarefa TASK-011 está atrasada</p> | |
| <p class="text-xs text-slate-400">1 hora atrás</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-red-900/30 flex items-center justify-center"> | |
| <svg class="h-5 w-5 text-red-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /> | |
| </svg> | |
| </div> | |
| <div class="ml-4"> | |
| <p class="text-sm font-medium">Falha na tarefa TASK-008 - Erro de conexão com o banco</p> | |
| <p class="text-xs text-slate-400">3 horas atrás</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| <script> | |
| // Mobile menu toggle | |
| document.getElementById('mobile-menu-button').addEventListener('click', function() { | |
| const menu = document.getElementById('mobile-menu'); | |
| menu.classList.toggle('hidden'); | |
| }); | |
| // Initialize charts | |
| document.addEventListener('DOMContentLoaded', function() { | |
| // Status Chart (Stacked Bar) | |
| const statusCtx = document.getElementById('statusChart').getContext('2d'); | |
| const statusChart = new Chart(statusCtx, { | |
| type: 'bar', | |
| data: { | |
| labels: ['Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'], | |
| datasets: [ | |
| { | |
| label: 'Concluído', | |
| data: [12, 19, 15, 20, 14, 8, 4], | |
| backgroundColor: '#10b981', | |
| borderColor: '#10b981', | |
| borderWidth: 1 | |
| }, | |
| { | |
| label: 'Em Progresso', | |
| data: [8, 12, 10, 6, 9, 5, 3], | |
| backgroundColor: '#3b82f6', | |
| borderColor: '#3b82f6', | |
| borderWidth: 1 | |
| }, | |
| { | |
| label: 'Pendente', | |
| data: [5, 8, 6, 4, 7, 3, 2], | |
| backgroundColor: '#f59e0b', | |
| borderColor: '#f59e0b', | |
| borderWidth: 1 | |
| }, | |
| { | |
| label: 'Falha', | |
| data: [2, 3, 4, 1, 2, 1, 0], | |
| backgroundColor: '#ef4444', | |
| borderColor: '#ef4444', | |
| borderWidth: 1 | |
| } | |
| ] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| x: { | |
| stacked: true, | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| color: '#e2e8f0' | |
| } | |
| }, | |
| y: { | |
| stacked: true, | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| }, | |
| plugins: { | |
| legend: { | |
| position: 'top', | |
| labels: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Performance Chart (Horizontal Bar) | |
| const performanceCtx = document.getElementById('performanceChart').getContext('2d'); | |
| const performanceChart = new Chart(performanceCtx, { | |
| type: 'bar', | |
| data: { | |
| labels: ['Gerente', 'DevOps', 'Frontend', 'Backend', 'Database', 'Segurança'], | |
| datasets: [ | |
| { | |
| label: 'Tarefas Concluídas', | |
| data: [45, 38, 42, 56, 32, 28], | |
| backgroundColor: '#8b5cf6', | |
| borderColor: '#8b5cf6', | |
| borderWidth: 1 | |
| } | |
| ] | |
| }, | |
| options: { | |
| indexAxis: 'y', | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| x: { | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| color: '#e2e8f0' | |
| } | |
| }, | |
| y: { | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| }, | |
| plugins: { | |
| legend: { | |
| position: 'top', | |
| labels: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Type Chart (Doughnut) | |
| const typeCtx = document.getElementById('typeChart').getContext('2d'); | |
| const typeChart = new Chart(typeCtx, { | |
| type: 'doughnut', | |
| data: { | |
| labels: ['Desenvolvimento', 'Testes', 'Infraestrutura', 'Segurança', 'Documentação'], | |
| datasets: [{ | |
| data: [35, 20, 25, 15, 5], | |
| backgroundColor: [ | |
| '#3b82f6', | |
| '#10b981', | |
| '#f59e0b', | |
| '#ef4444', | |
| '#8b5cf6' | |
| ], | |
| borderColor: [ | |
| '#3b82f6', | |
| '#10b981', | |
| '#f59e0b', | |
| '#ef4444', | |
| '#8b5cf6' | |
| ], | |
| borderWidth: 1 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| plugins: { | |
| legend: { | |
| position: 'right', | |
| labels: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Trend Chart (Line) | |
| const trendCtx = document.getElementById('trendChart').getContext('2d'); | |
| const trendChart = new Chart(trendCtx, { | |
| type: 'line', | |
| data: { | |
| labels: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul'], | |
| datasets: [ | |
| { | |
| label: 'Tarefas Criadas', | |
| data: [120, 135, 150, 165, 180, 195, 210], | |
| borderColor: '#3b82f6', | |
| backgroundColor: 'rgba(59, 130, 246, 0.1)', | |
| borderWidth: 2, | |
| tension: 0.3, | |
| fill: true | |
| }, | |
| { | |
| label: 'Tarefas Concluídas', | |
| data: [80, 95, 110, 125, 140, 155, 170], | |
| borderColor: '#10b981', | |
| backgroundColor: 'rgba(16, 185, 129, 0.1)', | |
| borderWidth: 2, | |
| tension: 0.3, | |
| fill: true | |
| } | |
| ] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| x: { | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| color: '#e2e8f0' | |
| } | |
| }, | |
| y: { | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| }, | |
| plugins: { | |
| legend: { | |
| position: 'top', | |
| labels: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Priority Chart (Polar Area) | |
| const priorityCtx = document.getElementById('priorityChart').getContext('2d'); | |
| const priorityChart = new Chart(priorityCtx, { | |
| type: 'polarArea', | |
| data: { | |
| labels: ['Crítica', 'Alta', 'Média', 'Baixa'], | |
| datasets: [{ | |
| data: [15, 25, 40, 20], | |
| backgroundColor: [ | |
| 'rgba(239, 68, 68, 0.7)', | |
| 'rgba(245, 158, 11, 0.7)', | |
| 'rgba(59, 130, 246, 0.7)', | |
| 'rgba(16, 185, 129, 0.7)' | |
| ], | |
| borderColor: [ | |
| 'rgba(239, 68, 68, 1)', | |
| 'rgba(245, 158, 11, 1)', | |
| 'rgba(59, 130, 246, 1)', | |
| 'rgba(16, 185, 129, 1)' | |
| ], | |
| borderWidth: 1 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| r: { | |
| grid: { | |
| color: 'rgba(255, 255, 255, 0.1)' | |
| }, | |
| ticks: { | |
| display: false | |
| } | |
| } | |
| }, | |
| plugins: { | |
| legend: { | |
| position: 'right', | |
| labels: { | |
| color: '#e2e8f0' | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| }); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=cloudmatrix2025/matrix-control-panel" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |