mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-17 22:03:09 +00:00
60 lines
1.5 KiB
TypeScript
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)
|
|
}
|