You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/UI/Shared/FormatHelpers.js

71 lines
1.6 KiB

var moment = require('moment');
var filesize = require('filesize');
var UiSettings = require('./UiSettingsModel');
module.exports = {
bytes : function(sourceSize, sourceRounding) {
var size = Number(sourceSize);
var rounding = Number(sourceRounding);
if (isNaN(size)) {
return '';
}
if (isNaN(rounding)) {
rounding = 1;
}
return filesize(size, {
base : 2,
round : rounding
});
},
relativeDate : function(sourceDate) {
if (!sourceDate) {
return '';
}
var date = moment(sourceDate);
var calendarDate = date.calendar();
//TODO: It would be nice to not have to hack this...
var strippedCalendarDate = calendarDate.substring(0, calendarDate.indexOf(' at '));
if (strippedCalendarDate) {
return strippedCalendarDate;
}
if (date.isAfter(moment())) {
return 'in ' + date.fromNow(true);
}
if (date.isBefore(moment().add('years', -1))) {
return date.format(UiSettings.get('shortDateFormat'));
}
return date.fromNow();
},
pad : function(n, width, z) {
z = z || '0';
n = n + '';
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
},
number : function(input) {
if (!input) {
return '0';
}
return input.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
},
plural : function(input, unit) {
if (input === 1) {
return unit;
}
return unit + 's';
}
};