Allow edition display
This commit is contained in:
parent
42d60ad95b
commit
cb2349fdef
|
@ -11,7 +11,9 @@
|
||||||
let open = false
|
let open = false
|
||||||
let anchor
|
let anchor
|
||||||
|
|
||||||
$: restrictedColumns = $columns.filter(col => !col.visible || col.readonly)
|
$: allColumns = $stickyColumn ? [$stickyColumn, ...$columns] : $columns
|
||||||
|
|
||||||
|
$: restrictedColumns = allColumns.filter(col => !col.visible || col.readonly)
|
||||||
$: anyRestricted = restrictedColumns.length
|
$: anyRestricted = restrictedColumns.length
|
||||||
$: text = anyRestricted ? `Columns (${anyRestricted} restricted)` : "Columns"
|
$: text = anyRestricted ? `Columns (${anyRestricted} restricted)` : "Columns"
|
||||||
|
|
||||||
|
@ -34,36 +36,44 @@
|
||||||
HIDDEN: "hidden",
|
HIDDEN: "hidden",
|
||||||
}
|
}
|
||||||
|
|
||||||
const EDIT_OPTION = {
|
$: displayColumns = allColumns.map(c => {
|
||||||
icon: "Edit",
|
const isDisplayColumn = $stickyColumn === c
|
||||||
value: PERMISSION_OPTIONS.WRITABLE,
|
|
||||||
tooltip: "Writable",
|
|
||||||
}
|
|
||||||
$: READONLY_OPTION = {
|
|
||||||
icon: "Visibility",
|
|
||||||
value: PERMISSION_OPTIONS.READONLY,
|
|
||||||
tooltip: allowViewReadonlyColumns
|
|
||||||
? "Read only"
|
|
||||||
: "Read only (premium feature)",
|
|
||||||
disabled: !allowViewReadonlyColumns,
|
|
||||||
}
|
|
||||||
const HIDDEN_OPTION = {
|
|
||||||
icon: "VisibilityOff",
|
|
||||||
value: PERMISSION_OPTIONS.HIDDEN,
|
|
||||||
tooltip: "Hidden",
|
|
||||||
}
|
|
||||||
|
|
||||||
$: options =
|
const options = [
|
||||||
$datasource.type === "viewV2"
|
{
|
||||||
? [EDIT_OPTION, READONLY_OPTION, HIDDEN_OPTION]
|
icon: "Edit",
|
||||||
: [EDIT_OPTION, HIDDEN_OPTION]
|
value: PERMISSION_OPTIONS.WRITABLE,
|
||||||
|
tooltip: "Writable",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
if ($datasource.type === "viewV2") {
|
||||||
|
options.push({
|
||||||
|
icon: "Visibility",
|
||||||
|
value: PERMISSION_OPTIONS.READONLY,
|
||||||
|
tooltip: allowViewReadonlyColumns
|
||||||
|
? "Read only"
|
||||||
|
: "Read only (premium feature)",
|
||||||
|
disabled: !allowViewReadonlyColumns,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
options.push({
|
||||||
|
icon: "VisibilityOff",
|
||||||
|
value: PERMISSION_OPTIONS.HIDDEN,
|
||||||
|
tooltip: "Hidden",
|
||||||
|
disabled: isDisplayColumn,
|
||||||
|
tooltip: isDisplayColumn && "Display column cannot be hidden",
|
||||||
|
})
|
||||||
|
|
||||||
|
return { ...c, options }
|
||||||
|
})
|
||||||
|
|
||||||
function columnToPermissionOptions(column) {
|
function columnToPermissionOptions(column) {
|
||||||
if (!column.visible) {
|
if (!column.schema.visible) {
|
||||||
return PERMISSION_OPTIONS.HIDDEN
|
return PERMISSION_OPTIONS.HIDDEN
|
||||||
}
|
}
|
||||||
|
|
||||||
if (column.readonly) {
|
if (column.schema.readonly) {
|
||||||
return PERMISSION_OPTIONS.READONLY
|
return PERMISSION_OPTIONS.READONLY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,19 +97,7 @@
|
||||||
<Popover bind:open {anchor} align="left">
|
<Popover bind:open {anchor} align="left">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
{#if $stickyColumn}
|
{#each displayColumns as column}
|
||||||
<div class="column">
|
|
||||||
<Icon size="S" name={getColumnIcon($stickyColumn)} />
|
|
||||||
{$stickyColumn.label}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ToggleActionButtonGroup
|
|
||||||
disabled
|
|
||||||
value={PERMISSION_OPTIONS.WRITABLE}
|
|
||||||
options={options.map(o => ({ ...o, disabled: true }))}
|
|
||||||
/>
|
|
||||||
{/if}
|
|
||||||
{#each $columns as column}
|
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<Icon size="S" name={getColumnIcon(column)} />
|
<Icon size="S" name={getColumnIcon(column)} />
|
||||||
{column.label}
|
{column.label}
|
||||||
|
@ -107,7 +105,7 @@
|
||||||
<ToggleActionButtonGroup
|
<ToggleActionButtonGroup
|
||||||
on:click={e => toggleColumn(column, e.detail)}
|
on:click={e => toggleColumn(column, e.detail)}
|
||||||
value={columnToPermissionOptions(column)}
|
value={columnToPermissionOptions(column)}
|
||||||
{options}
|
options={column.options}
|
||||||
/>
|
/>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue