From 52409a0195bec8cd1fc080ba35cfea803af6fc7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Sun, 6 Feb 2022 13:41:47 +0100 Subject: [PATCH] [ui] get LBL attrs in a single query --- webui/src/components/display/UpObject.svelte | 10 +++++----- webui/src/components/widgets/Table.svelte | 19 ++++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/webui/src/components/display/UpObject.svelte b/webui/src/components/display/UpObject.svelte index 6936165..7150a5a 100644 --- a/webui/src/components/display/UpObject.svelte +++ b/webui/src/components/display/UpObject.svelte @@ -14,13 +14,12 @@ const params = useParams(); export let address: string; - export let labels: string[] = []; + export let labels: string[] | undefined = undefined; export let link = false; - export let resolve = true; export let banner = false; let entity = readable(undefined); - $: if (resolve) ({ entity } = useEntity(address)); + $: if (labels === undefined) ({ entity } = useEntity(address)); // isFile $: isFile = $entity?.get("IS") === BLOB_TYPE_ADDR; @@ -28,10 +27,11 @@ // Identification let inferredIds: string[] = []; $: inferredIds = $entity?.identify() || []; - $: resolving = inferredIds.concat(labels).length == 0 && !$entity; + $: resolving = inferredIds.concat(labels || []).length == 0 && !$entity; $: displayLabel = - Array.from(new Set(inferredIds.concat(labels))).join(" | ") || address; + Array.from(new Set(inferredIds.concat(labels || []))).join(" | ") || + address; $: dispatch("resolved", inferredIds); diff --git a/webui/src/components/widgets/Table.svelte b/webui/src/components/widgets/Table.svelte index 0e9af1c..78c80d9 100644 --- a/webui/src/components/widgets/Table.svelte +++ b/webui/src/components/widgets/Table.svelte @@ -10,6 +10,7 @@ import Selector from "../utils/Selector.svelte"; import type { IValue } from "upend/types"; import Editable from "../utils/Editable.svelte"; + import { query } from "../../lib/entity"; const dispatch = createEventDispatcher(); export let columns: string; @@ -55,6 +56,14 @@ } as AttributeUpdate); } + // Labelling + $: labelListing = query( + () => + `(matches (in ${entries + .map((e) => '"' + e.entity + '"') + .join(" ")}) "LBL" ? )` + ).result; + // Sorting let sortedAttributes = entries; @@ -179,9 +188,6 @@ } return String(value); } - - // Optimizations - let resolve = []; @@ -261,10 +267,9 @@ { addSortKeys(String(entry.value.c), event.detail); }}