Make prettyDates translatable

This commit is contained in:
Johannes Zellner
2021-04-01 17:04:46 +02:00
parent b9ef941b80
commit ae36ce07d1
3 changed files with 26 additions and 13 deletions

View File

@@ -112,27 +112,27 @@ angular.module('Application').filter('trKeyFromPeriod', function () {
};
});
angular.module('Application').filter('prettyDate', function () {
angular.module('Application').filter('prettyDate', function ($translate) {
// http://ejohn.org/files/pretty.js
return function prettyDate(utc) {
var date = new Date(utc), // this converts utc into browser timezone and not cloudron timezone!
diff = (((new Date()).getTime() - date.getTime()) / 1000) + 30, // add 30seconds for clock skew
day_diff = Math.floor(diff / 86400);
if (isNaN(day_diff) || day_diff < 0)
return 'just now';
if (isNaN(day_diff) || day_diff < 0) return $translate.instant('main.prettyDate.justNow', {});
return day_diff === 0 && (
diff < 60 && 'just now' ||
diff < 120 && '1 minute ago' ||
diff < 3600 && Math.floor( diff / 60 ) + ' minutes ago' ||
diff < 7200 && '1 hour ago' ||
diff < 86400 && Math.floor( diff / 3600 ) + ' hours ago') ||
day_diff === 1 && 'Yesterday' ||
day_diff < 7 && day_diff + ' days ago' ||
day_diff < 31 && Math.ceil( day_diff / 7 ) + ' weeks ago' ||
day_diff < 365 && Math.round( day_diff / 30 ) + ' months ago' ||
Math.round( day_diff / 365 ) + ' years ago';
diff < 60 && $translate.instant('main.prettyDate.justNow', {}) ||
diff < 120 && $translate.instant('main.prettyDate.minutesAgo', { m: 1 }) ||
diff < 3600 && $translate.instant('main.prettyDate.minutesAgo', { m: Math.floor( diff / 60 ) }) ||
diff < 7200 && $translate.instant('main.prettyDate.hoursAgo', { h: 1 }) ||
diff < 86400 && $translate.instant('main.prettyDate.hoursAgo', { h: Math.floor( diff / 3600 ) })
) ||
day_diff === 1 && $translate.instant('main.prettyDate.yeserday', {}) ||
day_diff < 7 && $translate.instant('main.prettyDate.daysAgo', { d: day_diff }) ||
day_diff < 31 && $translate.instant('main.prettyDate.weeksAgo', { w: Math.ceil( day_diff / 7 ) }) ||
day_diff < 365 && $translate.instant('main.prettyDate.monthsAgo', { m: Math.round( day_diff / 30 ) }) ||
$translate.instant('main.prettyDate.yearsAgo', { m: Math.round( day_diff / 365 ) });
};
});