1(function (global) { 2 function computeScore(task, settings) { 3 var importance = (task.importance || 0) * (settings.importanceFactor || 0); 4 var urgency = (task.urgency || 0) * (settings.urgencyFactor || 0); 5 var timeToCompletion = (task.timeToCompletion != null ? task.timeToCompletion : 5) * (settings.timeToCompletionFactor || 0); 6 var costOfDelivery = (task.costOfDelivery != null ? task.costOfDelivery : 5) * (settings.costOfDeliveryFactor || 0); 7 var costOfDelay = (task.costOfDelay != null ? task.costOfDelay : 5) * (settings.costOfDelayFactor || 0); 8 return importance + urgency + timeToCompletion + costOfDelivery + costOfDelay; 9 } 10 11 function compareDeadline(a, b) { 12 if (!a.deadline && !b.deadline) return 0; 13 if (!a.deadline) return 1; 14 if (!b.deadline) return -1; 15 return new Date(a.deadline) - new Date(b.deadline); 16 } 17 18 function sortTasks(tasks, settings) { 19 return tasks.slice().sort(function (a, b) { 20 var diff = computeScore(b, settings) - computeScore(a, settings); 21 if (diff) return diff; 22 var d = compareDeadline(a, b); 23 if (d) return d; 24 var ea = a.estimatedMinutes || 0; 25 var eb = b.estimatedMinutes || 0; 26 if (eb !== ea) return eb - ea; 27 return String(a.createdAt || "").localeCompare(String(b.createdAt || "")); 28 }); 29 } 30 31 function priorityBand(task, settings) { 32 var score = computeScore(task, settings); 33 var maxScore = 10 * (settings.importanceFactor + settings.urgencyFactor + 34 settings.timeToCompletionFactor + settings.costOfDeliveryFactor + 35 settings.costOfDelayFactor); 36 var green = maxScore * 2 / 3; 37 var yellow = maxScore * 1 / 3; 38 if (score >= green) return "high"; 39 if (score >= yellow) return "medium"; 40 return "low"; 41 } 42 43 global.Ranking = { 44 computeScore: computeScore, 45 sortTasks: sortTasks, 46 priorityBand: priorityBand 47 }; 48})(window);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.