fix(client): renomeia RF Dental → Score Client e corrige URL do executável
continuous-integration/webhook Deploy concluído (VPS4)
continuous-integration/webhook Deploy concluído (VPS4)
- Troca nome do sistema de "RF Dental" para "Score Client" em toda UI (título, sidebar, login, página de download) - Corrige link de download: era hardcoded /updates/RFDental-Setup.exe (inexistente), agora lê o nome real do arquivo a partir do latest.yml e constrói URL versionada dinamicamente Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
||||
<meta name="description" content="Sistema de gerenciamento de imagens de raio-X dental" />
|
||||
<title>RF Dental — Gerenciador de Imagens</title>
|
||||
<title>Score Client — Gerenciador de Imagens</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700&display=swap" />
|
||||
|
||||
@@ -20,7 +20,7 @@ export default function Sidebar({ version, onNewPatient, onUpload, onSettings, o
|
||||
<i className="fa-solid fa-tooth" />
|
||||
</div>
|
||||
<h2>
|
||||
RF Dental{' '}
|
||||
Score Client{' '}
|
||||
<span style={{ fontSize: '10px', opacity: 0.5, fontWeight: 500, marginLeft: 4, verticalAlign: 'middle' }}>
|
||||
{version ? `v${version}` : ''}
|
||||
</span>
|
||||
|
||||
@@ -8,6 +8,7 @@ import UserManagementModal from '../components/UserManagementModal';
|
||||
|
||||
export default function DownloadPage() {
|
||||
const [version, setVersion] = useState('');
|
||||
const [exeFilename, setExeFilename] = useState('');
|
||||
const [showSettings, setShowSettings] = useState(false);
|
||||
const [showUsers, setShowUsers] = useState(false);
|
||||
const [showPlugins, setShowPlugins] = useState(false);
|
||||
@@ -18,11 +19,17 @@ export default function DownloadPage() {
|
||||
fetch('/updates/latest.yml')
|
||||
.then((r) => r.text())
|
||||
.then((t) => {
|
||||
const m = t.match(/version:\s*([\d.]+)/);
|
||||
if (m) setVersion(m[1]);
|
||||
const vMatch = t.match(/version:\s*([\d.]+)/);
|
||||
if (vMatch) setVersion(vMatch[1]);
|
||||
const pMatch = t.match(/^path:\s*(.+)$/m);
|
||||
if (pMatch) setExeFilename(pMatch[1].trim());
|
||||
}).catch(() => {});
|
||||
}, []);
|
||||
|
||||
const downloadUrl = exeFilename
|
||||
? `/updates/${encodeURIComponent(exeFilename)}`
|
||||
: '/download-client';
|
||||
|
||||
return (
|
||||
<div className="app-container">
|
||||
<Sidebar
|
||||
@@ -46,26 +53,26 @@ export default function DownloadPage() {
|
||||
<div style={{ maxWidth: 600, margin: '0 auto' }}>
|
||||
<div style={{ background: 'white', borderRadius: 16, padding: 40, border: '1px solid var(--border-color)', boxShadow: 'var(--shadow-md)', textAlign: 'center' }}>
|
||||
<div style={{ fontSize: '5rem', marginBottom: 24 }}>💻</div>
|
||||
<h2 style={{ marginBottom: 8, fontSize: '1.8rem' }}>RF Dental — Cliente Windows</h2>
|
||||
<h2 style={{ marginBottom: 8, fontSize: '1.8rem' }}>Score Client — Cliente Windows</h2>
|
||||
{version && <p style={{ color: 'var(--text-secondary)', marginBottom: 24 }}>Versão {version}</p>}
|
||||
<p style={{ color: 'var(--text-secondary)', marginBottom: 32, lineHeight: 1.7 }}>
|
||||
Instale o cliente Windows nas máquinas do consultório para enviar imagens de raio-X automaticamente para este painel em tempo real.
|
||||
</p>
|
||||
|
||||
<a
|
||||
href="/updates/RFDental-Setup.exe"
|
||||
href={downloadUrl}
|
||||
className="btn btn-primary"
|
||||
style={{ padding: '16px 40px', fontSize: '1.1rem', textDecoration: 'none', display: 'inline-flex', marginBottom: 16 }}
|
||||
download
|
||||
>
|
||||
<i className="fa-solid fa-download" /> Baixar Instalador (.exe)
|
||||
<i className="fa-solid fa-download" /> Baixar Instalador (.exe){version ? ` v${version}` : ''}
|
||||
</a>
|
||||
|
||||
<div style={{ background: '#f0f9ff', borderRadius: 10, padding: 20, marginTop: 24, textAlign: 'left' }}>
|
||||
<h4 style={{ marginBottom: 12, color: '#0369a1' }}>📋 Instruções de Instalação:</h4>
|
||||
<ol style={{ paddingLeft: 20, lineHeight: 2, color: 'var(--text-secondary)', fontSize: '0.95rem' }}>
|
||||
<li>Baixe o instalador acima</li>
|
||||
<li>Execute o arquivo <strong>RFDental-Setup.exe</strong></li>
|
||||
<li>Execute o arquivo <strong>{exeFilename || 'ScoreOdonto Dental Client Setup.exe'}</strong></li>
|
||||
<li>Na página <strong>Clínicas e Acessos</strong>, cadastre o dispositivo e copie o machine_token gerado</li>
|
||||
<li>Cole o token na configuração do cliente Windows</li>
|
||||
<li>As imagens serão enviadas automaticamente</li>
|
||||
|
||||
@@ -34,7 +34,7 @@ export default function LoginPage() {
|
||||
<div className="logo-icon" style={{ margin: '0 auto 16px' }}>
|
||||
<i className="fa-solid fa-tooth" style={{ fontSize: 28 }} />
|
||||
</div>
|
||||
<h1>RF Dental</h1>
|
||||
<h1>Score Client</h1>
|
||||
<p>Gerenciador de Imagens Dentais</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user