habitica/lib/app/helpers.js

79 lines
1.8 KiB
JavaScript
Raw Normal View History

2012-07-28 21:02:09 +00:00
// Generated by CoffeeScript 1.3.3
var moment;
moment = require('moment');
2012-07-28 21:02:09 +00:00
module.exports.daysBetween = function(a, b) {
var DAY;
DAY = 1000 * 60 * 60 * 24;
a = new Date((new Date(a)).toDateString());
b = new Date((new Date(b)).toDateString());
return Math.abs(Math.floor((a.getTime() - b.getTime()) / DAY));
};
module.exports.viewHelpers = function(view) {
view.fn('taskClasses', function(type, completed, value, repeat) {
var classes, dayMapping;
2012-07-28 21:02:09 +00:00
classes = type;
dayMapping = {
0: 'su',
1: 'm',
2: 't',
3: 'w',
4: 'th',
5: 'f',
6: 's',
7: 'su'
};
if (completed || (repeat && repeat[dayMapping[moment().day()]] === false)) {
2012-07-28 21:02:09 +00:00
classes += " completed";
}
switch (false) {
case !(value < -8):
classes += ' color-worst';
break;
case !(value >= -8 && value < -5):
classes += ' color-worse';
break;
case !(value >= -5 && value < -1):
classes += ' color-bad';
break;
case !(value >= -1 && value < 1):
classes += ' color-neutral';
break;
case !(value >= 1 && value < 5):
classes += ' color-good';
break;
case !(value >= 5 && value < 10):
classes += ' color-better';
break;
case !(value >= 10):
classes += ' color-best';
}
return classes;
});
view.fn("percent", function(x, y) {
if (x === 0) {
x = 1;
}
return Math.round(x / y * 100);
});
view.fn("round", function(num) {
return Math.round(num);
});
view.fn("gold", function(num) {
if (num) {
return num.toFixed(1).split('.')[0];
} else {
return "0";
}
});
return view.fn("silver", function(num) {
if (num) {
return num.toFixed(1).split('.')[1];
} else {
return "0";
}
});
};