platform/plugins/board-resources/src/utils/CardUtils.ts
Alex 5b54ab7c46
Add ArchiveCard action ()
Signed-off-by: Dvinyanin Alexandr <dvinyanin.alexandr@gmail.com>
2022-04-19 22:37:19 +07:00

60 lines
1.5 KiB
TypeScript

import { Card } from '@anticrm/board'
import { EmployeeAccount } from '@anticrm/contact'
import { TxOperations as Client, getCurrentAccount } from '@anticrm/core'
export function updateCard (client: Client, card: Card, field: string, value: any): void {
if (!card) {
return
}
client.update(card, { [field]: value })
}
export function deleteCard (card: Card, client: Client): void {
client.remove(card)
}
export function isArchived (card: Card): boolean {
return !!card.isArchived
}
export function isUnarchived (card: Card): boolean {
return !card.isArchived
}
export function canAddCurrentUser (card: Card): boolean {
if (card.members == null) {
return true
}
const employee = (getCurrentAccount() as EmployeeAccount).employee
return !card.members.includes(employee)
}
export function hasCover (card: Card): boolean {
return !!card.coverColor || !!card.coverImage
}
export function hasDate (card: Card): boolean {
return !!card.date && (!!card.date.dueDate || !!card.date.startDate)
}
export function addCurrentUser (card: Card, client: Client): void {
const employee = (getCurrentAccount() as EmployeeAccount).employee
const members = card.members ?? []
if (members.includes(employee)) {
return
}
members.push(employee)
updateCard(client, card, 'members', members)
}
export function archiveCard (card: Card, client: Client): void {
updateCard(client, card, 'isArchived', true)
}
export function unarchiveCard (card: Card, client: Client): void {
updateCard(client, card, 'isArchived', false)
}