feat: gestione gruppi di ticket. feat: miglioramento filtri ticket a mio carico e ticket. feat: possiblità di copiare il numero del tocket con pulsante copia

This commit is contained in:
2026-07-09 08:36:03 +02:00
parent 5b914eb198
commit a89605b888
14 changed files with 1674 additions and 182 deletions
+45 -6
View File
@@ -123,8 +123,21 @@ router.get('/', async (req, res) => {
}
if (queue_id) {
conditions.push(`t.queue_id = $${paramIdx++}`);
params.push(parseInt(queue_id));
let queueIds = [];
if (Array.isArray(queue_id)) {
queueIds = queue_id.map(id => parseInt(id)).filter(id => !isNaN(id));
} else if (typeof queue_id === 'string') {
queueIds = queue_id.split(',').map(id => parseInt(id.trim())).filter(id => !isNaN(id));
} else {
const parsed = parseInt(queue_id);
if (!isNaN(parsed)) queueIds.push(parsed);
}
if (queueIds.length > 0) {
const placeholders = queueIds.map(() => `$${paramIdx++}`).join(', ');
conditions.push(`t.queue_id IN (${placeholders})`);
params.push(...queueIds);
}
}
if (state_id) {
let stateIds = [];
@@ -144,12 +157,38 @@ router.get('/', async (req, res) => {
}
}
if (priority_id) {
conditions.push(`t.ticket_priority_id = $${paramIdx++}`);
params.push(parseInt(priority_id));
let priorityIds = [];
if (Array.isArray(priority_id)) {
priorityIds = priority_id.map(id => parseInt(id)).filter(id => !isNaN(id));
} else if (typeof priority_id === 'string') {
priorityIds = priority_id.split(',').map(id => parseInt(id.trim())).filter(id => !isNaN(id));
} else {
const parsed = parseInt(priority_id);
if (!isNaN(parsed)) priorityIds.push(parsed);
}
if (priorityIds.length > 0) {
const placeholders = priorityIds.map(() => `$${paramIdx++}`).join(', ');
conditions.push(`t.ticket_priority_id IN (${placeholders})`);
params.push(...priorityIds);
}
}
if (user_id) {
conditions.push(`t.user_id = $${paramIdx++}`);
params.push(parseInt(user_id));
let userIds = [];
if (Array.isArray(user_id)) {
userIds = user_id.map(id => parseInt(id)).filter(id => !isNaN(id));
} else if (typeof user_id === 'string') {
userIds = user_id.split(',').map(id => parseInt(id.trim())).filter(id => !isNaN(id));
} else {
const parsed = parseInt(user_id);
if (!isNaN(parsed)) userIds.push(parsed);
}
if (userIds.length > 0) {
const placeholders = userIds.map(() => `$${paramIdx++}`).join(', ');
conditions.push(`t.user_id IN (${placeholders})`);
params.push(...userIds);
}
}
if (type_id) {
conditions.push(`t.type_id = $${paramIdx++}`);