diff --git a/src/webui/btjson.cpp b/src/webui/btjson.cpp index 17afe7b43..76eeb6ed4 100644 --- a/src/webui/btjson.cpp +++ b/src/webui/btjson.cpp @@ -141,6 +141,7 @@ static const char KEY_TRANSFER_UPSPEED[] = "up_info_speed"; static const char KEY_TRANSFER_UPDATA[] = "up_info_data"; static const char KEY_TRANSFER_UPRATELIMIT[] = "up_rate_limit"; static const char KEY_TRANSFER_DHT_NODES[] = "dht_nodes"; +static const char KEY_TRANSFER_CONNECTION_STATUS[] = "connection_status"; class QTorrentCompare { @@ -452,6 +453,7 @@ QByteArray btjson::getFilesForTorrent(const QString& hash) * - "dl_rate_limit": Download rate limit * - "up_rate_limit": Upload rate limit * - "dht_nodes": DHT nodes connected to + * - "connection_status": Connection status */ QByteArray btjson::getTransferInfo() { @@ -467,5 +469,9 @@ QByteArray btjson::getTransferInfo() if (sessionSettings.upload_rate_limit) info[KEY_TRANSFER_UPRATELIMIT] = sessionSettings.upload_rate_limit; info[KEY_TRANSFER_DHT_NODES] = sessionStatus.dht_nodes; + if (!QBtSession::instance()->getSession()->is_listening()) + info[KEY_TRANSFER_CONNECTION_STATUS] = "disconnected"; + else + info[KEY_TRANSFER_CONNECTION_STATUS] = sessionStatus.has_incoming_connections ? "connected" : "firewalled"; return json::toJson(info); } diff --git a/src/webui/www/private/index.html b/src/webui/www/private/index.html index b6d9713d4..9cf604f2f 100644 --- a/src/webui/www/private/index.html +++ b/src/webui/www/private/index.html @@ -120,6 +120,8 @@ + Connection Status + _(Alternative speed limits) diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index 62bc23eb7..7c8bbb13b 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -265,6 +265,12 @@ window.addEvent('load', function () { else document.title = "_(qBittorrent web User Interface)"; $('DHTNodes').set('html', '_(DHT: %1 nodes)'.replace("%1", info.dht_nodes)); + if (info.connection_status == "connected") + $('connectionStatus').src = 'images/skin/connected.png'; + else if (info.connection_status == "firewalled") + $('connectionStatus').src = 'images/skin/firewalled.png'; + else + $('connectionStatus').src = 'images/skin/disconnected.png'; clearTimeout(loadTransferInfoTimer); loadTransferInfoTimer = loadTransferInfo.delay(3000); }