mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-14 12:25:17 +00:00
Fix Cover context menu action (#1860)
Signed-off-by: Dvinyanin Alexandr <dvinyanin.alexandr@gmail.com>
This commit is contained in:
parent
02e4d1988d
commit
51d29fbe12
@ -320,7 +320,8 @@ export function createModel (builder: Builder): void {
|
|||||||
action: view.actionImpl.ShowPopup,
|
action: view.actionImpl.ShowPopup,
|
||||||
actionProps: {
|
actionProps: {
|
||||||
component: board.component.CoverActionPopup,
|
component: board.component.CoverActionPopup,
|
||||||
element: 'top'
|
element: 'top',
|
||||||
|
value: 'object'
|
||||||
},
|
},
|
||||||
label: board.string.Cover,
|
label: board.string.Cover,
|
||||||
icon: board.icon.Card,
|
icon: board.icon.Card,
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { CardCover } from '@anticrm/board'
|
import { CardCover, Card } from '@anticrm/board'
|
||||||
|
import { getClient } from '@anticrm/presentation'
|
||||||
import { Button, hexColorToNumber, Icon, Label, IconCheck, IconClose } from '@anticrm/ui'
|
import { Button, hexColorToNumber, Icon, Label, IconCheck, IconClose } from '@anticrm/ui'
|
||||||
import { createEventDispatcher } from 'svelte'
|
import { createEventDispatcher } from 'svelte'
|
||||||
import board from '../../plugin'
|
import board from '../../plugin'
|
||||||
import { getBoardAvailableColors } from '../../utils/BoardUtils'
|
import { getBoardAvailableColors } from '../../utils/BoardUtils'
|
||||||
import ColorPresenter from '../presenters/ColorPresenter.svelte'
|
import ColorPresenter from '../presenters/ColorPresenter.svelte'
|
||||||
export let value: CardCover | undefined | null
|
export let value: CardCover | undefined | null
|
||||||
export let onChange: (e: any) => void
|
export let object: Card | undefined
|
||||||
|
export let onChange: (e: any) => void | undefined
|
||||||
|
|
||||||
|
$: cover = object ? object.cover : value
|
||||||
|
|
||||||
|
const client = getClient()
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
||||||
const colorGroups = (function chunk (colors: number[]): number[][] {
|
const colorGroups = (function chunk (colors: number[]): number[][] {
|
||||||
@ -15,8 +20,9 @@
|
|||||||
})(getBoardAvailableColors().map(hexColorToNumber))
|
})(getBoardAvailableColors().map(hexColorToNumber))
|
||||||
|
|
||||||
function updateCover (newCover?: Partial<CardCover>) {
|
function updateCover (newCover?: Partial<CardCover>) {
|
||||||
value = newCover ? { size: 'small', color: colorGroups[0][0], ...value, ...newCover } : null
|
cover = newCover ? { size: 'small', color: colorGroups[0][0], ...cover, ...newCover } : null
|
||||||
onChange(value)
|
if (onChange) onChange(cover)
|
||||||
|
else if (object) client.update(object, { cover })
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -46,7 +52,7 @@
|
|||||||
<Button
|
<Button
|
||||||
icon={board.icon.Card}
|
icon={board.icon.Card}
|
||||||
width="40%"
|
width="40%"
|
||||||
disabled={!value || value.size === 'small'}
|
disabled={!cover || cover.size === 'small'}
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
updateCover({ size: 'small' })
|
updateCover({ size: 'small' })
|
||||||
}}
|
}}
|
||||||
@ -54,7 +60,7 @@
|
|||||||
<Button
|
<Button
|
||||||
icon={board.icon.Board}
|
icon={board.icon.Board}
|
||||||
width="40%"
|
width="40%"
|
||||||
disabled={!value || value.size === 'large'}
|
disabled={!cover || cover.size === 'large'}
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
updateCover({ size: 'large' })
|
updateCover({ size: 'large' })
|
||||||
}}
|
}}
|
||||||
@ -86,7 +92,7 @@
|
|||||||
updateCover({ color })
|
updateCover({ color })
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{#if value && value.color === color}
|
{#if cover && cover.color === color}
|
||||||
<div class="flex-center flex-grow fs-title h-full">
|
<div class="flex-center flex-grow fs-title h-full">
|
||||||
<Icon icon={IconCheck} size="small" />
|
<Icon icon={IconCheck} size="small" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -39,6 +39,7 @@ import UserBoxList from './components/UserBoxList.svelte'
|
|||||||
import CardLabels from './components/editor/CardLabels.svelte'
|
import CardLabels from './components/editor/CardLabels.svelte'
|
||||||
import CardCoverEditor from './components/editor/CardCoverEditor.svelte'
|
import CardCoverEditor from './components/editor/CardCoverEditor.svelte'
|
||||||
import CardCoverPresenter from './components/presenters/CardCoverPresenter.svelte'
|
import CardCoverPresenter from './components/presenters/CardCoverPresenter.svelte'
|
||||||
|
import CardCoverPicker from './components/popups/CardCoverPicker.svelte'
|
||||||
import { createCard, getCardFromTodoItem } from './utils/CardUtils'
|
import { createCard, getCardFromTodoItem } from './utils/CardUtils'
|
||||||
|
|
||||||
async function ConvertToCard (object: TodoItem): Promise<void> {
|
async function ConvertToCard (object: TodoItem): Promise<void> {
|
||||||
@ -77,7 +78,7 @@ export default async (): Promise<Resources> => ({
|
|||||||
// action popups
|
// action popups
|
||||||
LabelsActionPopup: CardLabelsPopup,
|
LabelsActionPopup: CardLabelsPopup,
|
||||||
DatesActionPopup: DateRangePicker,
|
DatesActionPopup: DateRangePicker,
|
||||||
CoverActionPopup: CardCoverEditor,
|
CoverActionPopup: CardCoverPicker,
|
||||||
MoveActionPopup: MoveCard,
|
MoveActionPopup: MoveCard,
|
||||||
CopyActionPopup: CopyCard
|
CopyActionPopup: CopyCard
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user