From b9a76d76e5057863999e9d96012c32a9117ee05c Mon Sep 17 00:00:00 2001 From: Jukka Lampikoski Date: Fri, 13 Mar 2026 00:15:55 +0200 Subject: [PATCH] =?UTF-8?q?Korjaa=20Zammad-ryhmien=20n=C3=A4kyvyys=20asetu?= =?UTF-8?q?ksissa=20=E2=80=94=20hae=20API:sta=20eik=C3=A4=20muistista?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zammad-ryhmät eivät näkyneet postilaatikoiden näkyvyydessä koska ne haettiin tickets-globaalista joka on tyhjä ennen tiketti-tabin avaamista. Lisätty ticket_zammad_groups API-endpoint joka hakee uniikit ryhmät suoraan tietokannasta. Co-Authored-By: Claude Opus 4.6 --- api.php | 14 ++++++++++++++ script.js | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) 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 += '
Zammad-ryhmät
'; zammadGroups.forEach(grp => {