Spaces:
Sleeping
Sleeping
File size: 4,183 Bytes
e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 4e3ae93 e3bdc52 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ConfereAI Admin | Fine-Tuning</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@700;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="aurora-mesh"></div>
<nav>
<div class="logo">
<a href="index.html" class="logo">
<span>Confere<span class="vibrance">AI</span> Admin</span>
</a>
</div>
<div class="nav-links">
<a href="index.html">Voltar ao App</a>
</div>
</nav>
<main class="dashboard-container">
<!-- Login Section -->
<section id="login-section" class="admin-login-container">
<div class="admin-card">
<h2 style="font-family: 'Outfit'; font-size: 2rem; margin-bottom: 1rem; text-align: center;">Acesso Restrito</h2>
<p style="color: var(--text-secondary); margin-bottom: 2rem; text-align: center;">Insira a senha de administrador para gerenciar o aprendizado do motor neural.</p>
<form id="login-form">
<div class="form-group">
<label for="admin-password">Senha do Administrador</label>
<input type="password" id="admin-password" placeholder="••••••••" required>
</div>
<button type="submit" class="btn-secondary" style="width: 100%; margin-top: 1rem;">Entrar no Painel</button>
</form>
<div id="login-error" class="status-text hidden" style="color: var(--danger); text-align: center;">Senha incorreta.</div>
</div>
</section>
<!-- Dashboard Section -->
<section id="dashboard-section" class="hidden">
<div class="glass-card admin-panel">
<h2 class="section-title-admin">Treinar Modelo</h2>
<p class="section-desc-admin">Faça upload de um arquivo .zip ou .rar contendo pastas 'real' e 'fake' com áudios (.mp3, .wav, .flac).</p>
<div id="drop-zone" class="drop-zone admin-drop">
<div class="upload-icon">
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
<polyline points="17 8 12 3 7 8"></polyline>
<line x1="12" y1="3" x2="12" y2="15"></line>
</svg>
</div>
<h3 style="margin-bottom: 10px;">Arraste o arquivo ou clique</h3>
<p style="color: var(--text-secondary); font-size: 0.9rem;">Limite: 100MB recomendados por lote</p>
<input type="file" id="file-input" class="hidden" accept=".zip,.rar">
</div>
<div id="selected-file-info" class="hidden" style="margin-bottom: 1.5rem; color: var(--success); font-weight: 500;">
Arquivo selecionado: <span id="filename-display"></span>
</div>
<button id="btn-upload-train" class="btn-secondary" style="width: 100%;" disabled>Iniciar Upload e Treinamento</button>
<!-- Training Progress -->
<div id="training-progress-container" class="hidden" style="margin-top: 2rem; text-align: left;">
<h4 style="color: var(--cyan); margin-bottom: 0.5rem;">Status do Treinamento</h4>
<div class="progress-bar-container">
<div id="training-progress-bar" class="progress-bar"></div>
</div>
<div id="training-status-text" class="status-text">Preparando ambiente...</div>
</div>
</div>
</section>
</main>
<script src="js/admin.js"></script>
</body>
</html>
|