Lisää puhelinnumero yrityksen asetuksiin ja allekirjoituksiin

Puhelinnumero-kenttä yrityksen asetuksissa tallennetaan tietokantaan
ja näkyy automaattisesti kaikissa oletusallekirjoituksissa viimeisenä
rivinä (sekä SMTP- että Zammad-postilaatikoille).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 01:30:11 +02:00
parent a105ec7cd9
commit 7a20345701
4 changed files with 26 additions and 14 deletions

View File

@@ -2392,15 +2392,17 @@ async function initTicketSettings() {
return;
}
// Oletusallekirjoitus: Käyttäjänimi + Yritys + sähköposti
// Oletusallekirjoitus: Käyttäjänimi + Yritys + sähköposti + puhelin (jos asetettu)
const userName = currentUser?.nimi || currentUser?.username || '';
function defaultSig(companyName, email) {
return userName + '\n' + companyName + '\n' + email;
function defaultSig(companyName, email, phone) {
let sig = userName + '\n' + companyName + '\n' + email;
if (phone) sig += '\n' + phone;
return sig;
}
// Allekirjoitukset per postilaatikko
let sigHtml = mailboxes.map(mb => {
const sig = currentUserSignatures[mb.id] || defaultSig(mb.company_nimi, mb.smtp_from_email);
const sig = currentUserSignatures[mb.id] || defaultSig(mb.company_nimi, mb.smtp_from_email, mb.company_phone);
return `<div style="margin-bottom:0.75rem;">
<label style="font-weight:600;font-size:0.85rem;color:#333;">${esc(mb.company_nimi)}${esc(mb.nimi)}</label>
<textarea class="ticket-sig-textarea" data-mailbox-id="${mb.id}" rows="3"
@@ -2415,9 +2417,10 @@ async function initTicketSettings() {
if (zammadEmails.length > 0) {
sigHtml += '<div style="margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid #eee;"><strong style="font-size:0.85rem;color:#666;">Zammad-sähköpostit</strong></div>';
const companyName = currentCompany?.nimi || '';
const companyPhone = currentCompany?.phone || '';
zammadEmails.forEach(email => {
const key = 'zammad:' + email;
const sig = currentUserSignatures[key] || defaultSig(companyName, email);
const sig = currentUserSignatures[key] || defaultSig(companyName, email, companyPhone);
sigHtml += `<div style="margin-bottom:0.75rem;">
<label style="font-weight:600;font-size:0.85rem;color:#333;">${esc(email)} <span style="color:#888;font-size:0.8rem;">(Zammad)</span></label>
<textarea class="ticket-sig-textarea" data-mailbox-id="${esc(key)}" rows="3"
@@ -2748,6 +2751,7 @@ async function showCompanyDetail(id) {
document.getElementById('company-edit-nimi').value = comp ? comp.nimi : '';
// Brändäyskentät
document.getElementById('company-edit-subtitle').value = comp?.subtitle || '';
document.getElementById('company-edit-phone').value = comp?.phone || '';
const color = comp?.primary_color || '#0f3460';
document.getElementById('company-edit-color').value = color;
document.getElementById('company-edit-color-text').value = color;
@@ -3027,6 +3031,7 @@ document.getElementById('btn-save-company-settings').addEventListener('click', a
const nimi = document.getElementById('company-edit-nimi').value.trim();
if (!nimi) return;
const subtitle = document.getElementById('company-edit-subtitle').value.trim();
const phone = document.getElementById('company-edit-phone').value.trim();
const primary_color = document.getElementById('company-edit-color').value;
const domainsText = document.getElementById('company-edit-domains').value;
const domains = domainsText.split('\n').map(d => d.trim()).filter(d => d);
@@ -3037,11 +3042,11 @@ document.getElementById('btn-save-company-settings').addEventListener('click', a
});
const allowed_ips = document.getElementById('company-edit-allowed-ips').value.trim();
try {
await apiCall('company_update', 'POST', { id: currentCompanyDetail, nimi, subtitle, primary_color, domains, enabled_modules, allowed_ips });
await apiCall('company_update', 'POST', { id: currentCompanyDetail, nimi, subtitle, phone, primary_color, domains, enabled_modules, allowed_ips });
alert('Asetukset tallennettu!');
// Päivitä paikalliset tiedot
const comp = companiesTabData.find(c => c.id === currentCompanyDetail);
if (comp) { comp.nimi = nimi; comp.subtitle = subtitle; comp.primary_color = primary_color; comp.domains = domains; comp.enabled_modules = enabled_modules; comp.allowed_ips = allowed_ips; }
if (comp) { comp.nimi = nimi; comp.subtitle = subtitle; comp.phone = phone; comp.primary_color = primary_color; comp.domains = domains; comp.enabled_modules = enabled_modules; comp.allowed_ips = allowed_ips; }
const avail = availableCompanies.find(c => c.id === currentCompanyDetail);
if (avail) avail.nimi = nimi;
populateCompanySelector();