feat: adiciona botão na sidebar para download do client desktop (.exe) e rota de download dinâmico
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
|
||||
// ================================================================
|
||||
|
||||
Reference in New Issue
Block a user