Online Team Conference Call Organizer

Team Conference Call Organizer

Upcoming Conference Calls

TitleDate & TimeAttendeesActions

Schedule a New Conference Call

Manage Team Members / Attendees

NameEmailActions
×

Location/Link: ${call.location}


Attendees

${attendees}

Agenda

    ${agendaItems || '
  • No agenda items.
  • '}
`; this.elements.modal.style.display = 'flex'; // Attach listener to the new button inside the modal this.elements.modalBody.querySelector('#modal-download-btn').addEventListener('click', () => this.downloadCallPDF(callId)); }, closeModal() { this.elements.modal.style.display = 'none'; }, downloadCallPDF(callId) { const call = this.state.calls.find(c => c.id === callId); if (!call) return; const { jsPDF } = window.jspdf; const doc = new jsPDF(); doc.setFontSize(18); doc.text(`Conference Call: ${call.title}`, 105, 22, { align: 'center' }); doc.setFontSize(11); doc.text(`Date & Time: ${new Date(call.datetime).toLocaleString()}`, 14, 35); doc.text(`Location/Link: ${call.location}`, 14, 42); const attendees = call.attendeeIds.map(id => { const att = this.state.attendees.find(a => a.id === id); return [att.name, att.email]; }); doc.autoTable({ startY: 50, head: [['Attendees', 'Email']], body: attendees, theme: 'striped', headStyles: { fillColor: [79, 70, 229] } }); const agendaItems = call.agenda.split('\n').filter(Boolean).map(item => [item]); if (agendaItems.length > 0) { doc.autoTable({ startY: doc.autoTable.previous.finalY + 10, head: [['Agenda']], body: agendaItems, theme: 'striped', headStyles: { fillColor: [5, 150, 105] } }); } doc.save(`Call_Details_${call.title.replace(/\s/g, '_')}.pdf`); }, // --- UTILITY FUNCTIONS --- getNextId(array) { return array.length > 0 ? Math.max(...array.map(item => item.id)) + 1 : 1; }, showNotification(message, type = 'success') { const box = this.elements.notificationBox; if (!box) return; box.textContent = message; box.className = `tcco-notification ${type}`; box.classList.add('show'); setTimeout(() => { box.classList.remove('show'); }, 3000); } }; // Make TCCO object globally accessible window.TCCO = TCCO; // Start the application TCCO.init(); });
Scroll to Top