From efc1fd7ecbc0985bb5d6e4d59c07b7d90f40457a Mon Sep 17 00:00:00 2001 From: 702573N M4275CH1NK3 <59178587+702573N@users.noreply.github.com> Date: Tue, 14 Feb 2023 06:35:31 +0100 Subject: [PATCH] Add: cancelled tasks and tooltips --- Taskido/view.js | 61 ++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/Taskido/view.js b/Taskido/view.js index 201e25a..0eca75d 100644 --- a/Taskido/view.js +++ b/Taskido/view.js @@ -10,7 +10,7 @@ if (!taskFiles) { taskFiles = [...new Set(dv.pages().file.map(f=>f.tasks.filter( if (!options) {options = ""}; if (!dailyNoteFolder) {dailyNoteFolder = ""} else {dailyNoteFolder = dailyNoteFolder+"/"}; if (!dailyNoteFormat) {dailyNoteFormat = "YYYY-MM-DD"}; -if (!taskOrder) {taskOrder = ["overdue", "due", "scheduled", "start", "process", "unplanned","done"]}; +if (!taskOrder) {taskOrder = ["overdue", "due", "scheduled", "start", "process", "unplanned","done","cancelled"]}; if (!sort) {sort = "t=>t.order"}; if (!dateFormat) {dateFormat = "ddd, MMM D"}; // "ddd, MMM D" // "MMMM D" if (!select) {select = "dailyNote"}; @@ -41,7 +41,8 @@ var repeatIcon = '= today) { + timelineDates.push(moment(dailyNoteMatch[1], dailyNoteFormat).format("YYYY-MM-DD")); + happens["cancelled"] = moment(dailyNoteMatch[1], dailyNoteFormat).format("YYYY-MM-DD"); + tasks[i].order = taskOrder.indexOf("cancelled"); } else if (dailyNoteMatch) { tasks[i].dailyNote = true; } else if (!dailyNoteMatch) { @@ -96,9 +101,9 @@ function getMeta(tasks) { var inlineField = inlineFields[0]; var fieldKey = inlineFields[1].toLowerCase(); var fieldValue = inlineFields[2]; - if ( fieldKey == "due" || fieldKey == "scheduled" || fieldKey == "start" || fieldKey == "completed") { + if ( fieldKey == "due" || fieldKey == "scheduled" || fieldKey == "start" || fieldKey == "completion") { var fieldDate = moment(fieldValue).format("YYYY-MM-DD"); - if (tasks[i].completed == false) { + if (tasks[i].completed == false && tasks[i].checked == false) { if ( fieldKey == "due" && fieldDate < today ) { if (forward == true) { happens["overdue"] = fieldDate; @@ -136,11 +141,14 @@ function getMeta(tasks) { tasks[i].order = taskOrder.indexOf("start"); timelineDates.push(fieldDate); }; - } else if (tasks[i].completed == true) { + } else if (tasks[i].completed == true && tasks[i].checked == true) { if (fieldKey == "completion") { happens["done"] = fieldDate; tasks[i].order = taskOrder.indexOf("done"); }; + } else if (tasks[i].completed == false && tasks[i].checked == true && fieldDate >= today) { + happens["cancelled"] = fieldDate; + tasks[i].order = taskOrder.indexOf("cancelled"); }; }; tasks[i].text = tasks[i].text.replace(inlineField, ""); @@ -148,7 +156,7 @@ function getMeta(tasks) { // Tasks Plugin Tasks var dueMatch = taskText.match(/📅 *(\d{4}-\d{2}-\d{2})/); - if (dueMatch && tasks[i].completed == false) { + if (dueMatch && tasks[i].completed == false && tasks[i].checked == false) { tasks[i].text = tasks[i].text.replace(dueMatch[0], ""); if ( dueMatch[1] < today ) { if (forward == true) { @@ -169,11 +177,16 @@ function getMeta(tasks) { tasks[i].order = taskOrder.indexOf("due"); timelineDates.push(dueMatch[1]); }; - } else if (dueMatch && tasks[i].completed == true) { + } else if (dueMatch && tasks[i].completed == true && tasks[i].checked == true) { tasks[i].text = tasks[i].text.replace(dueMatch[0], ""); + } else if (dueMatch && tasks[i].completed == false && tasks[i].checked == true && dueMatch[1] >= today) { + tasks[i].text = tasks[i].text.replace(dueMatch[0], ""); + happens["cancelled"] = dueMatch[1]; + tasks[i].order = taskOrder.indexOf("cancelled"); + timelineDates.push(dueMatch[1]); }; var scheduledMatch = taskText.match(/⏳ *(\d{4}-\d{2}-\d{2})/); - if (scheduledMatch && tasks[i].completed == false) { + if (scheduledMatch && tasks[i].completed == false && tasks[i].checked == false) { tasks[i].text = tasks[i].text.replace(scheduledMatch[0], ""); if ( scheduledMatch[1] < today ) { happens["scheduled"] = scheduledMatch[1]; @@ -188,7 +201,7 @@ function getMeta(tasks) { tasks[i].text = tasks[i].text.replace(scheduledMatch[0], ""); }; var startMatch = taskText.match(/🛫 *(\d{4}-\d{2}-\d{2})/); - if (startMatch && tasks[i].completed == false) { + if (startMatch && tasks[i].completed == false && tasks[i].checked == false) { tasks[i].text = tasks[i].text.replace(startMatch[0], ""); if ( startMatch[1] < today ) { happens["start"] = startMatch[1]; @@ -203,7 +216,7 @@ function getMeta(tasks) { tasks[i].text = tasks[i].text.replace(startMatch[0], ""); }; var doneMatch = taskText.match(/✅ *(\d{4}-\d{2}-\d{2})/); - if (doneMatch && tasks[i].completed == true) { + if (doneMatch && tasks[i].completed == true && tasks[i].checked == true) { tasks[i].text = tasks[i].text.replace(doneMatch[0], ""); if (done == true || doneMatch[1] == today) { timelineDates.push(doneMatch[1]); @@ -537,16 +550,16 @@ function getTimeline(tasks) { var allCount = doneCount + todoCount + overdueCount; // Counter - var todayContent = "
Today
" + var todayContent = "
Today
" todayContent += "
" - todayContent += "
" + todoCount + "
To Do
" - todayContent += "
" + overdueCount + "
Overdue
" - todayContent += "
" + unplannedCount + "
Unplanned
" + todayContent += "
" + todoCount + "
To Do
" + todayContent += "
" + overdueCount + "
Overdue
" + todayContent += "
" + unplannedCount + "
Unplanned
" todayContent += "
" // Quick Entry panel todayContent += "
" - todayContent += "
" - todayContent += "
" todayContent += "
" @@ -578,19 +591,19 @@ function getTimeline(tasks) { // Append relative infos if (!key.includes("Forward") && key != "unplanned") { - info += "
" + eval(key+"Icon") + "
" + relative + "
"; + info += "
" + eval(key+"Icon") + "
" + relative + "
"; }; }; if (item.repeat) { - info += "
" + repeatIcon + "
" + item.repeat.replace("🔁", "") + "
"; + info += "
" + repeatIcon + "
" + item.repeat.replace("🔁", "") + "
"; }; if (item.priorityLabel) { - info += "
" + priorityIcon + "
" + item.priorityLabel + "
"; + info += "
" + priorityIcon + "
" + item.priorityLabel + "
"; }; - info += "
" + fileIcon + "
" + file + "
"; + info += "
" + fileIcon + "
" + file + "
"; item.tags.forEach(function(tag) { var tagText = tag.replace("#",""); @@ -601,13 +614,13 @@ function getTimeline(tasks) { } else { var style = "style='--tag-color:var(--text-muted)'"; }; - info += "
" + tagIcon + "
" + tagText + "
"; + info += "
" + tagIcon + "
" + tagText + "
"; text = text.replace(tag, ""); }); if (item.completed) { var icon = doneIcon } else { var icon = taskIcon }; - if (cls == "overdue") { var icon = alertIcon }; - var task = "
" + icon + "
" + text + "
" + info + "
"; + if (cls == "overdue") { var icon = alertIcon } else if (cls == "cancelled") { var icon = cancelledIcon }; + var task = "
" + icon + "
" + text + "
" + info + "
"; content += task; });