From 642016da33248e57d3e2852b598edb232e14f704 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 30 Mar 2023 13:14:39 +0200 Subject: [PATCH] fix(frontend): improve loading of big jobs in run form --- frontend/src/lib/components/ArgInput.svelte | 63 +++++++++++-------- .../propertyPicker/ObjectViewer.svelte | 9 ++- .../(root)/(logged)/run/[...run]/+page.svelte | 9 +-- 3 files changed, 45 insertions(+), 36 deletions(-) diff --git a/frontend/src/lib/components/ArgInput.svelte b/frontend/src/lib/components/ArgInput.svelte index e4d51f1d34..11bb3569f9 100644 --- a/frontend/src/lib/components/ArgInput.svelte +++ b/frontend/src/lib/components/ArgInput.svelte @@ -164,6 +164,8 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncoding) let redraw = 0 + + let itemsLimit = 50
@@ -273,34 +275,41 @@ {#key redraw} {#if Array.isArray(value)} {#each value ?? [] as v, i} -
- {#if itemsType?.type == 'number'} - - {:else if itemsType?.type == 'string' && itemsType?.contentEncoding == 'base64'} - fileChanged(x, (val) => (value[i] = val))} - multiple={false} - /> - {:else if itemsType?.type == 'object'} - - {:else} - - {/if} - -
+ {#if i < itemsLimit} +
+ {#if itemsType?.type == 'number'} + + {:else if itemsType?.type == 'string' && itemsType?.contentEncoding == 'base64'} + fileChanged(x, (val) => (value[i] = val))} + multiple={false} + /> + {:else if itemsType?.type == 'object'} + + {:else} + + {/if} + +
+ {/if} {/each} + {#if value.length > itemsLimit} + + {/if} {/if} {/key}
diff --git a/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte b/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte index b58881e303..bb42e4b8f8 100644 --- a/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte +++ b/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte @@ -44,6 +44,8 @@ } dispatch('select', rawKey ? key : computeKey(key, isArray, currentPath)) } + + let keyLimit = 100 {#if keys.length > 0} @@ -63,7 +65,7 @@ level === 0 ? 'border-none pl-2' : 'border-l border-dotted border-gray-200 pl-2' }`} > - {#each keys as key, index} + {#each keys.length > keyLimit ? keys.slice(0, keyLimit) : keys as key, index (key)}
  • {/each} + {#if keys.length > keyLimit} + + {/if} {#if level == 0 && topBrackets}{/if} diff --git a/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte b/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte index ca8065a3ef..5c5af67122 100644 --- a/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte @@ -1,14 +1,7 @@