diff --git a/src/webui/api/serialize/serialize_torrent.cpp b/src/webui/api/serialize/serialize_torrent.cpp index d39115091..7f64d37c8 100644 --- a/src/webui/api/serialize/serialize_torrent.cpp +++ b/src/webui/api/serialize/serialize_torrent.cpp @@ -147,6 +147,7 @@ QVariantMap serialize(const BitTorrent::Torrent &torrent) {KEY_TORRENT_LAST_SEEN_COMPLETE_TIME, torrent.lastSeenComplete().toSecsSinceEpoch()}, {KEY_TORRENT_AUTO_TORRENT_MANAGEMENT, torrent.isAutoTMMEnabled()}, {KEY_TORRENT_TIME_ACTIVE, torrent.activeTime()}, + {KEY_TORRENT_SEEDING_TIME, torrent.seedingTime()}, {KEY_TORRENT_LAST_ACTIVITY_TIME, adjustLastActivity(torrent.timeSinceActivity())}, {KEY_TORRENT_AVAILABILITY, torrent.distributedCopies()}, diff --git a/src/webui/api/serialize/serialize_torrent.h b/src/webui/api/serialize/serialize_torrent.h index 1db455af1..84c53c2ae 100644 --- a/src/webui/api/serialize/serialize_torrent.h +++ b/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_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm"; const char KEY_TORRENT_TIME_ACTIVE[] = "time_active"; +const char KEY_TORRENT_SEEDING_TIME[] = "seeding_time"; const char KEY_TORRENT_AVAILABILITY[] = "availability"; QVariantMap serialize(const BitTorrent::Torrent &torrent); diff --git a/src/webui/www/private/scripts/dynamicTable.js b/src/webui/www/private/scripts/dynamicTable.js index 368eb6efd..e868708c9 100644 --- a/src/webui/www/private/scripts/dynamicTable.js +++ b/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_leechs'].dataProperties.push('num_incomplete'); + this.columns['time_active'].dataProperties.push('seeding_time'); this.initColumnsFunctions(); }, @@ -1161,7 +1162,13 @@ window.qBittorrent.DynamicTable = (function() { // time active 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('title', time); };