Files
rx.scoreodonto.com/dental-server/public/admin-clinics.html
T
VPS 4 Builder 105db109fe
continuous-integration/webhook Deploy concluido (rx.scoreodonto.com)
fix: correcao deploy do front (script ps1 estava aninhando a pasta public dentro de public)
2026-05-26 07:09:13 +02:00

202 lines
6.5 KiB
HTML

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gerenciamento de Clínicas - RF Dental</title>
<!-- Fontes -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<!-- Ícones -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Estilos -->
<link rel="stylesheet" href="admin-clinics.css?v=2.0.1">
</head>
<body>
<!-- Sidebar -->
<aside class="sidebar">
<div class="sidebar-header">
<div class="logo-icon">
<i class="fa-solid fa-tooth"></i>
</div>
<h2>RF Dental</h2>
</div>
<nav class="sidebar-nav">
<a href="/" class="nav-item">
<i class="fa-solid fa-chart-line"></i> Dashboard
</a>
<a href="/clients" class="nav-item">
<i class="fa-solid fa-network-wired"></i> Conexões
</a>
<a href="/admin-clinics" class="nav-item active">
<i class="fa-solid fa-hospital"></i> Clínicas e Acessos
</a>
</nav>
<div class="sidebar-footer">
<button id="logoutBtn" class="logout-btn">
<i class="fa-solid fa-arrow-right-from-bracket"></i> Sair
</button>
</div>
</aside>
<!-- Main Content -->
<main class="main-content">
<header class="top-header">
<div class="header-title">
<h1>Dispositivos e Clínicas</h1>
<p>Gerencie o acesso do Aplicativo Desktop aos computadores das clínicas.</p>
</div>
<div class="header-actions">
<button id="addClinicBtn" class="primary-btn pulse-animation">
<i class="fa-solid fa-plus"></i> Novo Acesso
</button>
</div>
</header>
<div class="dashboard-stats">
<div class="stat-card glass-card">
<div class="stat-icon bg-blue">
<i class="fa-solid fa-desktop"></i>
</div>
<div class="stat-info">
<h3>Total de Dispositivos</h3>
<p id="totalDevices">0</p>
</div>
</div>
<div class="stat-card glass-card">
<div class="stat-icon bg-green">
<i class="fa-solid fa-check-circle"></i>
</div>
<div class="stat-info">
<h3>Ativos</h3>
<p id="activeDevices">0</p>
</div>
</div>
<div class="stat-card glass-card">
<div class="stat-icon bg-red">
<i class="fa-solid fa-ban"></i>
</div>
<div class="stat-info">
<h3>Bloqueados</h3>
<p id="blockedDevices">0</p>
</div>
</div>
</div>
<section class="data-section glass-card">
<div class="table-container">
<table class="modern-table">
<thead>
<tr>
<th>Status</th>
<th>Clínica</th>
<th>Computador</th>
<th>Email de Acesso</th>
<th>Último IP</th>
<th>Token de Autenticação</th>
<th>Ações</th>
</tr>
</thead>
<tbody id="clinicsTableBody">
<!-- Loading state -->
<tr>
<td colspan="7" class="loading-cell">
<div class="spinner"></div>
<p>Carregando dispositivos...</p>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</main>
<!-- Modal Cadastro -->
<div id="clinicModal" class="modal-overlay">
<div class="modal-content glass-card">
<div class="modal-header">
<h2>Adicionar Novo Dispositivo</h2>
<button class="close-modal"><i class="fa-solid fa-xmark"></i></button>
</div>
<form id="clinicForm" class="modern-form">
<div class="form-group">
<label for="clinic_name">Nome da Clínica</label>
<div class="input-with-icon">
<i class="fa-solid fa-hospital"></i>
<input type="text" id="clinic_name" name="clinic_name" placeholder="Ex: Odonto Mais Centro" required>
</div>
</div>
<div class="form-group">
<label for="pc_name">Identificação do Computador</label>
<div class="input-with-icon">
<i class="fa-solid fa-desktop"></i>
<input type="text" id="pc_name" name="pc_name" placeholder="Ex: Recepção 01" required>
</div>
</div>
<div class="form-group">
<label for="email">E-mail de Login</label>
<div class="input-with-icon">
<i class="fa-solid fa-envelope"></i>
<input type="email" id="email" name="email" placeholder="recepcao@odontomais.com" required>
</div>
<small>O email que o usuário usará no aplicativo Desktop.</small>
</div>
<div class="form-group">
<label for="password">Senha de Acesso</label>
<div class="input-with-icon">
<i class="fa-solid fa-lock"></i>
<input type="password" id="password" name="password" placeholder="Mínimo 6 caracteres" required minlength="6">
</div>
</div>
<div class="form-actions">
<button type="button" class="secondary-btn close-modal">Cancelar</button>
<button type="submit" class="primary-btn" id="submitBtn">
<i class="fa-solid fa-check"></i> Salvar e Gerar Token
</button>
</div>
</form>
</div>
</div>
<!-- Modal Token Gerado -->
<div id="tokenModal" class="modal-overlay">
<div class="modal-content glass-card success-modal">
<div class="success-icon pulse-animation">
<i class="fa-solid fa-check-circle"></i>
</div>
<h2>Dispositivo Cadastrado!</h2>
<p>Copie o token abaixo e cole-o no Aplicativo Desktop junto com o email e senha para liberar o envio de raios-x.</p>
<div class="token-container">
<code id="generatedToken">8f8a3b20-1d8c-4b3f-9e7b...</code>
<button id="copyTokenBtn" class="icon-btn" title="Copiar Token">
<i class="fa-regular fa-copy"></i>
</button>
</div>
<button class="primary-btn close-token-modal" style="width: 100%; margin-top: 20px;">
Entendido
</button>
</div>
</div>
<div id="toast" class="toast">Notificação</div>
<script src="admin-clinics.js?v=2.0.1"></script>
</body>
</html>