From 959127ac2caf788a0f5421c08e29bdec167ce6a2 Mon Sep 17 00:00:00 2001 From: Fornax Date: Wed, 28 Feb 2024 15:50:57 +0100 Subject: [PATCH] Add support for sorting in peer table --- res/static/style/layout.css | 4 +- svelte/src/admin_panel/Home.svelte | 5 +- svelte/src/admin_panel/PeerTable.svelte | 82 ++++++++++++++++++++---- svelte/src/admin_panel/SortButton.svelte | 22 +++++++ svelte/src/filesystem/Breadcrumbs.svelte | 15 ++--- svelte/src/user_home/Transactions.svelte | 4 +- 6 files changed, 107 insertions(+), 25 deletions(-) create mode 100644 svelte/src/admin_panel/SortButton.svelte diff --git a/res/static/style/layout.css b/res/static/style/layout.css index 576c917..32b8e0a 100644 --- a/res/static/style/layout.css +++ b/res/static/style/layout.css @@ -491,7 +491,7 @@ select { border-radius: 6px; margin: 3px; background: var(--input_background); - padding: 5px 5px 5px 5px; + padding: 4px 5px; overflow: hidden; color: var(--input_text); cursor: pointer; @@ -538,7 +538,7 @@ input[type="color"]:active, select:active { box-shadow: inset 4px 4px 6px var(--shadow_color); /* Exactly 4px offset compared to the inactive padding to give a depth effect */ - padding: 9px 1px 1px 9px; + padding: 8px 1px 0px 9px; } .button_highlight { diff --git a/svelte/src/admin_panel/Home.svelte b/svelte/src/admin_panel/Home.svelte index 204f997..12c59d7 100644 --- a/svelte/src/admin_panel/Home.svelte +++ b/svelte/src/admin_panel/Home.svelte @@ -211,10 +211,13 @@ onDestroy(() => {

Cache nodes

+ {if (val.role === "cache") {acc.push(val)}; return acc}, [])}/> - +

Storage nodes

+
{if (val.role === "storage") {acc.push(val)}; return acc}, [])}/> +

Pixelstore stats

diff --git a/svelte/src/admin_panel/PeerTable.svelte b/svelte/src/admin_panel/PeerTable.svelte index b514b9e..35ebbf4 100644 --- a/svelte/src/admin_panel/PeerTable.svelte +++ b/svelte/src/admin_panel/PeerTable.svelte @@ -1,7 +1,49 @@ @@ -9,15 +51,17 @@ export let peers = [];
- - - - - - - - - + + + + + + + + + + + @@ -33,7 +77,9 @@ export let peers = []; - + + + @@ -46,7 +92,9 @@ export let peers = []; - + + + @@ -57,10 +105,20 @@ export let peers = []; - + + +
AddressErr1m5m15mPingNetloadFreeMin freeAddressErr1m5m15mPingTXRXTotFreeMin free
{peer.load_5_min.toFixed(1)} {peer.load_15_min.toFixed(1)} {(peer.latency/1000).toPrecision(3)}{formatDataVolume(peer.avg_network_load, 4)}/s{formatDataVolume(peer.avg_network_tx, 3)}/s{formatDataVolume(peer.avg_network_rx, 3)}/s{formatDataVolume(peer.avg_network_tx+peer.avg_network_rx, 3)}/s {formatDataVolume(peer.free_space, 4)} {formatDataVolume(peer.min_free_space, 3)}
{peers.reduce((acc, val) => acc += val.load_5_min, 0).toFixed(1)} {peers.reduce((acc, val) => acc += val.load_15_min, 0).toFixed(1)} {(peers.reduce((acc, val) => acc += val.latency, 0)/1000).toFixed(0)}{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_load, 0), 4)}/s{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_tx, 0), 3)}/s{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0), 3)}/s{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_tx+val.avg_network_rx, 0), 3)}/s {formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0), 4)} {formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0), 3)}
{(peers.reduce((acc, val) => acc += val.load_5_min, 0) / peers.length).toFixed(1)} {(peers.reduce((acc, val) => acc += val.load_15_min, 0) / peers.length).toFixed(1)} {(peers.reduce((acc, val) => acc += val.latency, 0) / 1000 / peers.length).toFixed(0)}{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_load, 0) / peers.length, 4)}/s{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_tx, 0) / peers.length, 3)}/s{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0) / peers.length, 3)}/s{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_tx+val.avg_network_rx, 3) / peers.length, 4)}/s {formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0) / peers.length, 4)} {formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0) / peers.length, 3)}
+ + diff --git a/svelte/src/admin_panel/SortButton.svelte b/svelte/src/admin_panel/SortButton.svelte new file mode 100644 index 0000000..7666729 --- /dev/null +++ b/svelte/src/admin_panel/SortButton.svelte @@ -0,0 +1,22 @@ + + + + + diff --git a/svelte/src/filesystem/Breadcrumbs.svelte b/svelte/src/filesystem/Breadcrumbs.svelte index ce12635..505d307 100644 --- a/svelte/src/filesystem/Breadcrumbs.svelte +++ b/svelte/src/filesystem/Breadcrumbs.svelte @@ -17,7 +17,7 @@ export let fs_navigator {#if shared} share {/if} -
+
{node.name}
@@ -38,23 +38,22 @@ export let fs_navigator .breadcrumb { min-width: 1em; text-align: center; - line-height: 1em; word-break: break-all; - display: flex; + display: inline-flex; flex-direction: row; + line-height: 1em; } .node_name { - margin: 2px; + /* This padding makes sure that characters which extend below the + line-height do not get cut off */ + padding: 4px 2px; max-width: 20vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.node_name.base { +.base { /* The base name uses all available space */ max-width: unset; } -.nopad { - margin-left: 0; -} diff --git a/svelte/src/user_home/Transactions.svelte b/svelte/src/user_home/Transactions.svelte index 6cb22d7..b584078 100644 --- a/svelte/src/user_home/Transactions.svelte +++ b/svelte/src/user_home/Transactions.svelte @@ -104,8 +104,8 @@ onMount(() => { € 8 / 30.4375 = € 0.2628 per day
- Similarly the subscription charge of €2 per month is also charged at € 2 - / 30.4375 = € 0.065708 per day. + Similarly the subscription charge of €2 per month is also charged at € 1 + / 30.4375 = € 0.032854 per day.

{month_str}