fix: corretto funzionamento dei filtri per gli stati aperti dei ticket (ignora lo stato dei ticket)
This commit is contained in:
+10
-8
@@ -257,13 +257,13 @@ router.get('/chart-lines', (req, res) => {
|
||||
|
||||
// POST /api/dashboard/chart-lines
|
||||
router.post('/chart-lines', (req, res) => {
|
||||
const { name, statuses, types, queues, owners, responsibles, color, is_visible } = req.body;
|
||||
const { name, statuses, types, queues, owners, responsibles, color, is_visible, bypass_state_filter } = req.body;
|
||||
if (!name) return res.status(400).json({ error: 'Name is required' });
|
||||
|
||||
try {
|
||||
const info = db.prepare(`
|
||||
INSERT INTO dashboard_chart_lines (name, statuses, types, queues, owners, responsibles, color, is_visible, is_default)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0)
|
||||
INSERT INTO dashboard_chart_lines (name, statuses, types, queues, owners, responsibles, color, is_visible, is_default, bypass_state_filter)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, ?)
|
||||
`).run(
|
||||
name,
|
||||
JSON.stringify(statuses || []),
|
||||
@@ -272,7 +272,8 @@ router.post('/chart-lines', (req, res) => {
|
||||
JSON.stringify(owners || []),
|
||||
JSON.stringify(responsibles || []),
|
||||
color || '#4f46e5',
|
||||
is_visible !== undefined ? parseInt(is_visible, 10) : 1
|
||||
is_visible !== undefined ? parseInt(is_visible, 10) : 1,
|
||||
bypass_state_filter !== undefined ? parseInt(bypass_state_filter, 10) : 0
|
||||
);
|
||||
res.json({ success: true, id: info.lastInsertRowid });
|
||||
} catch (err) {
|
||||
@@ -284,13 +285,13 @@ router.post('/chart-lines', (req, res) => {
|
||||
// PUT /api/dashboard/chart-lines/:id
|
||||
router.put('/chart-lines/:id', (req, res) => {
|
||||
const { id } = req.params;
|
||||
const { name, statuses, types, queues, owners, responsibles, color, is_visible } = req.body;
|
||||
const { name, statuses, types, queues, owners, responsibles, color, is_visible, bypass_state_filter } = req.body;
|
||||
if (!name) return res.status(400).json({ error: 'Name is required' });
|
||||
|
||||
try {
|
||||
const info = db.prepare(`
|
||||
UPDATE dashboard_chart_lines
|
||||
SET name = ?, statuses = ?, types = ?, queues = ?, owners = ?, responsibles = ?, color = ?, is_visible = ?
|
||||
SET name = ?, statuses = ?, types = ?, queues = ?, owners = ?, responsibles = ?, color = ?, is_visible = ?, bypass_state_filter = ?
|
||||
WHERE id = ?
|
||||
`).run(
|
||||
name,
|
||||
@@ -301,6 +302,7 @@ router.put('/chart-lines/:id', (req, res) => {
|
||||
JSON.stringify(responsibles || []),
|
||||
color || '#4f46e5',
|
||||
is_visible !== undefined ? parseInt(is_visible, 10) : 1,
|
||||
bypass_state_filter !== undefined ? parseInt(bypass_state_filter, 10) : 0,
|
||||
id
|
||||
);
|
||||
if (info.changes === 0) return res.status(404).json({ error: 'Line not found' });
|
||||
@@ -362,7 +364,7 @@ router.get('/chart-data', async (req, res) => {
|
||||
params.push(end_date + ' 23:59:59');
|
||||
|
||||
const statuses = JSON.parse(line.statuses || '[]');
|
||||
if (statuses.length > 0) {
|
||||
if (statuses.length > 0 && !line.bypass_state_filter) {
|
||||
const placeholders = statuses.map(() => `$${paramIdx++}`).join(', ');
|
||||
conditions.push(`t.ticket_state_id IN (${placeholders})`);
|
||||
params.push(...statuses.map(id => parseInt(id)));
|
||||
@@ -473,7 +475,7 @@ router.get('/export-excel', async (req, res) => {
|
||||
params.push(end_date + ' 23:59:59');
|
||||
|
||||
const statuses = JSON.parse(line.statuses || '[]');
|
||||
if (statuses.length > 0) {
|
||||
if (statuses.length > 0 && !line.bypass_state_filter) {
|
||||
const placeholders = statuses.map(() => `$${paramIdx++}`).join(', ');
|
||||
conditions.push(`t.ticket_state_id IN (${placeholders})`);
|
||||
params.push(...statuses.map(id => parseInt(id)));
|
||||
|
||||
Reference in New Issue
Block a user