Browse Source

Merge pull request #14554 from thalieht/seeding_time_webui

Seeding time in WebUI
adaptive-webui-19844
Mike Tzou 4 years ago committed by GitHub
parent
commit
87ad8a1495
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      src/webui/api/serialize/serialize_torrent.cpp
  2. 1
      src/webui/api/serialize/serialize_torrent.h
  3. 11
      src/webui/www/private/scripts/dynamicTable.js
  4. 18
      src/webui/www/private/scripts/misc.js
  5. 4
      src/webui/www/private/scripts/prop-general.js

1
src/webui/api/serialize/serialize_torrent.cpp

@ -148,6 +148,7 @@ QVariantMap serialize(const BitTorrent::Torrent &torrent)
{KEY_TORRENT_LAST_SEEN_COMPLETE_TIME, torrent.lastSeenComplete().toSecsSinceEpoch()}, {KEY_TORRENT_LAST_SEEN_COMPLETE_TIME, torrent.lastSeenComplete().toSecsSinceEpoch()},
{KEY_TORRENT_AUTO_TORRENT_MANAGEMENT, torrent.isAutoTMMEnabled()}, {KEY_TORRENT_AUTO_TORRENT_MANAGEMENT, torrent.isAutoTMMEnabled()},
{KEY_TORRENT_TIME_ACTIVE, torrent.activeTime()}, {KEY_TORRENT_TIME_ACTIVE, torrent.activeTime()},
{KEY_TORRENT_SEEDING_TIME, torrent.seedingTime()},
{KEY_TORRENT_LAST_ACTIVITY_TIME, adjustLastActivity(torrent.timeSinceActivity())}, {KEY_TORRENT_LAST_ACTIVITY_TIME, adjustLastActivity(torrent.timeSinceActivity())},
{KEY_TORRENT_AVAILABILITY, torrent.distributedCopies()}, {KEY_TORRENT_AVAILABILITY, torrent.distributedCopies()},

1
src/webui/api/serialize/serialize_torrent.h

@ -80,6 +80,7 @@ const char KEY_TORRENT_LAST_ACTIVITY_TIME[] = "last_activity";
const char KEY_TORRENT_TOTAL_SIZE[] = "total_size"; const char KEY_TORRENT_TOTAL_SIZE[] = "total_size";
const char KEY_TORRENT_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm"; const char KEY_TORRENT_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm";
const char KEY_TORRENT_TIME_ACTIVE[] = "time_active"; const char KEY_TORRENT_TIME_ACTIVE[] = "time_active";
const char KEY_TORRENT_SEEDING_TIME[] = "seeding_time";
const char KEY_TORRENT_AVAILABILITY[] = "availability"; const char KEY_TORRENT_AVAILABILITY[] = "availability";
QVariantMap serialize(const BitTorrent::Torrent &torrent); QVariantMap serialize(const BitTorrent::Torrent &torrent);

11
src/webui/www/private/scripts/dynamicTable.js

@ -856,6 +856,7 @@ window.qBittorrent.DynamicTable = (function() {
this.columns['num_seeds'].dataProperties.push('num_complete'); this.columns['num_seeds'].dataProperties.push('num_complete');
this.columns['num_leechs'].dataProperties.push('num_incomplete'); this.columns['num_leechs'].dataProperties.push('num_incomplete');
this.columns['time_active'].dataProperties.push('seeding_time');
this.initColumnsFunctions(); this.initColumnsFunctions();
}, },
@ -1102,7 +1103,7 @@ window.qBittorrent.DynamicTable = (function() {
// eta // eta
this.columns['eta'].updateTd = function(td, row) { 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('text', eta);
td.set('title', eta); td.set('title', eta);
}; };
@ -1161,7 +1162,13 @@ window.qBittorrent.DynamicTable = (function() {
// time active // time active
this.columns['time_active'].updateTd = function(td, row) { this.columns['time_active'].updateTd = function(td, row) {
const time = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row)); const activeTime = this.getRowValue(row, 0);
const seedingTime = this.getRowValue(row, 1);
const time = (seedingTime > 0)
? ('QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=TransferListDelegate]'
.replace('%1', window.qBittorrent.Misc.friendlyDuration(activeTime))
.replace('%2', window.qBittorrent.Misc.friendlyDuration(seedingTime)))
: window.qBittorrent.Misc.friendlyDuration(activeTime);
td.set('text', time); td.set('text', time);
td.set('title', time); td.set('title', time);
}; };

18
src/webui/www/private/scripts/misc.js

@ -43,7 +43,8 @@ window.qBittorrent.Misc = (function() {
escapeHtml: escapeHtml, escapeHtml: escapeHtml,
safeTrim: safeTrim, safeTrim: safeTrim,
toFixedPointString: toFixedPointString, 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 * JS counterpart of the function in src/misc.cpp
*/ */
const friendlyDuration = function(seconds) { const friendlyDuration = function(seconds, maxCap = -1) {
const MAX_ETA = 8640000; if (seconds < 0 || ((seconds >= maxCap) && (maxCap >= 0)))
if (seconds < 0 || seconds >= MAX_ETA)
return "∞"; return "∞";
if (seconds === 0) if (seconds === 0)
return "0"; return "0";
@ -109,11 +109,13 @@ window.qBittorrent.Misc = (function() {
minutes = minutes % 60; minutes = minutes % 60;
if (hours < 24) if (hours < 24)
return "QBT_TR(%1h %2m)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(hours)).replace("%2", parseInt(minutes)); 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; 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 "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) { const friendlyPercentage = function(value) {
@ -213,3 +215,5 @@ window.qBittorrent.Misc = (function() {
return exports(); return exports();
})(); })();
Object.freeze(window.qBittorrent.Misc);

4
src/webui/www/private/scripts/prop-general.js

@ -98,14 +98,14 @@ window.qBittorrent.PropGeneral = (function() {
let temp; let temp;
// Update Torrent data // Update Torrent data
if (data.seeding_time > 0) if (data.seeding_time > 0)
temp = "QBT_TR(%1 (%2 this session))QBT_TR[CONTEXT=PropertiesWidget]" temp = "QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=PropertiesWidget]"
.replace("%1", window.qBittorrent.Misc.friendlyDuration(data.time_elapsed)) .replace("%1", window.qBittorrent.Misc.friendlyDuration(data.time_elapsed))
.replace("%2", window.qBittorrent.Misc.friendlyDuration(data.seeding_time)); .replace("%2", window.qBittorrent.Misc.friendlyDuration(data.seeding_time));
else else
temp = window.qBittorrent.Misc.friendlyDuration(data.time_elapsed); temp = window.qBittorrent.Misc.friendlyDuration(data.time_elapsed);
$('time_elapsed').set('html', temp); $('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]" temp = "QBT_TR(%1 (%2 max))QBT_TR[CONTEXT=PropertiesWidget]"
.replace("%1", data.nb_connections) .replace("%1", data.nb_connections)

Loading…
Cancel
Save