diff --git a/webui/src/components/widgets/EntryList.svelte b/webui/src/components/widgets/EntryList.svelte index 62ca4e4..2d7e44b 100644 --- a/webui/src/components/widgets/EntryList.svelte +++ b/webui/src/components/widgets/EntryList.svelte @@ -109,8 +109,8 @@ function sortEntries() { sortedEntries = orderByValue - ? entityValueSort(entries, sortKeys) - : defaultEntitySort(entries, sortKeys); + ? entityValueSort(entries, Object.assign(sortKeys, $attributeLabels)) + : defaultEntitySort(entries, Object.assign(sortKeys, $attributeLabels)); } $: { diff --git a/webui/src/util/sort.ts b/webui/src/util/sort.ts index bcdb19d..f426292 100644 --- a/webui/src/util/sort.ts +++ b/webui/src/util/sort.ts @@ -45,9 +45,11 @@ export function sortByValueLength(entries: UpEntry[]) { }); } -export function sortByAttribute(entries: UpEntry[]): void { +export function sortByAttribute(entries: UpEntry[], sortKeys: SortKeys): void { entries.sort((aEntry, bEntry) => { - return aEntry.attribute.localeCompare(bEntry.attribute); + const aResolved = (sortKeys[aEntry.attribute] || [])[0] || aEntry.attribute; + const bResolved = (sortKeys[bEntry.attribute] || [])[0] || bEntry.attribute; + return aResolved.localeCompare(bResolved); }); } @@ -82,7 +84,7 @@ export function defaultEntitySort( const result = entries.concat(); sortByValue(result, sortKeys); sortByValueLength(result); - sortByAttribute(result); + sortByAttribute(result, sortKeys); sortByEntity(result, sortKeys); return result; } @@ -93,7 +95,7 @@ export function entityValueSort( ): UpEntry[] { const result = entries.concat(); sortByEntity(result, sortKeys); - sortByAttribute(result); + sortByAttribute(result, sortKeys); sortByValueLength(result); sortByValue(result, sortKeys); return result;