Lisää Zammad-integraatio ja modulaarinen integraatiot-hallinta

- Uusi integrations-taulu tietokantaan (moduulimalli: type, enabled, config)
- ZammadClient-luokka: tiketit, artikkelit, vastaukset, ryhmät
- API-endpointit: integration_save, integration_test, zammad_sync, zammad_reply, zammad_groups
- Synkronointi: Zammad-tiketit → intran tiketit, artikkelit → viestit
- Vastaukset: Zammad-tiketteihin vastaus kulkee Zammad API:n kautta (→ O365)
- UI: Integraatiot-osio API-välilehdellä, toggle-kytkimet, Zammad-konfiguraatio
- tickets.zammad_ticket_id ja ticket_messages.zammad_article_id linkitys

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 19:25:51 +02:00
parent 1aea4bde20
commit fa8aaed11e
5 changed files with 645 additions and 12 deletions

View File

@@ -1999,3 +1999,37 @@ span.empty {
.combo-badge.taken { background: #fee2e2; color: #991b1b; }
.combo-badge.subnet { background: #e0e7ff; color: #3730a3; }
.combo-grp { padding: 0.3rem 0.7rem; font-size: 0.75rem; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: 0.03em; }
/* Integraatiot */
.integration-item {
background: #f8f9fb;
border-radius: 10px;
padding: 0.75rem 1rem;
margin-bottom: 0.5rem;
transition: background 0.15s;
}
.integration-item:hover { background: #eef1f6; }
.integration-toggle {
display: flex;
align-items: center;
gap: 0.75rem;
cursor: pointer;
user-select: none;
}
.integration-toggle input[type="checkbox"] {
width: 18px; height: 18px; accent-color: var(--primary-color);
}
.integration-icon {
font-size: 1.5rem;
flex-shrink: 0;
}
.integration-info {
display: flex;
flex-direction: column;
gap: 0.1rem;
}
.integration-info strong { font-size: 0.95rem; color: #333; }
.integration-info small { font-size: 0.8rem; color: #888; }
.integration-config-card {
border-left: 3px solid var(--primary-color);
}