Don't allow selecting required columns
This commit is contained in:
parent
cb2349fdef
commit
10f77c83b6
|
@ -3,6 +3,7 @@
|
||||||
import { ActionButton, Popover, Icon, notifications } from "@budibase/bbui"
|
import { ActionButton, Popover, Icon, notifications } from "@budibase/bbui"
|
||||||
import { getColumnIcon } from "../lib/utils"
|
import { getColumnIcon } from "../lib/utils"
|
||||||
import ToggleActionButtonGroup from "./ToggleActionButtonGroup.svelte"
|
import ToggleActionButtonGroup from "./ToggleActionButtonGroup.svelte"
|
||||||
|
import { helpers } from "@budibase/shared-core"
|
||||||
|
|
||||||
export let allowViewReadonlyColumns = false
|
export let allowViewReadonlyColumns = false
|
||||||
|
|
||||||
|
@ -37,13 +38,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$: displayColumns = allColumns.map(c => {
|
$: displayColumns = allColumns.map(c => {
|
||||||
|
const isRequired = helpers.schema.isRequired(c.schema.constraints)
|
||||||
const isDisplayColumn = $stickyColumn === c
|
const isDisplayColumn = $stickyColumn === c
|
||||||
|
|
||||||
|
const requiredTooltip = isRequired && "Required columns must be writable"
|
||||||
|
|
||||||
const options = [
|
const options = [
|
||||||
{
|
{
|
||||||
icon: "Edit",
|
icon: "Edit",
|
||||||
value: PERMISSION_OPTIONS.WRITABLE,
|
value: PERMISSION_OPTIONS.WRITABLE,
|
||||||
tooltip: "Writable",
|
tooltip: requiredTooltip || "Writable",
|
||||||
|
disabled: isRequired,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
if ($datasource.type === "viewV2") {
|
if ($datasource.type === "viewV2") {
|
||||||
|
@ -51,17 +56,17 @@
|
||||||
icon: "Visibility",
|
icon: "Visibility",
|
||||||
value: PERMISSION_OPTIONS.READONLY,
|
value: PERMISSION_OPTIONS.READONLY,
|
||||||
tooltip: allowViewReadonlyColumns
|
tooltip: allowViewReadonlyColumns
|
||||||
? "Read only"
|
? requiredTooltip || "Read only"
|
||||||
: "Read only (premium feature)",
|
: "Read only (premium feature)",
|
||||||
disabled: !allowViewReadonlyColumns,
|
disabled: !allowViewReadonlyColumns || isRequired,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
options.push({
|
options.push({
|
||||||
icon: "VisibilityOff",
|
icon: "VisibilityOff",
|
||||||
value: PERMISSION_OPTIONS.HIDDEN,
|
value: PERMISSION_OPTIONS.HIDDEN,
|
||||||
tooltip: "Hidden",
|
tooltip: requiredTooltip || "Hidden",
|
||||||
disabled: isDisplayColumn,
|
disabled: isDisplayColumn || isRequired,
|
||||||
tooltip: isDisplayColumn && "Display column cannot be hidden",
|
tooltip: isDisplayColumn && "Display column cannot be hidden",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue