diff --git a/script.js b/script.js index 6aaae3a..0936426 100644 --- a/script.js +++ b/script.js @@ -1440,6 +1440,7 @@ async function showTicketDetail(id, companyId = '') { + @@ -1567,6 +1568,11 @@ async function showTicketDetail(id, companyId = '') { } catch (e) { alert(e.message); } }); + // Luo tehtävä tiketistä + document.getElementById('btn-ticket-to-todo')?.addEventListener('click', () => { + createTodoFromTicket(ticket); + }); + // Tags: add new tag on Enter document.getElementById('ticket-tag-input').addEventListener('keydown', async (e) => { if (e.key !== 'Enter') return; @@ -3901,6 +3907,27 @@ let todosData = []; let currentTodoId = null; let currentTodoSubTab = 'tasks'; +function createTodoFromTicket(ticket) { + // Vaihda todo-välilehdelle ja avaa uusi tehtävälomake esitäytetyillä tiedoilla + switchToTab('todo'); + switchTodoSubTab('tasks'); + // Pieni viive jotta tab ehtii renderöityä + setTimeout(async () => { + await openTaskEdit(null); + const num = ticket.ticket_number ? `#${ticket.ticket_number} ` : ''; + document.getElementById('task-form-title').value = num + (ticket.subject || ''); + // Mapataan tiketin tyyppi tehtävän kategoriaan + const catMap = { tekniikka: 'tekniikka', laskutus: 'laskutus', vika: 'tekniikka', muu: 'muu' }; + document.getElementById('task-form-category').value = catMap[ticket.type] || ''; + // Mapataan prioriteetti + const prioMap = { urgent: 'kiireellinen', 'tärkeä': 'tarkea', normaali: 'normaali' }; + document.getElementById('task-form-priority').value = prioMap[ticket.priority] || 'normaali'; + // Kuvaus: lähettäjä + lyhyt viite + const desc = `Tiketti${num ? ' ' + num : ''}: ${ticket.subject || ''}\nLähettäjä: ${ticket.from_name || ''} <${ticket.from_email || ''}>`; + document.getElementById('task-form-desc').value = desc; + }, 100); +} + const todoStatusLabels = { avoin:'Avoin', kaynnissa:'Käynnissä', odottaa:'Odottaa', valmis:'Valmis', ehdotettu:'Ehdotettu', harkinnassa:'Harkinnassa', toteutettu:'Toteutettu', hylatty:'Hylätty' }; const todoPriorityLabels = { normaali:'Normaali', tarkea:'Tärkeä', kiireellinen:'Kiireellinen' }; const todoCategoryLabels = { tekniikka:'Tekniikka', laskutus:'Laskutus', myynti:'Myynti', asennus:'Asennus', muu:'Muu' };