diff --git a/src/webui/www/private/scripts/dynamicTable.js b/src/webui/www/private/scripts/dynamicTable.js index e868708c9..42c016881 100644 --- a/src/webui/www/private/scripts/dynamicTable.js +++ b/src/webui/www/private/scripts/dynamicTable.js @@ -1103,7 +1103,7 @@ window.qBittorrent.DynamicTable = (function() { // eta this.columns['eta'].updateTd = function(td, row) { - const eta = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row)); + const eta = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row), window.qBittorrent.Misc.MAX_ETA)); td.set('text', eta); td.set('title', eta); }; diff --git a/src/webui/www/private/scripts/misc.js b/src/webui/www/private/scripts/misc.js index 1671f1525..f9fd8f9f8 100644 --- a/src/webui/www/private/scripts/misc.js +++ b/src/webui/www/private/scripts/misc.js @@ -43,7 +43,8 @@ window.qBittorrent.Misc = (function() { escapeHtml: escapeHtml, safeTrim: safeTrim, toFixedPointString: toFixedPointString, - containsAllTerms: containsAllTerms + containsAllTerms: containsAllTerms, + MAX_ETA: 8640000 }; }; @@ -94,9 +95,8 @@ window.qBittorrent.Misc = (function() { /* * JS counterpart of the function in src/misc.cpp */ - const friendlyDuration = function(seconds) { - const MAX_ETA = 8640000; - if (seconds < 0 || seconds >= MAX_ETA) + const friendlyDuration = function(seconds, maxCap = -1) { + if (seconds < 0 || ((seconds >= maxCap) && (maxCap >= 0))) return "∞"; if (seconds === 0) return "0"; @@ -109,11 +109,13 @@ window.qBittorrent.Misc = (function() { minutes = minutes % 60; if (hours < 24) return "QBT_TR(%1h %2m)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(hours)).replace("%2", parseInt(minutes)); - const days = hours / 24; + let days = hours / 24; hours = hours % 24; - if (days < 100) + if (days < 365) return "QBT_TR(%1d %2h)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(days)).replace("%2", parseInt(hours)); - return "∞"; + const years = days / 365; + days = days % 365; + return "QBT_TR(%1y %2d)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(years)).replace("%2", parseInt(days)); } const friendlyPercentage = function(value) { @@ -213,3 +215,5 @@ window.qBittorrent.Misc = (function() { return exports(); })(); + +Object.freeze(window.qBittorrent.Misc); diff --git a/src/webui/www/private/scripts/prop-general.js b/src/webui/www/private/scripts/prop-general.js index f820e553a..69285d0d9 100644 --- a/src/webui/www/private/scripts/prop-general.js +++ b/src/webui/www/private/scripts/prop-general.js @@ -105,7 +105,7 @@ window.qBittorrent.PropGeneral = (function() { temp = window.qBittorrent.Misc.friendlyDuration(data.time_elapsed); $('time_elapsed').set('html', temp); - $('eta').set('html', window.qBittorrent.Misc.friendlyDuration(data.eta)); + $('eta').set('html', window.qBittorrent.Misc.friendlyDuration(data.eta, window.qBittorrent.Misc.MAX_ETA)); temp = "QBT_TR(%1 (%2 max))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", data.nb_connections)