Merge branch 'master' of github.com:Budibase/budibase into global-bindings

This commit is contained in:
Andrew Kingston 2023-11-29 08:59:20 +00:00
commit 816fc37dad
7 changed files with 62 additions and 28 deletions

View File

@ -18,6 +18,7 @@
checked={value} checked={value}
{disabled} {disabled}
on:change={onChange} on:change={onChange}
on:click
{id} {id}
type="checkbox" type="checkbox"
class="spectrum-Switch-input" class="spectrum-Switch-input"

View File

@ -19,5 +19,5 @@
</script> </script>
<Field {helpText} {label} {labelPosition} {error}> <Field {helpText} {label} {labelPosition} {error}>
<Switch {error} {disabled} {text} {value} on:change={onChange} /> <Switch {error} {disabled} {text} {value} on:change={onChange} on:click />
</Field> </Field>

View File

@ -55,7 +55,10 @@
size="S" size="S"
name="Close" name="Close"
hoverable hoverable
on:click={() => removeButton(item._id)} on:click={e => {
e.stopPropagation()
removeButton(item._id)
}}
/> />
</div> </div>
</div> </div>

View File

@ -32,11 +32,14 @@
} }
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
const flipDurationMs = 150
let anchors = {} let anchors = {}
let draggableItems = [] let draggableItems = []
// Used for controlling cursor behaviour in order to limit drag behaviour
// to the drag handle
let inactive = true
const buildDraggable = items => { const buildDraggable = items => {
return items return items
.map(item => { .map(item => {
@ -64,6 +67,7 @@
} }
const handleFinalize = e => { const handleFinalize = e => {
inactive = true
updateRowOrder(e) updateRowOrder(e)
dispatch("change", serialiseUpdate()) dispatch("change", serialiseUpdate())
} }
@ -77,24 +81,36 @@
class="list-wrap" class="list-wrap"
use:dndzone={{ use:dndzone={{
items: draggableItems, items: draggableItems,
flipDurationMs,
dropTargetStyle: { outline: "none" }, dropTargetStyle: { outline: "none" },
dragDisabled: !draggable, dragDisabled: !draggable || inactive,
}} }}
on:finalize={handleFinalize} on:finalize={handleFinalize}
on:consider={updateRowOrder} on:consider={updateRowOrder}
> >
{#each draggableItems as draggable (draggable.id)} {#each draggableItems as draggableItem (draggableItem.id)}
<li <li
on:click={() => {
get(store).actions.select(draggableItem.id)
}}
on:mousedown={() => { on:mousedown={() => {
get(store).actions.select() get(store).actions.select()
}} }}
bind:this={anchors[draggable.id]} bind:this={anchors[draggableItem.id]}
class:highlighted={draggable.id === $store.selected} class:highlighted={draggableItem.id === $store.selected}
> >
<div class="left-content"> <div class="left-content">
{#if showHandle} {#if showHandle}
<div class="handle"> <div
class="handle"
aria-label="drag-handle"
style={!inactive ? "cursor:grabbing" : "cursor:grab"}
on:mousedown={() => {
inactive = false
}}
on:mouseup={() => {
inactive = true
}}
>
<DragHandle /> <DragHandle />
</div> </div>
{/if} {/if}
@ -102,8 +118,8 @@
<div class="right-content"> <div class="right-content">
<svelte:component <svelte:component
this={listType} this={listType}
anchor={anchors[draggable.item._id]} anchor={anchors[draggableItem.item._id]}
item={draggable.item} item={draggableItem.item}
{...listTypeProps} {...listTypeProps}
on:change={onItemChanged} on:change={onItemChanged}
/> />
@ -143,6 +159,7 @@
--spectrum-table-row-background-color-hover, --spectrum-table-row-background-color-hover,
var(--spectrum-alias-highlight-hover) var(--spectrum-alias-highlight-hover)
); );
cursor: pointer;
} }
.list-wrap > li:first-child { .list-wrap > li:first-child {
border-top-left-radius: 4px; border-top-left-radius: 4px;
@ -165,6 +182,9 @@
display: flex; display: flex;
height: var(--spectrum-global-dimension-size-150); height: var(--spectrum-global-dimension-size-150);
} }
.handle:hover {
cursor: grab;
}
.handle :global(svg) { .handle :global(svg) {
fill: var(--spectrum-global-color-gray-500); fill: var(--spectrum-global-color-gray-500);
margin-right: var(--spacing-m); margin-right: var(--spacing-m);

View File

@ -156,7 +156,7 @@
<div class="field-configuration"> <div class="field-configuration">
<div class="toggle-all"> <div class="toggle-all">
<span /> <span>Fields</span>
<Toggle <Toggle
on:change={() => { on:change={() => {
let update = fieldList.map(field => ({ let update = fieldList.map(field => ({
@ -186,6 +186,9 @@
</div> </div>
<style> <style>
.field-configuration {
padding-top: 8px;
}
.field-configuration :global(.spectrum-ActionButton) { .field-configuration :global(.spectrum-ActionButton) {
width: 100%; width: 100%;
} }
@ -204,6 +207,5 @@
.toggle-all span { .toggle-all span {
color: var(--spectrum-global-color-gray-700); color: var(--spectrum-global-color-gray-700);
font-size: 12px; font-size: 12px;
margin-left: calc(var(--spacing-s) - 1px);
} }
</style> </style>

View File

@ -58,7 +58,15 @@
<div class="field-label">{readableText}</div> <div class="field-label">{readableText}</div>
</div> </div>
<div class="list-item-right"> <div class="list-item-right">
<Toggle on:change={onToggle(item)} text="" value={item.active} thin /> <Toggle
on:change={onToggle(item)}
on:click={e => {
e.stopPropagation()
}}
text=""
value={item.active}
thin
/>
</div> </div>
</div> </div>

View File

@ -6048,18 +6048,6 @@
"options": ["Create", "Update", "View"], "options": ["Create", "Update", "View"],
"defaultValue": "Create" "defaultValue": "Create"
}, },
{
"type": "text",
"label": "Title",
"key": "title",
"nested": true
},
{
"type": "text",
"label": "Description",
"key": "description",
"nested": true
},
{ {
"section": true, "section": true,
"dependsOn": { "dependsOn": {
@ -6067,7 +6055,7 @@
"value": "Create", "value": "Create",
"invert": true "invert": true
}, },
"name": "Row details", "name": "Row ID",
"info": "<a href='https://docs.budibase.com/docs/form-block' target='_blank'>How to pass a row ID using bindings</a>", "info": "<a href='https://docs.budibase.com/docs/form-block' target='_blank'>How to pass a row ID using bindings</a>",
"settings": [ "settings": [
{ {
@ -6087,8 +6075,20 @@
}, },
{ {
"section": true, "section": true,
"name": "Fields", "name": "Details",
"settings": [ "settings": [
{
"type": "text",
"label": "Title",
"key": "title",
"nested": true
},
{
"type": "text",
"label": "Description",
"key": "description",
"nested": true
},
{ {
"type": "fieldConfiguration", "type": "fieldConfiguration",
"key": "fields", "key": "fields",