feat: adiciona botão na sidebar para download do client desktop (.exe) e rota de download dinâmico

This commit is contained in:
VPS 4 Builder
2026-05-28 02:44:34 +02:00
parent a798cab8b8
commit e89a018a78
2 changed files with 20 additions and 0 deletions
+3
View File
@@ -49,6 +49,9 @@
<a href="#" class="nav-item" id="menu-sync" onclick="openSyncModal('devices'); return false;">
<i class="fa-solid fa-rotate"></i> Dispositivos / Sync
</a>
<a href="/download-client" class="nav-item" id="menu-download-client" target="_blank" style="color: #0284c7;">
<i class="fa-solid fa-download"></i> Baixar Cliente (.exe)
</a>
<a href="#" class="nav-item" id="menu-plugins" onclick="openPluginsModal(); return false;">
<i class="fa-solid fa-plug"></i> Plugins / Wasabi
</a>
+17
View File
@@ -587,6 +587,23 @@ app.use('/updates', express.static(path.join(__dirname, 'updates'), {
}
}));
// Rota para baixar o instalador do cliente diretamente pelo painel
app.get('/download-client', async (req, res) => {
try {
const updatesDir = path.join(__dirname, 'updates');
const files = await fs.readdir(updatesDir);
const exeFile = files.find(f => f.endsWith('.exe'));
if (exeFile) {
res.download(path.join(updatesDir, exeFile), 'ScoreOdonto-Cliente-Setup.exe');
} else {
res.status(404).send('Instalador do cliente ainda não disponível para download.');
}
} catch (error) {
res.status(500).send('Erro ao buscar o instalador do cliente.');
}
});
// ================================================================
// SOCKET.IO - CONEXÕES EM TEMPO REAL
// ================================================================