Task Auto-Prioritizer

Task Auto-Prioritizer

Organize your workload using the Eisenhower Matrix method.

Add a New Task

3
3

Your Task List

No tasks added yet.

'; prioritizeTasksBtn.disabled = true; return; } prioritizeTasksBtn.disabled = false; appData.tasks.forEach(task => { const taskEl = document.createElement('div'); taskEl.className = 'flex items-center justify-between p-3 bg-gray-50 border rounded-lg'; taskEl.innerHTML = ` ${task.name} Imp: ${task.importance} Urg: ${task.urgency} `; taskListContainer.appendChild(taskEl); }); }; addTaskBtn.addEventListener('click', () => { const name = taskNameInput.value.trim(); if (!name) { showMessage('Please enter a task name.'); return; } const newTask = { id: Date.now(), name, importance: parseInt(importanceInput.value, 10), urgency: parseInt(urgencyInput.value, 10) }; appData.tasks.push(newTask); saveData(); renderTaskList(); taskNameInput.value = ''; showMessage('Task added successfully!', false); }); taskListContainer.addEventListener('click', (e) => { if (e.target.classList.contains('delete-task-btn')) { const taskId = parseInt(e.target.dataset.taskId, 10); appData.tasks = appData.tasks.filter(t => t.id !== taskId); saveData(); renderTaskList(); } }); // --- TAB 2: PRIORITIZATION --- prioritizeTasksBtn.addEventListener('click', () => { const categorizedTasks = { doFirst: [], schedule: [], delegate: [], eliminate: [] }; appData.tasks.forEach(task => { // Using a threshold of 3 on a 1-5 scale const isImportant = task.importance > 3; const isUrgent = task.urgency > 3; if (isImportant && isUrgent) { categorizedTasks.doFirst.push(task); } else if (isImportant && !isUrgent) { categorizedTasks.schedule.push(task); } else if (!isImportant && isUrgent) { categorizedTasks.delegate.push(task); } else { categorizedTasks.eliminate.push(task); } }); renderPrioritizedLists(categorizedTasks); switchTab('tab2'); }); const renderPrioritizedLists = (categorizedTasks) => { doFirstList.innerHTML = categorizedTasks.doFirst.map(t => `
  • ${t.name}
  • `).join('') || '
  • None
  • '; scheduleList.innerHTML = categorizedTasks.schedule.map(t => `
  • ${t.name}
  • `).join('') || '
  • None
  • '; delegateList.innerHTML = categorizedTasks.delegate.map(t => `
  • ${t.name}
  • `).join('') || '
  • None
  • '; eliminateList.innerHTML = categorizedTasks.eliminate.map(t => `
  • ${t.name}
  • `).join('') || '
  • None
  • '; }; // --- PDF DOWNLOAD --- downloadPdfBtn.addEventListener('click', () => { showMessage('Preparing PDF...', false); const { jsPDF } = window.jspdf; const element = document.getElementById('pdf-export-area'); html2canvas(element, { scale: 2, useCORS: true }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'portrait', unit: 'in', format: 'letter' }); const pdfWidth = pdf.internal.pageSize.getWidth() - 1; const pdfHeight = (canvas.height * pdfWidth) / canvas.width; pdf.addImage(imgData, 'PNG', 0.5, 0.5, pdfWidth, pdfHeight); pdf.save('Task_Prioritization_Plan.pdf'); showMessage('PDF downloaded successfully!', false); }).catch(err => { console.error("PDF Generation Error:", err); showMessage("An error occurred during PDF generation."); }); }); // --- INITIALIZATION --- const initializeApp = () => { loadData(); renderTaskList(); switchTab('tab1'); }; initializeApp(); });
    Scroll to Top