2
diff --git a/deluge/ui/gtkui/status_tab.py b/deluge/ui/gtkui/status_tab.py
index 9a597ba57..10388d559 100644
--- a/deluge/ui/gtkui/status_tab.py
+++ b/deluge/ui/gtkui/status_tab.py
@@ -64,6 +64,13 @@ def fspeed(value, max_value=-1):
else:
return deluge.common.fspeed(value)
+def fdate(value):
+ """Display value as date, eg 05/05/08 or blank"""
+ if value > 0.0:
+ return deluge.common.fdate(value)
+ else:
+ return ""
+
def fdate_or_never(value):
"""Display value as date, eg 05/05/08 or Never"""
if value > 0.0:
@@ -95,7 +102,7 @@ class StatusTab(Tab):
(builder.get_object("summary_total_uploaded"), fpeer_sized, ("total_uploaded", "total_payload_upload")),
(builder.get_object("summary_download_speed"), fspeed, ("download_payload_rate", "max_download_speed")),
(builder.get_object("summary_upload_speed"), fspeed, ("upload_payload_rate", "max_upload_speed")),
- (builder.get_object("summary_seeders"), deluge.common.fpeer, ("num_seeds", "total_seeds")),
+ (builder.get_object("summary_seeds"), deluge.common.fpeer, ("num_seeds", "total_seeds")),
(builder.get_object("summary_peers"), deluge.common.fpeer, ("num_peers", "total_peers")),
(builder.get_object("summary_eta"), deluge.common.ftime, ("eta",)),
(builder.get_object("summary_share_ratio"), fratio, ("ratio",)),
@@ -108,6 +115,7 @@ class StatusTab(Tab):
(builder.get_object("progressbar"), fpcnt, ("progress",)),
(builder.get_object("summary_date_added"), deluge.common.fdate, ("time_added",)),
(builder.get_object("summary_last_seen_complete"), fdate_or_never, ("last_seen_complete",)),
+ (builder.get_object("summary_completed"), fdate, ("completed_time",)),
]
def update(self):
@@ -129,7 +137,8 @@ class StatusTab(Tab):
"total_seeds", "eta", "ratio", "next_announce",
"tracker_status", "max_connections", "max_upload_slots",
"max_upload_speed", "max_download_speed", "active_time",
- "seeding_time", "seed_rank", "is_auto_managed", "time_added", "last_seen_complete"]
+ "seeding_time", "seed_rank", "is_auto_managed", "time_added",
+ "last_seen_complete", "completed_time"]
if self.config['show_piecesbar']:
status_keys.extend(["pieces", "state"])
diff --git a/deluge/ui/gtkui/torrentview.py b/deluge/ui/gtkui/torrentview.py
index f7c771516..4f38ae50b 100644
--- a/deluge/ui/gtkui/torrentview.py
+++ b/deluge/ui/gtkui/torrentview.py
@@ -271,13 +271,13 @@ class TorrentView(listview.ListView, component.Component):
status_field=["progress", "state"],
col_types=[float, str],
function=funcs.cell_data_progress)
- self.add_func_column(_("Seeders"), funcs.cell_data_peer, [int, int],
+ self.add_func_column(_("Seeds"), funcs.cell_data_peer, [int, int],
status_field=["num_seeds", "total_seeds"],
sort_func=seed_peer_column_sort, default=False)
self.add_func_column(_("Peers"), funcs.cell_data_peer, [int, int],
status_field=["num_peers", "total_peers"],
sort_func=seed_peer_column_sort, default=False)
- self.add_func_column(_("Seeders") + "/" + _("Peers"), funcs.cell_data_ratio_seeders, [float],
+ self.add_func_column(_("Seeds:Peers"), funcs.cell_data_ratio_seeds_peers, [float],
status_field=["seeds_peers_ratio"], default=False)
self.add_func_column(_("Down Speed"), funcs.cell_data_speed_down, [float],
status_field=["download_payload_rate"])
@@ -295,15 +295,12 @@ class TorrentView(listview.ListView, component.Component):
status_field=["distributed_copies"], default=False)
self.add_func_column(_("Added"), funcs.cell_data_date, [float],
status_field=["time_added"], default=False)
- self.add_func_column(_("Completed"),
- funcs.cell_data_date_or_never, [float],
+ self.add_func_column(_("Completed"), funcs.cell_data_date, [float],
status_field=["completed_time"], default=False)
- self.add_func_column(_("Last Seen Complete"),
- funcs.cell_data_date_or_never, [float],
+ self.add_func_column(_("Complete Seen"), funcs.cell_data_date_or_never, [float],
status_field=["last_seen_complete"], default=False)
- self.add_texticon_column(_("Tracker"),
- status_field=["tracker_host", "tracker_host"],
- function=funcs.cell_data_trackericon, default=False)
+ self.add_texticon_column(_("Tracker"), function=funcs.cell_data_trackericon,
+ status_field=["tracker_host", "tracker_host"], default=False)
self.add_text_column(_("Save Path"), status_field=["save_path"], default=False)
self.add_text_column(_("Owner"), status_field=["owner"], default=False)
self.restore_columns_order_from_state()
diff --git a/deluge/ui/gtkui/torrentview_data_funcs.py b/deluge/ui/gtkui/torrentview_data_funcs.py
index edba5b6ae..1070447aa 100644
--- a/deluge/ui/gtkui/torrentview_data_funcs.py
+++ b/deluge/ui/gtkui/torrentview_data_funcs.py
@@ -84,7 +84,7 @@ def _t(text):
func_last_value = {"cell_data_speed_down": None,
"cell_data_speed_up": None,
"cell_data_time": None,
- "cell_data_ratio_seeders": None,
+ "cell_data_ratio_seeds_peers": None,
"cell_data_ratio_ratio": None,
"cell_data_ratio_avail": None,
"cell_data_date": None,
@@ -269,8 +269,8 @@ def cell_data_ratio(cell, model, row, data, cache_key):
func_last_value[cache_key] = ratio
cell.set_property('text', "∞" if ratio < 0 else "%.3f" % ratio)
-def cell_data_ratio_seeders(column, cell, model, row, data):
- cell_data_ratio(cell, model, row, data, "cell_data_ratio_seeders")
+def cell_data_ratio_seeds_peers(column, cell, model, row, data):
+ cell_data_ratio(cell, model, row, data, "cell_data_ratio_seeds_peers")
def cell_data_ratio_ratio(column, cell, model, row, data):
cell_data_ratio(cell, model, row, data, "cell_data_ratio_ratio")
@@ -286,7 +286,7 @@ def cell_data_date(column, cell, model, row, data):
return
func_last_value["cell_data_date"] = date
- date_str = common.fdate(date)
+ date_str = common.fdate(date) if date > 0.0 else ""
cell.set_property('text', date_str)
def cell_data_date_or_never(column, cell, model, row, data):
diff --git a/deluge/ui/web/js/deluge-all/Keys.js b/deluge/ui/web/js/deluge-all/Keys.js
index 48970b99a..9aa3a293c 100644
--- a/deluge/ui/web/js/deluge-all/Keys.js
+++ b/deluge/ui/web/js/deluge-all/Keys.js
@@ -42,9 +42,9 @@ Deluge.Keys = {
* ['queue', 'name', 'total_size', 'total_wanted', 'state', 'progress', 'num_seeds',
* 'total_seeds', 'num_peers', 'total_peers', 'download_payload_rate',
* 'upload_payload_rate', 'eta', 'ratio', 'distributed_copies',
- * 'is_auto_managed', 'time_added', 'tracker_host', 'save_path',
+ * 'is_auto_managed', 'time_added', 'tracker_host', 'save_path', 'last_seen_complete',
* 'total_done', 'total_uploaded', 'max_download_speed', 'max_upload_speed',
- * 'seeds_peers_ratio', 'total_remaining']
+ * 'seeds_peers_ratio', 'total_remaining', 'completed_time']
*/
Grid: [
'queue', 'name', 'total_size', 'total_wanted', 'state', 'progress', 'num_seeds',
@@ -52,7 +52,7 @@ Deluge.Keys = {
'upload_payload_rate', 'eta', 'ratio', 'distributed_copies',
'is_auto_managed', 'time_added', 'tracker_host', 'save_path', 'last_seen_complete',
'total_done', 'total_uploaded', 'max_download_speed', 'max_upload_speed',
- 'seeds_peers_ratio', 'total_remaining'
+ 'seeds_peers_ratio', 'total_remaining', 'completed_time'
],
/**
@@ -61,13 +61,13 @@ Deluge.Keys = {
* ['total_done', 'total_payload_download', 'total_uploaded',
* 'total_payload_upload', 'next_announce', 'tracker_status', 'num_pieces',
* 'piece_length', 'is_auto_managed', 'active_time', 'seeding_time',
- * 'seed_rank']
+ * 'seed_rank', 'last_seen_complete', 'completed_time', 'owner', 'public', 'shared']
*/
Status: [
'total_done', 'total_payload_download', 'total_uploaded',
'total_payload_upload', 'next_announce', 'tracker_status', 'num_pieces',
'piece_length', 'is_auto_managed', 'active_time', 'seeding_time',
- 'seed_rank', 'last_seen_complete', 'owner', 'public', 'shared'
+ 'seed_rank', 'last_seen_complete', 'completed_time', 'owner', 'public', 'shared'
],
/**
diff --git a/deluge/ui/web/js/deluge-all/TorrentGrid.js b/deluge/ui/web/js/deluge-all/TorrentGrid.js
index 247075cd5..016503ccd 100644
--- a/deluge/ui/web/js/deluge-all/TorrentGrid.js
+++ b/deluge/ui/web/js/deluge-all/TorrentGrid.js
@@ -131,7 +131,7 @@
renderer: torrentProgressRenderer,
dataIndex: 'progress'
}, {
- header: _('Seeders'),
+ header: _('Seeds'),
hidden: true,
width: 60,
sortable: true,
@@ -184,11 +184,19 @@
renderer: fdate,
dataIndex: 'time_added'
}, {
- header: _('Last Seen Complete'),
+ header: _('Complete Seen'),
+ hidden: true,
width: 80,
sortable: true,
renderer: dateOrNever,
dataIndex: 'last_seen_complete'
+ }, {
+ header: _('Completed'),
+ hidden: true,
+ width: 80,
+ sortable: true,
+ renderer: dateOrNever,
+ dataIndex: 'completed_time'
}, {
header: _('Tracker'),
hidden: true,
@@ -259,7 +267,7 @@
renderer: torrentLimitRenderer,
dataIndex: 'max_upload_speed'
}, {
- header: _('Seeders') + '/' + _('Peers'),
+ header: _('Seeds:Peers'),
hidden: true,
width: 75,
sortable: true,
diff --git a/deluge/ui/web/js/deluge-all/details/StatusTab.js b/deluge/ui/web/js/deluge-all/details/StatusTab.js
index edf897ff5..76594c164 100644
--- a/deluge/ui/web/js/deluge-all/details/StatusTab.js
+++ b/deluge/ui/web/js/deluge-all/details/StatusTab.js
@@ -91,9 +91,10 @@ Deluge.details.StatusTab = Ext.extend(Ext.Panel, {
},
onRequestComplete: function(status) {
- seeders = status.total_seeds > -1 ? status.num_seeds + ' (' + status.total_seeds + ')' : status.num_seeds;
+ seeds = status.total_seeds > -1 ? status.num_seeds + ' (' + status.total_seeds + ')' : status.num_seeds;
peers = status.total_peers > -1 ? status.num_peers + ' (' + status.total_peers + ')' : status.num_peers;
last_seen_complete = status.last_seen_complete > 0.0 ? fdate(status.last_seen_complete) : "Never";
+ completed_time = status.last_seen_complete > 0.0 ? fdate(status.completed_time) : "Never";
var data = {
downloaded: fsize(status.total_done, true),
uploaded: fsize(status.total_uploaded, true),
@@ -104,14 +105,15 @@ Deluge.details.StatusTab = Ext.extend(Ext.Panel, {
upspeed: (status.upload_payload_rate) ? fspeed(status.upload_payload_rate) : '0.0 KiB/s',
eta: ftime(status.eta),
pieces: status.num_pieces + ' (' + fsize(status.piece_length) + ')',
- seeders: seeders,
+ seeds: seeds,
peers: peers,
avail: status.distributed_copies.toFixed(3),
active_time: ftime(status.active_time),
seeding_time: ftime(status.seeding_time),
seed_rank: status.seed_rank,
time_added: fdate(status.time_added),
- last_seen_complete: last_seen_complete
+ last_seen_complete: last_seen_complete,
+ completed_time: completed_time
}
data.auto_managed = _((status.is_auto_managed) ? 'True' : 'False');
diff --git a/deluge/ui/web/render/tab_status.html b/deluge/ui/web/render/tab_status.html
index 1b5fb3764..d9aaf4a7e 100644
--- a/deluge/ui/web/render/tab_status.html
+++ b/deluge/ui/web/render/tab_status.html
@@ -1,27 +1,28 @@
- - ${_("Downloaded")}:
- - ${_("Uploaded")}:
- - ${_("Share Ratio")}:
- - ${_("Next Announce")}:
- - ${_("Tracker Status")}:
+ - ${_("Downloaded:")}
+ - ${_("Uploaded:")}
+ - ${_("Share Ratio:")}
+ - ${_("Next Announce:")}
+ - ${_("Tracker Status:")}
- - ${_("Speed")}:
- - ${_("Speed")}:
- - ${_("ETA")}:
- - ${_("Pieces")}:
+ - ${_("Down Speed:")}
+ - ${_("Up Speed:")}
+ - ${_("ETA:")}
+ - ${_("Pieces:")}
- - ${_("Seeders")}:
- - ${_("Peers")}:
- - ${_("Availability")}:
- - ${_("Auto Managed")}:
- - ${_("Last Seen Complete")}:
+ - ${_("Seeds:")}
+ - ${_("Peers:")}
+ - ${_("Availability:")}
+ - ${_("Auto Managed:")}
+ - ${_("Complete Seen:")}
- - ${_("Active Time")}:
- - ${_("Seeding Time")}:
- - ${_("Seed Rank")}:
- - ${_("Date Added")}:
+ - ${_("Active Time:")}
+ - ${_("Seeding Time:")}
+ - ${_("Seed Rank:")}
+ - ${_("Date Added:")}
+ - ${_("Completed:")}