Skip to content

Commit 93ffe23

Browse files
authored
Merge pull request #227 from fractal-analytics-platform/better-display-of-task-argument-descriptions
Improve JSchema component descriptions handling
2 parents 5942a2b + 95fd92f commit 93ffe23

File tree

7 files changed

+39
-17
lines changed

7 files changed

+39
-17
lines changed

src/lib/components/common/jschema/ArrayProperty.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script>
22
import { onMount } from 'svelte';
33
import PropertyDiscriminator from '$lib/components/common/jschema/PropertyDiscriminator.svelte';
4+
import PropertyDescription from '$lib/components/common/jschema/PropertyDescription.svelte';
45
56
export let schemaProperty = undefined;
67
let nestedProperties = [];
@@ -29,9 +30,9 @@
2930
3031
{#if schemaProperty }
3132
<div class='d-flex flex-column p-2'>
32-
<div class='property-metadata d-flex flex-column w-100'>
33+
<div class='property-metadata d-flex flex-row w-100'>
3334
<span class='{schemaProperty.isRequired() ? "fw-bold" : ""}'>{ schemaProperty.title || "" }</span>
34-
<span class='small fw-light'>{schemaProperty.description || "" }</span>
35+
<PropertyDescription description={schemaProperty.description} />
3536
</div>
3637
<div class='array-items my-2'>
3738

src/lib/components/common/jschema/BooleanProperty.svelte

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script>
22
import { getContext } from 'svelte';
3+
import PropertyDescription from '$lib/components/common/jschema/PropertyDescription.svelte';
34
45
const schemaManager = getContext('schemaManager');
56
@@ -13,11 +14,9 @@
1314

1415
{#if schemaProperty}
1516
<div class='d-flex align-items-center p-2'>
16-
<div class='property-metadata d-flex flex-column align-self-center w-50'>
17+
<div class='property-metadata d-flex flex-row align-self-center w-50'>
1718
<span class=''>{ schemaProperty.title || 'Boolean argument' }</span>
18-
{#if schemaProperty.description }
19-
<span class='small fw-light'>{ schemaProperty.description }</span>
20-
{/if}
19+
<PropertyDescription description={schemaProperty.description} />
2120
</div>
2221
<div class='property-input ms-auto w-25'>
2322
<div class='form-check'>

src/lib/components/common/jschema/NumberProperty.svelte

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script>
22
import { getContext } from 'svelte';
3+
import PropertyDescription from '$lib/components/common/jschema/PropertyDescription.svelte';
34
45
const schemaManager = getContext('schemaManager');
56
@@ -16,12 +17,10 @@
1617

1718
{#if schemaProperty }
1819
<div class='d-flex align-items-center p-2'>
19-
<div class='property-metadata d-flex flex-column align-self-center w-50'>
20+
<div class='property-metadata d-flex flex-row align-self-center w-50'>
2021
<span
2122
class='{schemaProperty.isRequired() ? "fw-bold" : ""}'>{ schemaProperty.title || 'Number argument' }</span>
22-
{#if schemaProperty.description }
23-
<span class='small fw-light'>{ schemaProperty.description }</span>
24-
{/if}
23+
<PropertyDescription description={schemaProperty.description} />
2524
</div>
2625
<div class='property-input ms-auto w-25'>
2726
<input type='number' bind:value={schemaProperty.value} on:change={handleValueChange} class='form-control'>

src/lib/components/common/jschema/ObjectProperty.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script>
22
import { onMount } from 'svelte';
33
import PropertiesBlock from '$lib/components/common/jschema/PropertiesBlock.svelte';
4+
import PropertyDescription from '$lib/components/common/jschema/PropertyDescription.svelte';
45
56
export let objectSchema = undefined;
67
@@ -36,9 +37,9 @@
3637
{#if objectSchema}
3738

3839
<div class='d-flex flex-column p-2'>
39-
<div class='property-metadata d-flex flex-column w-100'>
40+
<div class='property-metadata d-flex flex-row w-100'>
4041
<span class='{objectSchema.isRequired() ? "fw-bold" : ""}'>{ objectSchema.title }</span>
41-
<span class='small fw-light'>{ objectSchema.description || "" }</span>
42+
<PropertyDescription description={objectSchema.description} />
4243
</div>
4344
<div class='object-properties my-2'>
4445
<div class='accordion' id='{accordionParentKey}'>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<script>
2+
import { onMount } from 'svelte';
3+
4+
export let description = undefined;
5+
6+
onMount(() => {
7+
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]');
8+
// eslint-disable-next-line no-undef
9+
popoverTriggerList.forEach(popoverEl => new bootstrap.Popover(popoverEl));
10+
});
11+
12+
</script>
13+
14+
<span class='ms-2'>
15+
{#if description }
16+
<a tabindex='0' role='button' data-bs-trigger='focus' class='bi bi-info-circle' data-bs-toggle='popover'
17+
data-bs-content={description}></a>
18+
{/if}
19+
</span>

src/lib/components/common/jschema/StringProperty.svelte

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script>
22
import { getContext } from 'svelte';
3+
import PropertyDescription from '$lib/components/common/jschema/PropertyDescription.svelte';
34
45
const schemaManager = getContext('schemaManager');
56
@@ -13,14 +14,12 @@
1314

1415
{#if schemaProperty }
1516
<div class='d-flex align-items-center p-2'>
16-
<div class='property-metadata d-flex flex-column align-self-center w-50'>
17+
<div class='property-metadata d-flex flex-row align-self-center w-50'>
1718
<span
1819
class='{schemaProperty.isRequired() ? "fw-bold" : ""}'>{ schemaProperty.title || 'String argument' }</span>
19-
{#if schemaProperty.description}
20-
<span class='small fw-light'>{ schemaProperty.description }</span>
21-
{/if}
20+
<PropertyDescription description={schemaProperty.description} />
2221
</div>
23-
<div class='property-input ms-auto w-25'>
22+
<div class='property-input ms-auto w-50'>
2423
<input type='text' bind:value={schemaProperty.value} on:change={handleValueChange} class='form-control'>
2524
</div>
2625
</div>

static/global.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
#json-schema > .properties-block > .property-block {
22
border-top: 1px solid #dee2e6;
33
}
4+
5+
.popover {
6+
max-width: 500px !important;
7+
}

0 commit comments

Comments
 (0)