Zammad-asetukset API-välilehdelle, integraatio-checkboxit erilliseksi kortiksi, korjaa tyyppi puuttuu -virhe

- Integraatiot erillinen table-card yrityksen asetuksissa (vain superadmin)
- Zammad-konfiguraatio (URL, token, ryhmät, synkronointi) siirretty API-tabiin
- Saatavuus-API, Telegram ja Zammad kortit näkyvät API-tabissa kun integraatio on enabloitu
- Korjattu integration_save ja integration_test: puuttuva $input json_decode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 20:00:36 +02:00
parent 648cb949ac
commit 4a46ce56f3
3 changed files with 61 additions and 43 deletions

View File

@@ -2366,10 +2366,25 @@ async function loadSettings() {
const integs = await apiCall('integrations');
const saatavuusEnabled = integs.find(i => i.type === 'saatavuus_api')?.enabled;
const telegramEnabled = integs.find(i => i.type === 'telegram')?.enabled;
const zammadInteg = integs.find(i => i.type === 'zammad');
const zammadEnabled = zammadInteg?.enabled;
const saatCard = document.getElementById('settings-saatavuus-api-card');
const teleCard = document.getElementById('settings-telegram-card');
const zammadCard = document.getElementById('settings-zammad-card');
if (saatCard) saatCard.style.display = saatavuusEnabled ? '' : 'none';
if (teleCard) teleCard.style.display = telegramEnabled ? '' : 'none';
if (zammadCard) zammadCard.style.display = zammadEnabled ? '' : 'none';
// Lataa Zammad-asetukset korttiin
if (zammadEnabled && zammadInteg?.config) {
document.getElementById('company-zammad-url').value = zammadInteg.config.url || '';
document.getElementById('company-zammad-token').value = zammadInteg.config.token || '';
if (zammadInteg.config.group_ids && zammadInteg.config.group_names) {
renderCompanyZammadGroups(
zammadInteg.config.group_names.map((name, i) => ({ id: zammadInteg.config.group_ids[i], name })),
zammadInteg.config.group_ids
);
}
}
} catch (e) { console.error(e); }
// Vastauspohjat
@@ -2572,11 +2587,9 @@ async function showCompanyDetail(id) {
const isSA = currentUser?.role === 'superadmin';
const modulesSection = document.getElementById('company-modules-section');
const integrationsSection = document.getElementById('company-integrations-section');
const zammadConfig = document.getElementById('company-zammad-config');
const ipsSection = document.getElementById('company-allowed-ips-section');
if (modulesSection) modulesSection.style.display = isSA ? '' : 'none';
if (integrationsSection) integrationsSection.style.display = isSA ? '' : 'none';
if (!isSA && zammadConfig) zammadConfig.style.display = 'none';
if (ipsSection) ipsSection.style.display = isSA ? '' : 'none';
// Moduuli-checkboxit (yhteensopivuus: vanha 'devices' → 'tekniikka')
@@ -2641,7 +2654,8 @@ async function loadCompanyIntegrations() {
}
function toggleCompanyZammadConfig(show) {
const card = document.getElementById('company-zammad-config');
// Zammad-kortti on nyt API-tabissa
const card = document.getElementById('settings-zammad-card');
if (card) card.style.display = show ? '' : 'none';
}