aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorgorhill <rhill@raymondhill.net>2015-03-09 19:10:04 -0400
committergorhill <rhill@raymondhill.net>2015-03-09 19:10:04 -0400
commite7479dd4beecdee1802cf831e319cde653a86be5 (patch)
treef0f360fd5acdd9c752a2e664652cfc4cdfeb9e64 /src
parent86c52305c82c901ffaf4b456f86e2f43ec174a22 (diff)
downloaduBlock-e7479dd4beecdee1802cf831e319cde653a86be5.zip
uBlock-e7479dd4beecdee1802cf831e319cde653a86be5.tar.gz
uBlock-e7479dd4beecdee1802cf831e319cde653a86be5.tar.bz2
this fixes #313
Diffstat (limited to 'src')
-rw-r--r--src/_locales/en/messages.json24
-rw-r--r--src/js/3p-filters.js4
-rw-r--r--src/js/i18n.js28
3 files changed, 55 insertions, 1 deletions
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index b4ee7c5..450c717 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -523,6 +523,30 @@
"message":"µBlock: Add the following URL to your custom filter lists?\n\nTitle: \"{{title}}\"\nURL: {{url}}",
"description":"English: The message seen by the user to confirm subscription to a ABP filter list"
},
+ "elapsedOneMinuteAgo":{
+ "message":"a minute ago",
+ "description":"English: a minute ago"
+ },
+ "elapsedManyMinutesAgo":{
+ "message":"{{value}} minutes ago",
+ "description":"English: {{value}} minutes ago"
+ },
+ "elapsedOneHourAgo":{
+ "message":"a hour ago",
+ "description":"English: a hour ago"
+ },
+ "elapsedManyHoursAgo":{
+ "message":"{{value}} hours ago",
+ "description":"English: {{value}} hours ago"
+ },
+ "elapsedOneDayAgo":{
+ "message":"a day ago",
+ "description":"English: a day ago"
+ },
+ "elapsedManyDaysAgo":{
+ "message":"{{value}} days ago",
+ "description":"English: {{value}} days ago"
+ },
"dummy":{
"message":"This entry must be the last one",
"description":"so we dont need to deal with comma for last entry"
diff --git a/src/js/3p-filters.js b/src/js/3p-filters.js
index 782c800..22226c5 100644
--- a/src/js/3p-filters.js
+++ b/src/js/3p-filters.js
@@ -127,7 +127,9 @@ var renderBlacklists = function() {
// In cache
if ( asset.cached ) {
- li.descendants('span.status.purge').css('display', '');
+ elem = li.descendants('span.status.purge');
+ elem.css('display', '');
+ elem.attr('title', renderElapsedTime(asset.lastModified));
hasCachedContent = true;
}
return li;
diff --git a/src/js/i18n.js b/src/js/i18n.js
index c9536c6..8ca47a7 100644
--- a/src/js/i18n.js
+++ b/src/js/i18n.js
@@ -20,6 +20,8 @@
*/
/* global vAPI, uDom */
+/* exported renderElapsedTime */
+
'use strict';
/******************************************************************************/
@@ -46,3 +48,29 @@ uDom.onLoad(function() {
);
});
});
+
+/******************************************************************************/
+
+var renderElapsedTime = function(tstamp) {
+ var value = (Date.now() - tstamp) / 60000;
+ if ( value < 2 ) {
+ return vAPI.i18n('elapsedOneMinuteAgo');
+ }
+ if ( value < 60 ) {
+ return vAPI.i18n('elapsedManyMinutesAgo').replace('{{value}}', Math.floor(value).toLocaleString());
+ }
+ value /= 60;
+ if ( value < 2 ) {
+ return vAPI.i18n('elapsedOneHourAgo');
+ }
+ if ( value < (24 * 60) ) {
+ return vAPI.i18n('elapsedManyHoursAgo').replace('{{value}}', Math.floor(value).toLocaleString());
+ }
+ value /= 24;
+ if ( value < 2 ) {
+ return vAPI.i18n('elapsedOneDayAgo');
+ }
+ return vAPI.i18n('elapsedManyDaysAgo').replace('{{value}}', Math.floor(value).toLocaleString());
+};
+
+/******************************************************************************/