Allow attachments customizations. (#2414)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev
2022-12-03 01:10:53 +07:00
committed by GitHub
parent 0ba152665c
commit 1bcc1dfc82
6 changed files with 96 additions and 52 deletions
@@ -29,6 +29,7 @@
export let showLabel: IntlString | undefined = undefined
export let defaultCollapsed = false
export let draft = false
export let showHeader: boolean = true
const client = getClient()
const hierarchy = client.getHierarchy()
@@ -47,42 +48,44 @@
</script>
<!-- svelte-ignore a11y-click-events-have-key-events -->
<div
class="attrbar-header"
class:collapsed
on:click={() => {
collapsed = !collapsed
}}
>
<div class="flex-row-center">
<span class="overflow-label">
<Label {label} />
</span>
<div class="icon-arrow">
<svg fill="var(--dark-color)" viewBox="0 0 6 6" xmlns="http://www.w3.org/2000/svg">
<path d="M0,0L6,3L0,6Z" />
</svg>
{#if showHeader}
<div
class="attrbar-header"
class:collapsed
on:click={() => {
collapsed = !collapsed
}}
>
<div class="flex-row-center">
<span class="overflow-label">
<Label {label} />
</span>
<div class="icon-arrow">
<svg fill="var(--dark-color)" viewBox="0 0 6 6" xmlns="http://www.w3.org/2000/svg">
<path d="M0,0L6,3L0,6Z" />
</svg>
</div>
</div>
<div class="tool">
<Button
icon={setting.icon.Setting}
kind={'transparent'}
showTooltip={{ label: setting.string.ClassSetting }}
on:click={(ev) => {
ev.stopPropagation()
const loc = getCurrentLocation()
loc.path[2] = settingId
loc.path[3] = 'setting'
loc.path[4] = 'classes'
loc.path.length = 5
loc.query = { _class }
loc.fragment = undefined
navigate(loc)
}}
/>
</div>
</div>
<div class="tool">
<Button
icon={setting.icon.Setting}
kind={'transparent'}
showTooltip={{ label: setting.string.ClassSetting }}
on:click={(ev) => {
ev.stopPropagation()
const loc = getCurrentLocation()
loc.path[2] = settingId
loc.path[3] = 'setting'
loc.path[4] = 'classes'
loc.path.length = 5
loc.query = { _class }
loc.fragment = undefined
navigate(loc)
}}
/>
</div>
</div>
{/if}
{#if keys.length}
<div class="collapsed-container" class:collapsed>
<AttributesBar {_class} {object} keys={keys.map((p) => p.key)} {readonly} {draft} on:update />
@@ -44,6 +44,7 @@
export let baseMenuClass: Ref<Class<Doc>> | undefined = undefined
export let config: (BuildModelKey | string)[]
export let tableId: string | undefined = undefined
export let readonly = false
// If defined, will show a number of dummy items before real data will appear.
export let loadingProps: LoadingProps | undefined = undefined
@@ -243,7 +244,11 @@
on:mouseover={() => onRow(object)}
on:focus={() => {}}
bind:this={refs[row]}
on:contextmenu|preventDefault={(ev) => showMenu(ev, object, row)}
on:contextmenu|preventDefault={(ev) => {
if (!readonly) {
showMenu(ev, object, row)
}
}}
>
{#each model as attribute, cell}
{#if !cell}