From 15f39d8cc562f8f5e82f64fdcbfa138969d9b6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Wed, 1 Dec 2021 20:07:42 +0100 Subject: [PATCH] [ui] also sort entries by entity (resolved) --- ui/src/components/widgets/Table.svelte | 37 +++++++++++++++++++------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/ui/src/components/widgets/Table.svelte b/ui/src/components/widgets/Table.svelte index 955533e..ee2b59e 100644 --- a/ui/src/components/widgets/Table.svelte +++ b/ui/src/components/widgets/Table.svelte @@ -57,24 +57,35 @@ } // Sorting - let resolvedValues: { [key: string]: string } = {}; + let resolvedAddresses: { [key: string]: string } = {}; $: sortedAttributes = attributes .concat() - .sort(([aHash, _], [bHash, __]) => { + .sort(([_, aEntry], [__, bEntry]) => { if ( - resolvedValues[aHash] === undefined || - resolvedValues[bHash] === undefined + resolvedAddresses[aEntry.value.c] === undefined || + resolvedAddresses[bEntry.value.c] === undefined ) { - return 0; + return aEntry.value.c.localeCompare(bEntry.value.c); } else { - return resolvedValues[aHash].localeCompare(resolvedValues[bHash]); + return resolvedAddresses[aEntry.value.c].localeCompare( + resolvedAddresses[bEntry.value.c] + ); } }) .sort(([_, aEntry], [__, bEntry]) => { return aEntry.attribute.localeCompare(bEntry.attribute); }) .sort(([_, aEntry], [__, bEntry]) => { - return aEntry.entity.localeCompare(bEntry.entity); + if ( + resolvedAddresses[aEntry.entity] === undefined || + resolvedAddresses[bEntry.entity] === undefined + ) { + return aEntry.entity.localeCompare(bEntry.entity); + } else { + return resolvedAddresses[aEntry.entity].localeCompare( + resolvedAddresses[bEntry.entity] + ); + } }); // Formatting & Display @@ -146,8 +157,14 @@ {/if} {#if showEntity} - -
+ +
{ + resolvedAddresses[entry.entity] = event.detail[0]; + }} + /> {/if} @@ -172,7 +189,7 @@ address={entry.value.c} resolve={Boolean(resolve[id]) || true} on:resolved={(event) => { - resolvedValues[id] = event.detail[0]; + resolvedAddresses[entry.value.c] = event.detail[0]; }} /> {:else}