diff --git a/api.php b/api.php index 61781ff..df403f2 100644 --- a/api.php +++ b/api.php @@ -3881,6 +3881,20 @@ switch ($action) { echo json_encode($result); break; + case 'ticket_zammad_groups': + requireAuth(); + $userCompanyIds = $_SESSION['companies'] ?? []; + $groups = []; + foreach ($userCompanyIds as $cid) { + $rows = _dbFetchAll("SELECT DISTINCT zammad_group FROM tickets WHERE company_id = ? AND source = 'zammad' AND zammad_group IS NOT NULL AND zammad_group != ''", [$cid]); + foreach ($rows as $r) { + if (!in_array($r['zammad_group'], $groups)) $groups[] = $r['zammad_group']; + } + } + sort($groups); + echo json_encode($groups); + break; + case 'company_create': requireSuperAdmin(); if ($method !== 'POST') break; diff --git a/script.js b/script.js index d3663ca..27550fa 100644 --- a/script.js +++ b/script.js @@ -2352,9 +2352,9 @@ async function initTicketSettings() { `; }).join(''); - // Zammad-ryhmät näkyvyyteen (haetaan tiketeistä) + // Zammad-ryhmät näkyvyyteen (haetaan API:sta) try { - const zammadGroups = [...new Set(tickets.filter(t => t.source === 'zammad' && t.zammad_group).map(t => t.zammad_group))].sort(); + const zammadGroups = await apiCall('ticket_zammad_groups'); if (zammadGroups.length > 0) { visHtml += '