Korjaa Zammad-ryhmien näkyvyys asetuksissa — hae API:sta eikä muistista

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 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 00:15:55 +02:00
parent 909108ec30
commit b9a76d76e5
2 changed files with 16 additions and 2 deletions

14
api.php
View File

@@ -3881,6 +3881,20 @@ switch ($action) {
echo json_encode($result); echo json_encode($result);
break; 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': case 'company_create':
requireSuperAdmin(); requireSuperAdmin();
if ($method !== 'POST') break; if ($method !== 'POST') break;

View File

@@ -2352,9 +2352,9 @@ async function initTicketSettings() {
</label>`; </label>`;
}).join(''); }).join('');
// Zammad-ryhmät näkyvyyteen (haetaan tiketeistä) // Zammad-ryhmät näkyvyyteen (haetaan API:sta)
try { 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) { if (zammadGroups.length > 0) {
visHtml += '<div style="margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid #eee;"><strong style="font-size:0.85rem;color:#666;">Zammad-ryhmät</strong></div>'; visHtml += '<div style="margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid #eee;"><strong style="font-size:0.85rem;color:#666;">Zammad-ryhmät</strong></div>';
zammadGroups.forEach(grp => { zammadGroups.forEach(grp => {