Ensure schema is sanitised when updating primary display column
This commit is contained in:
parent
06c8e5f815
commit
f493025d94
|
@ -284,7 +284,7 @@
|
||||||
|
|
||||||
// Ensure the field is not required if we have a default value
|
// Ensure the field is not required if we have a default value
|
||||||
if (saveColumn.default) {
|
if (saveColumn.default) {
|
||||||
saveColumn.constraints.presence = false
|
saveColumn.constraints.presence = { allowEmpty: true }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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
|
||||||
|
@ -298,7 +298,7 @@
|
||||||
|
|
||||||
// Ensure primary display columns are always required and don't have default values
|
// Ensure primary display columns are always required and don't have default values
|
||||||
if (primaryDisplay) {
|
if (primaryDisplay) {
|
||||||
saveColumn.constraints.presence = true
|
saveColumn.constraints.presence = { allowEmpty: false }
|
||||||
delete saveColumn.default
|
delete saveColumn.default
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { derived, get } from "svelte/store"
|
import { derived, get } from "svelte/store"
|
||||||
import { getDatasourceDefinition, getDatasourceSchema } from "../../../fetch"
|
import { getDatasourceDefinition, getDatasourceSchema } from "../../../fetch"
|
||||||
import { memo } from "../../../utils"
|
import { memo } from "../../../utils"
|
||||||
|
import { cloneDeep } from "lodash"
|
||||||
|
|
||||||
export const createStores = () => {
|
export const createStores = () => {
|
||||||
const definition = memo(null)
|
const definition = memo(null)
|
||||||
|
@ -161,10 +162,18 @@ export const createActions = context => {
|
||||||
|
|
||||||
// Updates the datasources primary display column
|
// Updates the datasources primary display column
|
||||||
const changePrimaryDisplay = async column => {
|
const changePrimaryDisplay = async column => {
|
||||||
return await saveDefinition({
|
let newDefinition = cloneDeep(get(definition))
|
||||||
...get(definition),
|
|
||||||
primaryDisplay: column,
|
// Update primary display
|
||||||
})
|
newDefinition.primaryDisplay = column
|
||||||
|
|
||||||
|
// Sanitise schema to ensure field is required and has no default value
|
||||||
|
if (!newDefinition.schema[column].constraints) {
|
||||||
|
newDefinition.schema[column].constraints = {}
|
||||||
|
}
|
||||||
|
newDefinition.schema[column].constraints.presence = { allowEmpty: false }
|
||||||
|
delete newDefinition.schema[column].default
|
||||||
|
return await saveDefinition(newDefinition)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adds a schema mutation for a single field
|
// Adds a schema mutation for a single field
|
||||||
|
|
Loading…
Reference in New Issue