refactor: move priority emails to customer card

Priority emails are now per-customer, not per-company.
Each customer can have a list of email addresses that
automatically elevate ticket priority to "tärkeä" when
they send email. Field added to customer form under
"Lisätiedot" section.

Removed separate priority_emails settings from API/rules tabs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 18:00:10 +02:00
parent 8485da8cbf
commit 4ce9cefa6a
4 changed files with 23 additions and 41 deletions

View File

@@ -635,6 +635,7 @@ function openCustomerForm(customer = null) {
document.getElementById('form-elaskuosoite').value = c ? (c.elaskuosoite || '') : '';
document.getElementById('form-elaskuvalittaja').value = c ? (c.elaskuvalittaja || '') : '';
document.getElementById('form-lisatiedot').value = c ? (c.lisatiedot || '') : '';
document.getElementById('form-priority-emails').value = c ? (c.priority_emails || '') : '';
document.getElementById('form-billing-same').checked = false;
document.getElementById('billing-fields').style.display = 'block';
const container = document.getElementById('liittymat-container');
@@ -676,6 +677,7 @@ customerForm.addEventListener('submit', async (e) => {
elaskuosoite: document.getElementById('form-elaskuosoite').value,
elaskuvalittaja: document.getElementById('form-elaskuvalittaja').value,
lisatiedot: document.getElementById('form-lisatiedot').value,
priority_emails: document.getElementById('form-priority-emails').value,
liittymat: collectLiittymatFromForm(),
};
if (id) { data.id = id; await apiCall('customer_update', 'POST', data); }
@@ -1793,8 +1795,6 @@ async function loadSettings() {
// Vastauspohjat
loadTemplates();
// Priority emails
loadPriorityEmails();
}
// ==================== VASTAUSPOHJAT ====================
@@ -1869,24 +1869,6 @@ window.deleteTemplate = async function(id) {
} catch (e) { alert(e.message); }
};
// ==================== PRIORITY EMAILS ====================
async function loadPriorityEmails() {
try {
const emails = await apiCall('priority_emails');
document.getElementById('priority-emails-textarea').value = (emails || []).join('\n');
} catch (e) { console.error(e); }
}
document.getElementById('btn-save-priority-emails').addEventListener('click', async () => {
const text = document.getElementById('priority-emails-textarea').value;
const emails = text.split('\n').map(e => e.trim()).filter(e => e);
try {
await apiCall('priority_emails_save', 'POST', { emails });
alert('Priority-osoitteet tallennettu!');
} catch (e) { alert(e.message); }
});
// ==================== TELEGRAM ====================
document.getElementById('btn-save-telegram').addEventListener('click', async () => {