Skip to content

Commit bf5213b

Browse files
committed
Improved usability of workflow task forms
1 parent 7a6fba5 commit bf5213b

File tree

4 files changed

+43
-19
lines changed

4 files changed

+43
-19
lines changed

playwright.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export default defineConfig({
3838

3939
webServer: [
4040
{
41-
command: './tests/start-test-server.sh 1.4.0a10',
41+
command: './tests/start-test-server.sh 1.4.0',
4242
port: 8000,
4343
waitForPort: true,
4444
stdout: 'pipe',

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,28 @@
2929
3030
{#if schemaProperty}
3131
<div class="d-flex flex-column p-2">
32-
<div class="property-metadata d-flex flex-row w-100">
33-
<span class={schemaProperty.isRequired() ? 'fw-bold' : ''}>{schemaProperty.title || ''}</span>
34-
<PropertyDescription description={schemaProperty.description} />
35-
</div>
3632
<div class="array-items my-2">
3733
<div class="accordion" id={accordionParentKey}>
3834
<div class="accordion-item">
3935
<div class="accordion-header">
4036
<button
41-
class="accordion-button collapsed"
37+
class="accordion-button"
38+
class:collapsed={!schemaProperty.isRequired()}
4239
type="button"
4340
data-bs-toggle="collapse"
4441
data-bs-target="#{collapseSymbol}"
4542
>
46-
Arguments list
43+
<span class={schemaProperty.isRequired() ? 'fw-bold' : ''}>
44+
{schemaProperty.title || ''}
45+
</span>
46+
<PropertyDescription description={schemaProperty.description} />
4747
</button>
4848
</div>
4949
<div
5050
id={collapseSymbol}
51-
class="accordion-collapse collapse"
51+
class="accordion-collapse"
52+
class:collapse={!schemaProperty.isRequired()}
53+
class:show={schemaProperty.isRequired()}
5254
data-bs-parent="#{accordionParentKey}"
5355
>
5456
<div class="accordion-body p-1">

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,26 @@
3838

3939
{#if objectSchema}
4040
<div class="d-flex flex-column p-2">
41-
<div class="property-metadata d-flex flex-row w-100">
42-
<span class={objectSchema.isRequired() ? 'fw-bold' : ''}>{objectSchema.title}</span>
43-
<PropertyDescription description={objectSchema.description} />
44-
</div>
4541
<div class="object-properties my-2">
4642
<div class="accordion" id={accordionParentKey}>
4743
<div class="accordion-item">
4844
<div class="accordion-header">
4945
<button
50-
class="accordion-button collapsed"
46+
class="accordion-button"
47+
class:collapsed={!objectSchema.isRequired()}
5148
type="button"
5249
data-bs-toggle="collapse"
5350
data-bs-target="#{collapseSymbol}"
5451
>
55-
Argument Properties
52+
<span class={objectSchema.isRequired() ? 'fw-bold' : ''}>{objectSchema.title}</span>
53+
<PropertyDescription description={objectSchema.description} />
5654
</button>
5755
</div>
5856
<div
5957
id={collapseSymbol}
60-
class="accordion-collapse collapse"
58+
class="accordion-collapse"
59+
class:collapse={!objectSchema.isRequired()}
60+
class:show={objectSchema.isRequired()}
6161
data-bs-parent="#{accordionParentKey}"
6262
>
6363
<div class="accordion-body p-1">

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

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,34 @@
33
44
export let description = undefined;
55
6+
/** @type {HTMLElement|undefined} */
67
let element;
78
9+
let popover;
10+
let windowEventListener;
11+
812
onMount(() => {
913
if (element) {
10-
// @ts-ignore
11-
// eslint-disable-next-line no-undef
12-
new bootstrap.Popover(element);
14+
element.addEventListener('click', function () {
15+
// @ts-ignore
16+
// eslint-disable-next-line no-undef
17+
popover = bootstrap.Popover.getOrCreateInstance(element, { trigger: 'manual' });
18+
popover.toggle();
19+
if (!windowEventListener) {
20+
windowEventListener = function (/** @type {MouseEvent} */ event) {
21+
if (event.target instanceof HTMLElement && event.target !== element) {
22+
const clickedPopover = event.target.closest('.popover');
23+
if (!clickedPopover) {
24+
popover.hide();
25+
popover = undefined;
26+
window.removeEventListener('click', windowEventListener);
27+
windowEventListener = undefined;
28+
}
29+
}
30+
};
31+
window.addEventListener('click', windowEventListener);
32+
}
33+
});
1334
}
1435
});
1536
</script>
@@ -22,7 +43,8 @@
2243
role="button"
2344
data-bs-trigger="focus"
2445
class="bi bi-info-circle text-primary"
25-
data-bs-toggle="popover"
46+
data-bs-toggle="collapse"
47+
data-bs-target
2648
data-bs-content={description}
2749
/>
2850
{/if}

0 commit comments

Comments
 (0)