From a4a54ce7122a2592e9cccc062b9b5291c727b2e4 Mon Sep 17 00:00:00 2001 From: thalieht Date: Fri, 12 Mar 2021 18:28:07 +0200 Subject: [PATCH] Allow >100 days in WebUI function "friendlyDuration" Because it's not only used for ETA. --- src/webui/www/private/scripts/dynamicTable.js | 2 +- src/webui/www/private/scripts/misc.js | 18 +++++++++++------- src/webui/www/private/scripts/prop-general.js | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) 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)