1
0
Fork 0
mirror of synced 2024-09-20 11:27:56 +12:00

Display panels

This commit is contained in:
Adria Navarro 2024-08-16 17:01:55 +02:00
parent 890de94fa0
commit d72b5849da

View file

@ -1,17 +1,21 @@
<script>
import { getContext } from "svelte"
import { Icon, notifications, ActionButton } from "@budibase/bbui"
import { Icon, notifications, ActionButton, Popover } from "@budibase/bbui"
import { getColumnIcon } from "../lib/utils"
import ToggleActionButtonGroup from "./ToggleActionButtonGroup.svelte"
import { helpers } from "@budibase/shared-core"
import { FieldType } from "@budibase/types"
import { tables } from "stores/builder"
export let allowViewReadonlyColumns = false
export let allowViewReadonlyColumns
export let columns
const { datasource, dispatch } = getContext("grid")
$: allowRelationshipSchemas = true // TODO
let relationshipPanelOpen = false
let relationshipPanelAnchor
let relationshipPanelColumns = []
const toggleColumn = async (column, permission) => {
const visible = permission !== PERMISSION_OPTIONS.HIDDEN
@ -107,7 +111,24 @@
{#if allowRelationshipSchemas && column.schema.type === FieldType.LINK}
<div class="relationship-columns">
<ActionButton
on:click={() => dispatch("click", "")}
on:click={e => {
const relTable = $tables.list.find(
table => table._id === column.schema.tableId
)
relationshipPanelColumns = Object.values(
relTable?.schema || {}
).map(schema => ({
name: schema.name,
label: schema.name,
schema,
}))
console.warn({
columns,
relationshipPanelColumns,
})
relationshipPanelAnchor = e.currentTarget
relationshipPanelOpen = !relationshipPanelOpen
}}
size="S"
icon="ChevronRight"
quiet
@ -119,6 +140,19 @@
</div>
</div>
{#if allowRelationshipSchemas}
<Popover
bind:open={relationshipPanelOpen}
anchor={relationshipPanelAnchor}
align="right-outside"
>
<svelte:self
{allowViewReadonlyColumns}
columns={relationshipPanelColumns}
/>
</Popover>
{/if}
<style>
.relationship-columns :global(.spectrum-ActionButton) {
width: 28px;