Files
habitica/common/script/libs/taskClasses.js
2016-03-08 19:35:02 +01:00

84 lines
2.0 KiB
JavaScript

import {
shouldDo
} from '../cron';
/*
Task classes given everything about the class
*/
module.exports = function(task, filters, dayStart, lastCron, showCompleted, main) {
var classes, completed, enabled, filter, priority, ref, repeat, type, value;
if (filters == null) {
filters = [];
}
if (dayStart == null) {
dayStart = 0;
}
if (lastCron == null) {
lastCron = +(new Date);
}
if (showCompleted == null) {
showCompleted = false;
}
if (main == null) {
main = false;
}
if (!task) {
return;
}
type = task.type, completed = task.completed, value = task.value, repeat = task.repeat, priority = task.priority;
if (main) {
if (!task._editing) {
for (filter in filters) {
enabled = filters[filter];
if (enabled && !((ref = task.tags) != null ? ref[filter] : void 0)) {
return 'hidden';
}
}
}
}
classes = type;
if (task._editing) {
classes += " beingEdited";
}
if (type === 'todo' || type === 'daily') {
if (completed || (type === 'daily' && !shouldDo(+(new Date), task, {
dayStart: dayStart
}))) {
classes += " completed";
} else {
classes += " uncompleted";
}
} else if (type === 'habit') {
if (task.down && task.up) {
classes += ' habit-wide';
}
if (!task.down && !task.up) {
classes += ' habit-narrow';
}
}
if (priority === 0.1) {
classes += ' difficulty-trivial';
} else if (priority === 1) {
classes += ' difficulty-easy';
} else if (priority === 1.5) {
classes += ' difficulty-medium';
} else if (priority === 2) {
classes += ' difficulty-hard';
}
if (value < -20) {
classes += ' color-worst';
} else if (value < -10) {
classes += ' color-worse';
} else if (value < -1) {
classes += ' color-bad';
} else if (value < 1) {
classes += ' color-neutral';
} else if (value < 5) {
classes += ' color-good';
} else if (value < 10) {
classes += ' color-better';
} else {
classes += ' color-best';
}
return classes;
};