feat: potenziata visualizzazione storico consuntivazione. style: disabilitata apertura massiva. feat: migliorata modifica pdf e scaricamento di tutti gli allegati tramite shortcut.

This commit is contained in:
Gabriele Cimaschi committed 2026-09-10 01:02:25 +02:00
1 parent b1754c3a67
commit c7b18ac959
10 files changed
+1545 -191

No files matched your search

+36 -7
View File
@@ -192,7 +192,7 @@ router.get('/user-signatures', (req, res) => {
try {
const operatorId = parseInt(req.headers['x-agent-id'] || '1', 10);
const signatures = db.prepare(`
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY id DESC
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY is_default DESC, id DESC
`).all(operatorId);
res.json(signatures);
} catch (err) {
@@ -205,19 +205,24 @@ router.get('/user-signatures', (req, res) => {
router.post('/user-signatures', (req, res) => {
try {
const operatorId = parseInt(req.headers['x-agent-id'] || '1', 10);
const { name, image_data } = req.body;
const { name, image_data, is_default } = req.body;
if (!name || !image_data) {
return res.status(400).json({ error: 'Nome e dati immagine sono obbligatori' });
}
const defaultVal = is_default ? 1 : 0;
if (defaultVal === 1) {
db.prepare(`UPDATE user_signatures SET is_default = 0 WHERE agent_id = ?`).run(operatorId);
}
const info = db.prepare(`
INSERT INTO user_signatures (agent_id, name, image_data)
VALUES (?, ?, ?)
`).run(operatorId, name.trim(), image_data);
INSERT INTO user_signatures (agent_id, name, image_data, is_default)
VALUES (?, ?, ?, ?)
`).run(operatorId, name.trim(), image_data, defaultVal);
const signatures = db.prepare(`
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY id DESC
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY is_default DESC, id DESC
`).all(operatorId);
res.json({
@@ -232,6 +237,30 @@ router.post('/user-signatures', (req, res) => {
}
});
// PUT /api/config/user-signatures/:id/set-default — Set signature as default
router.put('/user-signatures/:id/set-default', (req, res) => {
try {
const operatorId = parseInt(req.headers['x-agent-id'] || '1', 10);
const { id } = req.params;
db.prepare(`UPDATE user_signatures SET is_default = 0 WHERE agent_id = ?`).run(operatorId);
db.prepare(`UPDATE user_signatures SET is_default = 1 WHERE id = ? AND agent_id = ?`).run(id, operatorId);
const signatures = db.prepare(`
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY is_default DESC, id DESC
`).all(operatorId);
res.json({
success: true,
message: 'Firma predefinita aggiornata con successo!',
signatures
});
} catch (err) {
console.error('Error setting default signature:', err);
res.status(500).json({ error: 'Errore aggiornamento firma predefinita', message: err.message });
}
});
// DELETE /api/config/user-signatures/:id — Delete user signature image
router.delete('/user-signatures/:id', (req, res) => {
try {
@@ -241,7 +270,7 @@ router.delete('/user-signatures/:id', (req, res) => {
db.prepare(`DELETE FROM user_signatures WHERE id = ? AND agent_id = ?`).run(id, operatorId);
const signatures = db.prepare(`
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY id DESC
SELECT * FROM user_signatures WHERE agent_id = ? ORDER BY is_default DESC, id DESC
`).all(operatorId);
res.json({