This commit is contained in:
Adria Navarro 2024-08-20 13:57:06 +02:00
parent 6413d89cf1
commit 9d139e0ff4
1 changed files with 38 additions and 10 deletions

View File

@ -51,16 +51,44 @@
const isRequired = const isRequired =
c.primaryDisplay || helpers.schema.isRequired(c.schema.constraints) c.primaryDisplay || helpers.schema.isRequired(c.schema.constraints)
const defaultPermission = permissions[0]
const requiredTooltips = { const requiredTooltips = {
[FieldPermissions.WRITABLE]: [FieldPermissions.WRITABLE]: (() => {
(c.primaryDisplay && "Display column must be writable") || if (defaultPermission === FieldPermissions.WRITABLE) {
(isRequired && "Required columns must be writable"), if (c.primaryDisplay) {
[FieldPermissions.READONLY]: return "Display column must be writable"
(c.primaryDisplay && "Display column cannot be read-only") || }
(isRequired && "Required columns cannot be read-only"), if (isRequired) {
[FieldPermissions.HIDDEN]: return "Required columns must be writable"
(c.primaryDisplay && "Display column cannot be hidden") || }
(isRequired && "Required columns cannot be hidden"), }
})(),
[FieldPermissions.READONLY]: (() => {
if (defaultPermission === FieldPermissions.WRITABLE) {
if (c.primaryDisplay) {
return "Display column cannot be read-only"
}
if (isRequired) {
return "Required columns cannot be read-only"
}
}
if (defaultPermission === FieldPermissions.READONLY) {
if (c.primaryDisplay) {
return "Display column must be read-only"
}
if (isRequired) {
return "Required columns must be read-only"
}
}
})(),
[FieldPermissions.HIDDEN]: (() => {
if (c.primaryDisplay) {
return "Display column cannot be hidden"
}
if (isRequired) {
return "Required columns cannot be hidden"
}
})(),
} }
const options = [] const options = []
@ -79,7 +107,7 @@
if ((permission = permissionsObj[FieldPermissions.READONLY])) { if ((permission = permissionsObj[FieldPermissions.READONLY])) {
const tooltip = const tooltip =
(requiredTooltips[FieldPermissions.READONLY] || "Read-only") + (requiredTooltips[FieldPermissions.READONLY] || "Read-only") +
(permission.disabled && " (premium feature)") (permission.disabled ? " (premium feature)" : "")
options.push({ options.push({
icon: "Visibility", icon: "Visibility",
value: FieldPermissions.READONLY, value: FieldPermissions.READONLY,