Show but disable default values when they are enabled but cannot be used

This commit is contained in:
Andrew Kingston 2024-09-24 15:04:08 +01:00
parent f493025d94
commit 40372841d8
No known key found for this signature in database
1 changed files with 13 additions and 8 deletions

View File

@ -166,10 +166,8 @@
// used to select what different options can be displayed for column type // used to select what different options can be displayed for column type
$: canBeDisplay = $: canBeDisplay =
canBeDisplayColumn(editableColumn.type) && !editableColumn.autocolumn canBeDisplayColumn(editableColumn.type) && !editableColumn.autocolumn
$: canHaveDefault = $: defaultValuesEnabled = isEnabled("DEFAULT_VALUES")
!required && $: canHaveDefault = !required && canHaveDefaultColumn(editableColumn.type)
isEnabled("DEFAULT_VALUES") &&
canHaveDefaultColumn(editableColumn.type)
$: canBeRequired = $: canBeRequired =
editableColumn?.type !== LINK_TYPE && editableColumn?.type !== LINK_TYPE &&
!uneditable && !uneditable &&
@ -282,9 +280,9 @@
delete saveColumn.fieldName delete saveColumn.fieldName
} }
// Ensure the field is not required if we have a default value // Ensure we don't have a default value if we can't have one
if (saveColumn.default) { if (!canHaveDefault || !defaultValuesEnabled) {
saveColumn.constraints.presence = { allowEmpty: true } delete saveColumn.default
} }
// Delete default value for options fields if the option is no longer available // Delete default value for options fields if the option is no longer available
@ -302,6 +300,11 @@
delete saveColumn.default delete saveColumn.default
} }
// Ensure the field is not required if we have a default value
if (saveColumn.default) {
saveColumn.constraints.presence = { allowEmpty: true }
}
try { try {
await tables.saveField({ await tables.saveField({
originalName, originalName,
@ -786,9 +789,10 @@
</div> </div>
{/if} {/if}
{#if canHaveDefault} {#if defaultValuesEnabled}
{#if editableColumn.type === FieldType.OPTIONS} {#if editableColumn.type === FieldType.OPTIONS}
<Select <Select
disabled={!canHaveDefault}
options={editableColumn.constraints?.inclusion || []} options={editableColumn.constraints?.inclusion || []}
label="Default value" label="Default value"
value={editableColumn.default} value={editableColumn.default}
@ -797,6 +801,7 @@
/> />
{:else} {:else}
<ModalBindableInput <ModalBindableInput
disabled={!canHaveDefault}
panel={ServerBindingPanel} panel={ServerBindingPanel}
title="Default value" title="Default value"
label="Default value" label="Default value"