mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
84 lines
2.0 KiB
JavaScript
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;
|
|
};
|