mirror of
https://github.com/mynodebtc/mynode.git
synced 2024-12-27 06:54:00 +00:00
More UI tweaks
This commit is contained in:
parent
930968ba75
commit
382f7fa6b4
|
@ -112,6 +112,12 @@ def get_bitcoin_blockchain_info():
|
||||||
global bitcoin_blockchain_info
|
global bitcoin_blockchain_info
|
||||||
return copy.deepcopy(bitcoin_blockchain_info)
|
return copy.deepcopy(bitcoin_blockchain_info)
|
||||||
|
|
||||||
|
def get_bitcoin_difficulty():
|
||||||
|
info = get_bitcoin_blockchain_info()
|
||||||
|
if "difficulty" in info:
|
||||||
|
return "{:.3g}".format(info["difficulty"])
|
||||||
|
return "???"
|
||||||
|
|
||||||
def get_bitcoin_block_height():
|
def get_bitcoin_block_height():
|
||||||
global bitcoin_block_height
|
global bitcoin_block_height
|
||||||
return bitcoin_block_height
|
return bitcoin_block_height
|
||||||
|
@ -128,6 +134,12 @@ def get_bitcoin_peers():
|
||||||
global bitcoin_peers
|
global bitcoin_peers
|
||||||
return copy.deepcopy(bitcoin_peers)
|
return copy.deepcopy(bitcoin_peers)
|
||||||
|
|
||||||
|
def get_bitcoin_peer_count():
|
||||||
|
peers = get_bitcoin_peers()
|
||||||
|
if peers != None:
|
||||||
|
return len(peers)
|
||||||
|
return 0
|
||||||
|
|
||||||
def get_bitcoin_network_info():
|
def get_bitcoin_network_info():
|
||||||
global bitcoin_network_info
|
global bitcoin_network_info
|
||||||
return copy.deepcopy(bitcoin_network_info)
|
return copy.deepcopy(bitcoin_network_info)
|
||||||
|
@ -136,6 +148,20 @@ def get_bitcoin_mempool():
|
||||||
global bitcoin_mempool
|
global bitcoin_mempool
|
||||||
return copy.deepcopy(bitcoin_mempool)
|
return copy.deepcopy(bitcoin_mempool)
|
||||||
|
|
||||||
|
def get_bitcoin_mempool_info():
|
||||||
|
mempooldata = get_bitcoin_mempool()
|
||||||
|
|
||||||
|
mempool = {}
|
||||||
|
mempool["size"] = "???"
|
||||||
|
mempool["bytes"] = "0"
|
||||||
|
if mempooldata != None:
|
||||||
|
if "size" in mempooldata:
|
||||||
|
mempool["size"] = mempooldata["size"]
|
||||||
|
if "bytes" in mempooldata:
|
||||||
|
mempool["bytes"] = mempooldata["bytes"]
|
||||||
|
|
||||||
|
return copy.deepcopy(mempool)
|
||||||
|
|
||||||
def get_bitcoin_wallet_info():
|
def get_bitcoin_wallet_info():
|
||||||
global bitcoin_wallet_info
|
global bitcoin_wallet_info
|
||||||
return copy.deepcopy(bitcoin_wallet_info)
|
return copy.deepcopy(bitcoin_wallet_info)
|
||||||
|
|
|
@ -35,20 +35,12 @@ def bitcoind_status_page():
|
||||||
blockdata = get_bitcoin_recent_blocks()
|
blockdata = get_bitcoin_recent_blocks()
|
||||||
peerdata = get_bitcoin_peers()
|
peerdata = get_bitcoin_peers()
|
||||||
networkdata = get_bitcoin_network_info()
|
networkdata = get_bitcoin_network_info()
|
||||||
mempooldata = get_bitcoin_mempool()
|
|
||||||
walletdata = get_bitcoin_wallet_info()
|
walletdata = get_bitcoin_wallet_info()
|
||||||
version = get_bitcoin_version()
|
version = get_bitcoin_version()
|
||||||
rpc_password = get_bitcoin_rpc_password()
|
rpc_password = get_bitcoin_rpc_password()
|
||||||
|
|
||||||
# Mempool info
|
# Mempool info
|
||||||
mempool = {}
|
mempool = get_bitcoin_mempool_info()
|
||||||
mempool["size"] = "???"
|
|
||||||
mempool["bytes"] = "0"
|
|
||||||
if mempooldata != None:
|
|
||||||
if "size" in mempooldata:
|
|
||||||
mempool["size"] = mempooldata["size"]
|
|
||||||
if "bytes" in mempooldata:
|
|
||||||
mempool["bytes"] = mempooldata["bytes"]
|
|
||||||
|
|
||||||
# Recent blocks
|
# Recent blocks
|
||||||
blocks = []
|
blocks = []
|
||||||
|
@ -116,7 +108,7 @@ def bitcoind_status_page():
|
||||||
"blocks": blocks,
|
"blocks": blocks,
|
||||||
"peers": peers,
|
"peers": peers,
|
||||||
"local_address": local_address,
|
"local_address": local_address,
|
||||||
"difficulty": "{:.3g}".format(info["difficulty"]),
|
"difficulty": get_bitcoin_difficulty(),
|
||||||
"block_num": info["blocks"],
|
"block_num": info["blocks"],
|
||||||
"header_num": info["headers"],
|
"header_num": info["headers"],
|
||||||
"rpc_password": rpc_password,
|
"rpc_password": rpc_password,
|
||||||
|
|
|
@ -86,10 +86,23 @@ def get_lightning_peers():
|
||||||
global lightning_peers
|
global lightning_peers
|
||||||
return copy.deepcopy(lightning_peers)
|
return copy.deepcopy(lightning_peers)
|
||||||
|
|
||||||
|
def get_lightning_peer_count():
|
||||||
|
info = get_lightning_info()
|
||||||
|
num_peers = 0
|
||||||
|
if "num_peers" in info:
|
||||||
|
num_peers = info['num_peers']
|
||||||
|
return num_peers
|
||||||
|
|
||||||
def get_lightning_channels():
|
def get_lightning_channels():
|
||||||
global lightning_channels
|
global lightning_channels
|
||||||
return copy.deepcopy(lightning_channels)
|
return copy.deepcopy(lightning_channels)
|
||||||
|
|
||||||
|
def get_lightning_channel_count():
|
||||||
|
channeldata = get_lightning_channels()
|
||||||
|
if channeldata != None and "channels" in channeldata:
|
||||||
|
return len(channeldata["channels"])
|
||||||
|
return 0
|
||||||
|
|
||||||
def get_lightning_channel_balance():
|
def get_lightning_channel_balance():
|
||||||
global lightning_channel_balance
|
global lightning_channel_balance
|
||||||
return copy.deepcopy(lightning_channel_balance)
|
return copy.deepcopy(lightning_channel_balance)
|
||||||
|
@ -98,6 +111,30 @@ def get_lightning_wallet_balance():
|
||||||
global lightning_wallet_balance
|
global lightning_wallet_balance
|
||||||
return copy.deepcopy(lightning_wallet_balance)
|
return copy.deepcopy(lightning_wallet_balance)
|
||||||
|
|
||||||
|
def get_lightning_balance_info():
|
||||||
|
channel_balance_data = get_lightning_channel_balance()
|
||||||
|
wallet_balance_data = get_lightning_wallet_balance()
|
||||||
|
|
||||||
|
balance_data = {}
|
||||||
|
balance_data["channel_balance"] = "N/A"
|
||||||
|
balance_data["channel_pending"] = "N/A"
|
||||||
|
balance_data["wallet_balance"] = "N/A"
|
||||||
|
balance_data["wallet_pending"] = "N/A"
|
||||||
|
|
||||||
|
channel_balance_data = get_lightning_channel_balance()
|
||||||
|
if channel_balance_data != None and "balance" in channel_balance_data:
|
||||||
|
balance_data["channel_balance"] = channel_balance_data["balance"]
|
||||||
|
if channel_balance_data != None and "pending_open_balance" in channel_balance_data:
|
||||||
|
balance_data["channel_pending"] = channel_balance_data["pending_open_balance"]
|
||||||
|
|
||||||
|
wallet_balance_data = get_lightning_wallet_balance()
|
||||||
|
if wallet_balance_data != None and "confirmed_balance" in wallet_balance_data:
|
||||||
|
balance_data["wallet_balance"] = wallet_balance_data["confirmed_balance"]
|
||||||
|
if wallet_balance_data != None and "unconfirmed_balance" in wallet_balance_data:
|
||||||
|
balance_data["wallet_pending"] = wallet_balance_data["unconfirmed_balance"]
|
||||||
|
|
||||||
|
return balance_data
|
||||||
|
|
||||||
def is_lnd_ready():
|
def is_lnd_ready():
|
||||||
global lnd_ready
|
global lnd_ready
|
||||||
return lnd_ready
|
return lnd_ready
|
||||||
|
@ -213,13 +250,13 @@ def get_lnd_version():
|
||||||
global lnd_version
|
global lnd_version
|
||||||
if lnd_version == None:
|
if lnd_version == None:
|
||||||
lnd_version = subprocess.check_output("lnd --version | egrep -o '[0-9]+\\.[0-9]+\\.[0-9]+' | head -n 1", shell=True)
|
lnd_version = subprocess.check_output("lnd --version | egrep -o '[0-9]+\\.[0-9]+\\.[0-9]+' | head -n 1", shell=True)
|
||||||
return lnd_version
|
return "v{}".format(lnd_version)
|
||||||
|
|
||||||
def get_loopd_version():
|
def get_loopd_version():
|
||||||
global loopd_version
|
global loopd_version
|
||||||
if loopd_version == None:
|
if loopd_version == None:
|
||||||
loopd_version = subprocess.check_output("loopd --version | egrep -o '[0-9]+\\.[0-9]+\\.[0-9]+' | head -n 1", shell=True)
|
loopd_version = subprocess.check_output("loopd --version | egrep -o '[0-9]+\\.[0-9]+\\.[0-9]+' | head -n 1", shell=True)
|
||||||
return loopd_version
|
return "v{}".format(loopd_version)
|
||||||
|
|
||||||
def get_default_lnd_config():
|
def get_default_lnd_config():
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -134,6 +134,7 @@ def page_lnd():
|
||||||
channel["remote_balance"] = "0"
|
channel["remote_balance"] = "0"
|
||||||
channels.append(channel)
|
channels.append(channel)
|
||||||
|
|
||||||
|
balance_info = get_lightning_balance_info()
|
||||||
|
|
||||||
channel_balance_data = get_lightning_channel_balance()
|
channel_balance_data = get_lightning_channel_balance()
|
||||||
if channel_balance_data != None and "balance" in channel_balance_data:
|
if channel_balance_data != None and "balance" in channel_balance_data:
|
||||||
|
@ -173,10 +174,10 @@ def page_lnd():
|
||||||
"pubkey": pubkey,
|
"pubkey": pubkey,
|
||||||
"uri": uri,
|
"uri": uri,
|
||||||
"ip": ip,
|
"ip": ip,
|
||||||
"channel_balance": channel_balance,
|
"channel_balance": balance_info["channel_balance"],
|
||||||
"channel_pending": channel_pending,
|
"channel_pending": balance_info["channel_pending"],
|
||||||
"wallet_balance": wallet_balance,
|
"wallet_balance": balance_info["wallet_balance"],
|
||||||
"wallet_pending": wallet_pending,
|
"wallet_pending": balance_info["wallet_pending"],
|
||||||
"peers": peers,
|
"peers": peers,
|
||||||
"channels": channels,
|
"channels": channels,
|
||||||
"ui_settings": read_ui_settings()
|
"ui_settings": read_ui_settings()
|
||||||
|
|
|
@ -361,7 +361,7 @@ def index():
|
||||||
templateData = {
|
templateData = {
|
||||||
"title": "myNode Status",
|
"title": "myNode Status",
|
||||||
"header_text": "Starting...",
|
"header_text": "Starting...",
|
||||||
"subheader_text": Markup("Launching myNode services...{}".format(message)),
|
"subheader_text": Markup("Launching myNode Services{}".format(message)),
|
||||||
"error_message": error_message,
|
"error_message": error_message,
|
||||||
"ui_settings": read_ui_settings()
|
"ui_settings": read_ui_settings()
|
||||||
}
|
}
|
||||||
|
@ -398,6 +398,9 @@ def index():
|
||||||
tor_status_color = get_service_status_color("tor@default")
|
tor_status_color = get_service_status_color("tor@default")
|
||||||
|
|
||||||
# Find bitcoind status
|
# Find bitcoind status
|
||||||
|
bitcoin_info = get_bitcoin_blockchain_info()
|
||||||
|
bitcoin_mempool = get_bitcoin_mempool_info()
|
||||||
|
bitcoin_peers = get_bitcoin_peers()
|
||||||
if bitcoind_status_code != 0:
|
if bitcoind_status_code != 0:
|
||||||
bitcoind_status_color = "red"
|
bitcoind_status_color = "red"
|
||||||
else:
|
else:
|
||||||
|
@ -567,9 +570,17 @@ def index():
|
||||||
"bitcoind_status_color": bitcoind_status_color,
|
"bitcoind_status_color": bitcoind_status_color,
|
||||||
"bitcoind_status": Markup(bitcoind_status),
|
"bitcoind_status": Markup(bitcoind_status),
|
||||||
"current_block": current_block,
|
"current_block": current_block,
|
||||||
|
"bitcoin_peer_count": get_bitcoin_peer_count(),
|
||||||
|
"bitcoin_difficulty": get_bitcoin_difficulty(),
|
||||||
|
"bitcoin_mempool_size": "{:.3} MB".format(float(bitcoin_mempool["bytes"]) / 1000 / 1000),
|
||||||
|
"bitcoin_version": get_bitcoin_version(),
|
||||||
"lnd_status_color": lnd_status_color,
|
"lnd_status_color": lnd_status_color,
|
||||||
"lnd_status": Markup(lnd_status),
|
"lnd_status": Markup(lnd_status),
|
||||||
"lnd_ready": lnd_ready,
|
"lnd_ready": lnd_ready,
|
||||||
|
"lnd_peer_count": get_lightning_peer_count(),
|
||||||
|
"lnd_channel_count": get_lightning_channel_count(),
|
||||||
|
"lnd_balance_info": get_lightning_balance_info(),
|
||||||
|
"lnd_version": get_lnd_version(),
|
||||||
"tor_status_color": tor_status_color,
|
"tor_status_color": tor_status_color,
|
||||||
"is_installing_docker_images": is_installing_docker_images(),
|
"is_installing_docker_images": is_installing_docker_images(),
|
||||||
"is_device_from_reseller": is_device_from_reseller(),
|
"is_device_from_reseller": is_device_from_reseller(),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@import url(/fonts/inter.css);
|
@import url(/static/fonts/inter.css);
|
||||||
|
|
||||||
body, input, select, textarea {
|
body, input, select, textarea {
|
||||||
font-family: "Inter", "Source Sans Pro", Helvetica, sans-serif;
|
font-family: "Inter", "Source Sans Pro", Helvetica, sans-serif;
|
||||||
|
@ -44,10 +44,12 @@ table{
|
||||||
}
|
}
|
||||||
|
|
||||||
td {
|
td {
|
||||||
padding-top: 11px;
|
padding-top: 9px;
|
||||||
padding-bottom: 8px;
|
padding-bottom: 6px;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border-top: #e7e7e7 1px solid;
|
border-top: #e7e7e7 1px solid;
|
||||||
|
}
|
||||||
|
.td_left_header {
|
||||||
padding-right: 40px;
|
padding-right: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +157,7 @@ td {
|
||||||
display: flex;
|
display: flex;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-bottom: 30px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.app_tile_row_section {
|
.app_tile_row_section {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
@ -189,6 +191,17 @@ td {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
background: #f0f0f0;
|
background: #f0f0f0;
|
||||||
}
|
}
|
||||||
|
.app_tile_very_wide {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
border: none;
|
||||||
|
border-radius: 10px;
|
||||||
|
width: 300px;
|
||||||
|
height: 180px;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 6px 10px 6px 10px;
|
||||||
|
background: #f0f0f0;
|
||||||
|
}
|
||||||
.green { background-color: green; }
|
.green { background-color: green; }
|
||||||
.yellow { background-color: yellow; }
|
.yellow { background-color: yellow; }
|
||||||
.red { background-color: red; }
|
.red { background-color: red; }
|
||||||
|
@ -223,7 +236,7 @@ td {
|
||||||
.app_logo_icon {
|
.app_logo_icon {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
display: block;
|
display: block;
|
||||||
width: 40%;
|
width: 55px;
|
||||||
}
|
}
|
||||||
.app_title {
|
.app_title {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
@ -383,12 +396,12 @@ a:link.ui-button, a:visited.ui-button, .ui-button {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-bottom: 80px;
|
margin-bottom: 30px;
|
||||||
}
|
}
|
||||||
.divider {
|
.divider {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 50px;
|
margin-top: 25px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 15px;
|
||||||
border-bottom: 1px solid #ffb70054;
|
border-bottom: 1px solid #ffb70054;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
|
@ -41,11 +41,13 @@ table,
|
||||||
|
|
||||||
.app_tile,
|
.app_tile,
|
||||||
.app_tile_short,
|
.app_tile_short,
|
||||||
|
.app_tile_very_wide,
|
||||||
.info_tile {
|
.info_tile {
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app_tile,
|
.app_tile,
|
||||||
|
.app_tile_very_wide,
|
||||||
.app_tile_short {
|
.app_tile_short {
|
||||||
background-color: #121C21;
|
background-color: #121C21;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,18 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="app_tile">
|
||||||
|
<div class="app_status_icon {{ electrs_status_color }}"></div>
|
||||||
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/electrum_logo.png")}}"/></div>
|
||||||
|
<div class="app_title">Electrum Server</div>
|
||||||
|
<div class="app_status">{{ electrs_status }}</div>
|
||||||
|
<div class="app_contents">
|
||||||
|
{% if electrs_enabled %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/electrum-server">Info</a>
|
||||||
|
{% endif %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="#" id="toggle-electrs">{% if electrs_enabled %}Disable{% else %}Enable{% endif %}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="app_tile">
|
<div class="app_tile">
|
||||||
<div class="app_status_icon {{ btcpayserver_status_color }}"></div>
|
<div class="app_status_icon {{ btcpayserver_status_color }}"></div>
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/btcpayserver.png")}}"/></div>
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/btcpayserver.png")}}"/></div>
|
||||||
|
@ -50,6 +62,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--
|
||||||
<div class="app_tile">
|
<div class="app_tile">
|
||||||
<div class="app_status_icon {{ lndconnect_status_color }}"></div>
|
<div class="app_status_icon {{ lndconnect_status_color }}"></div>
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/lndconnect.png")}}"/></div>
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/lndconnect.png")}}"/></div>
|
||||||
|
@ -61,6 +74,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="app_tile_row">
|
<div class="app_tile_row">
|
||||||
|
@ -225,3 +239,56 @@
|
||||||
|
|
||||||
<!-- BETA APPS -->
|
<!-- BETA APPS -->
|
||||||
<!-- <div class="main_header">Beta Apps</div> -->
|
<!-- <div class="main_header">Beta Apps</div> -->
|
||||||
|
|
||||||
|
<!-- REMOTE SERVICES -->
|
||||||
|
<div class="app_tile_row">
|
||||||
|
<div>
|
||||||
|
<div class="main_header">Remote Access Services</div>
|
||||||
|
<div class="app_tile_row_section">
|
||||||
|
<!--
|
||||||
|
<div class="app_tile">
|
||||||
|
<div class="app_status_icon {{ electrs_status_color }}"></div>
|
||||||
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/electrum_logo.png")}}"/></div>
|
||||||
|
<div class="app_title">Electrum Server</div>
|
||||||
|
<div class="app_status">{{ electrs_status }}</div>
|
||||||
|
<div class="app_contents">
|
||||||
|
{% if electrs_enabled %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/electrum-server">Info</a>
|
||||||
|
{% endif %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="#" id="toggle-electrs">{% if electrs_enabled %}Disable{% else %}Enable{% endif %}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
<div class="app_tile">
|
||||||
|
<div class="app_status_icon {{ tor_status_color }}"></div>
|
||||||
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/tor.png")}}"/></div>
|
||||||
|
<div class="app_title">Tor</div>
|
||||||
|
<div class="app_status">Private Connections</div>
|
||||||
|
<div class="app_contents">
|
||||||
|
{% if product_key_skipped %}
|
||||||
|
Remote Access Premium Feature
|
||||||
|
{% else %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/tor">Tor Services</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="app_tile">
|
||||||
|
<div class="app_status_icon {{ vpn_status_color }}"></div>
|
||||||
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/vpn.png")}}"/></div>
|
||||||
|
<div class="app_title">VPN</div>
|
||||||
|
<div class="app_status">{{ vpn_status }}</div>
|
||||||
|
<div class="app_contents">
|
||||||
|
{% if product_key_skipped %}
|
||||||
|
Premium Feature
|
||||||
|
{% else %}
|
||||||
|
{% if vpn_enabled %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/vpn-info">Info</a>
|
||||||
|
{% endif %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="#" id="toggle-vpn">{% if vpn_enabled %}Disable{% else %}Enable{% endif %}</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -3,12 +3,12 @@
|
||||||
</div>
|
</div>
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Serial Number</td>
|
<td class="td_left_header">Serial Number</td>
|
||||||
<td style="padding-left: 20px;">{{serial_number}}</td>
|
<td>{{serial_number}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Product Key</td>
|
<td class="td_left_header">Product Key</td>
|
||||||
<td style="padding-left: 20px;">
|
<td>
|
||||||
{% if product_key_skipped %}
|
{% if product_key_skipped %}
|
||||||
{{product_key}}
|
{{product_key}}
|
||||||
<a href="/product-key" class="ui-button ui-widget ui-corner-all settings_button_small">Enter Product Key</a>
|
<a href="/product-key" class="ui-button ui-widget ui-corner-all settings_button_small">Enter Product Key</a>
|
||||||
|
@ -20,22 +20,22 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Device Type</td>
|
<td class="td_left_header">Device Type</td >
|
||||||
<td style="padding-left: 20px;">{{device_type}}</td>
|
<td>{{device_type}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Device RAM</td>
|
<td class="td_left_header">Device RAM</td>
|
||||||
<td style="padding-left: 20px;">{{device_ram}} GB</td>
|
<td>{{device_ram}} GB</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Local IP</td>
|
<td class="td_left_header">Local IP</td>
|
||||||
<td style="padding-left: 20px;">{{local_ip}}</td>
|
<td>{{local_ip}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% if throttled_data['RAW_DATA'] != "0x0" and throttled_data['RAW_DATA'] != "MISSING" %}
|
{% if throttled_data['RAW_DATA'] != "0x0" and throttled_data['RAW_DATA'] != "MISSING" %}
|
||||||
{% if throttled_data['UNDERVOLTED'] or throttled_data['CAPPED'] or throttled_data['THROTTLED'] or throttled_data['SOFT_TEMPLIMIT'] %}
|
{% if throttled_data['UNDERVOLTED'] or throttled_data['CAPPED'] or throttled_data['THROTTLED'] or throttled_data['SOFT_TEMPLIMIT'] %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Active Throttling Data</td>
|
<td class="td_left_header">Active Throttling Data</td>
|
||||||
<td style="padding-left: 20px; color: red; font-size: 10px">
|
<td style="color: red; font-size: 10px">
|
||||||
{% if throttled_data['UNDERVOLTED'] %}Undervolted<br/>{% endif %}
|
{% if throttled_data['UNDERVOLTED'] %}Undervolted<br/>{% endif %}
|
||||||
{% if throttled_data['CAPPED'] %}Capped CPU<br/>{% endif %}
|
{% if throttled_data['CAPPED'] %}Capped CPU<br/>{% endif %}
|
||||||
{% if throttled_data['THROTTLED'] %}Throttled CPU<br/>{% endif %}
|
{% if throttled_data['THROTTLED'] %}Throttled CPU<br/>{% endif %}
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if throttled_data['HAS_UNDERVOLTED'] or throttled_data['HAS_CAPPED'] or throttled_data['HAS_THROTTLED'] or throttled_data['HAS_SOFT_TEMPLIMIT'] %}
|
{% if throttled_data['HAS_UNDERVOLTED'] or throttled_data['HAS_CAPPED'] or throttled_data['HAS_THROTTLED'] or throttled_data['HAS_SOFT_TEMPLIMIT'] %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Historic Throttling Data<br/><span style="font-size: 10px;">*Occurred since last reboot</span></td>
|
<td class="td_left_header">Historic Throttling Data<br/><span style="font-size: 10px;">*Occurred since last reboot</span></td>
|
||||||
<td style="padding-left: 20px; color: red; font-size: 10px;">
|
<td style="color: red; font-size: 10px;">
|
||||||
{% if throttled_data['HAS_UNDERVOLTED'] %}Undervolted<br/>{% endif %}
|
{% if throttled_data['HAS_UNDERVOLTED'] %}Undervolted<br/>{% endif %}
|
||||||
{% if throttled_data['HAS_CAPPED'] %}Capped CPU<br/>{% endif %}
|
{% if throttled_data['HAS_CAPPED'] %}Capped CPU<br/>{% endif %}
|
||||||
{% if throttled_data['HAS_THROTTLED'] %}Throttled CPU<br/>{% endif %}
|
{% if throttled_data['HAS_THROTTLED'] %}Throttled CPU<br/>{% endif %}
|
||||||
|
@ -57,8 +57,8 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if has_checkin_error %}
|
{% if has_checkin_error %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Server</td>
|
<td class="td_left_header">Server</td>
|
||||||
<td style="padding-left: 20px; color: red;"><b>Error contacting mynodebtc.com via Tor!</b><br/>You may have issues checking for new versions or saving product keys.</td>
|
<td style="color: red;"><b>Error contacting mynodebtc.com via Tor!</b><br/>You may have issues checking for new versions or saving product keys.</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<div class="app_tile_row">
|
<div class="app_tile_row">
|
||||||
<div>
|
<div>
|
||||||
<div class="main_header">Core Services</div>
|
<div class="main_header">Core Services</div>
|
||||||
<div class="app_tile_row_section">
|
<div class="app_tile_very_wide" style="width: 300px;">
|
||||||
<div class="app_tile">
|
<div style="width: 130px; float: left;">
|
||||||
<div class="app_status_icon {{ bitcoind_status_color }}"></div>
|
<div class="app_status_icon {{ bitcoind_status_color }}"></div>
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/bitcoin.png")}}"/></div>
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/bitcoin.png")}}"/></div>
|
||||||
<div class="app_title">Bitcoin</div>
|
<div class="app_title">Bitcoin</div>
|
||||||
|
@ -11,61 +11,69 @@
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/bitcoind">Manage</a>
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/bitcoind">Manage</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="app_tile">
|
<div style="width: 160px; padding-left: 10px; float: right;">
|
||||||
|
<table style="font-size: 10px; width: 100%;" cellpadding="0" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<td class="td_left_header">Height</td>
|
||||||
|
<td>{{ current_block }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="td_left_header">Peers</td>
|
||||||
|
<td>{{ bitcoin_peer_count }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="td_left_header">Difficulty</td>
|
||||||
|
<td>{{ bitcoin_difficulty }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="td_left_header">Mempool Size</td>
|
||||||
|
<td>{{ bitcoin_mempool_size }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="td_left_header">Version</td>
|
||||||
|
<td>{{ bitcoin_version }}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="app_tile_very_wide" style="width: 300px;">
|
||||||
|
<div style="width: 130px; float: left;">
|
||||||
<div class="app_status_icon {{ lnd_status_color }}"></div>
|
<div class="app_status_icon {{ lnd_status_color }}"></div>
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/lightning.png")}}"/></div>
|
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/lightning.png")}}"/></div>
|
||||||
<div class="app_title">Lightning</div>
|
<div class="app_title">Lightning</div>
|
||||||
<div class="app_status">{{ lnd_status }}</div>
|
<div class="app_status">{{ lnd_status }}</div>
|
||||||
<div class="app_contents">
|
<div class="app_contents">
|
||||||
|
{% if lnd_ready %}
|
||||||
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="#" id="lndconnect">Pair Wallet</a>
|
||||||
|
{% endif %}
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/lnd">Manage</a>
|
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/lnd">Manage</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div style="width: 160px; padding-left: 10px; float: right;">
|
||||||
</div>
|
<table style="font-size: 10px; width: 100%;" cellpadding="0" cellspacing="0">
|
||||||
<div>
|
<tr>
|
||||||
<div class="main_header">Services</div>
|
<td class="td_left_header">Peers</td>
|
||||||
<div class="app_tile_row_section">
|
<td>{{ lnd_peer_count }}</td>
|
||||||
<div class="app_tile">
|
</tr>
|
||||||
<div class="app_status_icon {{ electrs_status_color }}"></div>
|
<tr>
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/electrum_logo.png")}}"/></div>
|
<td class="td_left_header">Channels</td>
|
||||||
<div class="app_title">Electrum Server</div>
|
<td>{{ lnd_channel_count }}</td>
|
||||||
<div class="app_status">{{ electrs_status }}</div>
|
</tr>
|
||||||
<div class="app_contents">
|
<!--
|
||||||
{% if electrs_enabled %}
|
<tr>
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/electrum-server">Info</a>
|
<td class="td_left_header">On-chain Balance</td>
|
||||||
{% endif %}
|
<td>{{ lnd_balance_info['wallet_balance'] }}</td>
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="#" id="toggle-electrs">{% if electrs_enabled %}Disable{% else %}Enable{% endif %}</a>
|
</tr>
|
||||||
</div>
|
<tr>
|
||||||
</div>
|
<td class="td_left_header">Lightning Balance</td>
|
||||||
<div class="app_tile">
|
<td>{{ lnd_balance_info['channel_balance'] }}</td>
|
||||||
<div class="app_status_icon {{ tor_status_color }}"></div>
|
</tr>
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/tor.png")}}"/></div>
|
-->
|
||||||
<div class="app_title">Tor</div>
|
<tr>
|
||||||
<div class="app_status">Private Connections</div>
|
<td class="td_left_header">Version</td>
|
||||||
<div class="app_contents">
|
<td>{{ lnd_version }}</td>
|
||||||
{% if product_key_skipped %}
|
</tr>
|
||||||
Remote Access Premium Feature
|
</table>
|
||||||
{% else %}
|
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/tor">Tor Services</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="app_tile">
|
|
||||||
<div class="app_status_icon {{ vpn_status_color }}"></div>
|
|
||||||
<div class="app_logo"><img class="app_logo_icon" src="{{ url_for('static', filename="images/vpn.png")}}"/></div>
|
|
||||||
<div class="app_title">VPN</div>
|
|
||||||
<div class="app_status">{{ vpn_status }}</div>
|
|
||||||
<div class="app_contents">
|
|
||||||
{% if product_key_skipped %}
|
|
||||||
Premium Feature
|
|
||||||
{% else %}
|
|
||||||
{% if vpn_enabled %}
|
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="/vpn-info">Info</a>
|
|
||||||
{% endif %}
|
|
||||||
<a class="ui-button ui-widget ui-corner-all mynode_button" href="#" id="toggle-vpn">{% if vpn_enabled %}Disable{% else %}Enable{% endif %}</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<div class="settings_block_subheader">Status</div>
|
<div class="settings_block_subheader">Status</div>
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Details</td>
|
<td class="td_left_header">Details</td>
|
||||||
<td style="padding-left: 20px;">
|
<td>
|
||||||
{% if is_netdata_enabled %}
|
{% if is_netdata_enabled %}
|
||||||
{% if is_bitcoin_synced %}
|
{% if is_bitcoin_synced %}
|
||||||
{% if not is_installing_docker_images %}
|
{% if not is_installing_docker_images %}
|
||||||
|
@ -18,36 +18,36 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Manage</td>
|
<td class="td_left_header">Manage</td>
|
||||||
<td style="padding-left: 20px;">
|
<td>
|
||||||
<a id="linux_terminal" class="ui-button ui-widget ui-corner-all settings_button_small" href="#">Linux Terminal</a>
|
<a id="linux_terminal" class="ui-button ui-widget ui-corner-all settings_button_small" href="#">Linux Terminal</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Disk Usage</td>
|
<td class="td_left_header">Disk Usage</td>
|
||||||
<td style="padding-left: 20px;">{{drive_usage}}</td>
|
<td>{{drive_usage}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>CPU</td>
|
<td class="td_left_header">CPU</td>
|
||||||
<td style="padding-left: 20px;">{{cpu_usage}}</td>
|
<td>{{cpu_usage}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>RAM</td>
|
<td class="td_left_header">RAM</td>
|
||||||
<td style="padding-left: 20px;">{{ram_usage}}</td>
|
<td>{{ram_usage}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% if device_temp != '...' %}
|
{% if device_temp != '...' %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Temperature</td>
|
<td class="td_left_header">Temperature</td>
|
||||||
<td style="padding-left: 20px;">{{device_temp}} °C</td>
|
<td>{{device_temp}} °C</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Uptime</td>
|
<td class="td_left_header">Uptime</td>
|
||||||
<td style="padding-left: 20px;">{{uptime}}</td>
|
<td>{{uptime}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Date</td>
|
<td class="td_left_header">Date</td>
|
||||||
<td style="padding-left: 20px;">{{date}}</td>
|
<td>{{date}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
|
@ -420,7 +420,7 @@
|
||||||
<div class="settings_block_subheader">Version</div>
|
<div class="settings_block_subheader">Version</div>
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Current Version</td>
|
<td class="td_left_header">Current Version</td>
|
||||||
<td>{{current_version}}</td>
|
<td>{{current_version}}</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -462,15 +462,15 @@
|
||||||
<form action="/settings/password" method="POST">
|
<form action="/settings/password" method="POST">
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Current Password</td>
|
<td class="td_left_header">Current Password</td>
|
||||||
<td><input type="password" id="current_password" name="current_password" width="20" class="ui-corner-all settings_input"/></td>
|
<td><input type="password" id="current_password" name="current_password" width="20" class="ui-corner-all settings_input"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Password</td>
|
<td class="td_left_header">Password</td>
|
||||||
<td><input type="password" id="password1" name="password1" width="20" class="ui-corner-all settings_input"/></td>
|
<td><input type="password" id="password1" name="password1" width="20" class="ui-corner-all settings_input"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Repeat Password</td>
|
<td class="td_left_header">Repeat Password</td>
|
||||||
<td><input type="password" id="password2" name="password2" width="20" class="ui-corner-all settings_input"/></td>
|
<td><input type="password" id="password2" name="password2" width="20" class="ui-corner-all settings_input"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -168,7 +168,7 @@
|
||||||
<div class="settings_block_subheader">Version</div>
|
<div class="settings_block_subheader">Version</div>
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Current Version</td>
|
<td class="td_left_header">Current Version</td>
|
||||||
<td>{{current_version}}</td>
|
<td>{{current_version}}</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user