diff --git a/models/lead/src/index.ts b/models/lead/src/index.ts index b1d9057dd0..7e9e6ed71d 100644 --- a/models/lead/src/index.ts +++ b/models/lead/src/index.ts @@ -227,6 +227,12 @@ export function createModel (builder: Builder): void { 'status', 'attachments', 'comments', + { + key: '', + label: tracker.string.RelatedIssues, + presenter: tracker.component.RelatedIssueSelector, + displayProps: { key: 'related', suffix: true } + }, 'modifiedOn', { key: '$lookup.attachedTo.$lookup.channels', @@ -294,6 +300,12 @@ export function createModel (builder: Builder): void { }, { key: 'attachments', displayProps: { key: 'attachments', suffix: true } }, { key: 'comments', displayProps: { key: 'comments', suffix: true } }, + { + key: '', + label: tracker.string.RelatedIssues, + presenter: tracker.component.RelatedIssueSelector, + displayProps: { key: 'related', suffix: true } + }, { key: '', displayProps: { grow: true } }, { key: '$lookup.attachedTo.$lookup.channels', @@ -441,7 +453,7 @@ export function createModel (builder: Builder): void { groupDepth: 1 }, options: lookupLeadOptions, - config: ['attachedTo', 'attachments', 'comments', 'dueDate', 'assignee'], + config: ['attachedTo', 'status', 'attachments', 'comments', 'dueDate', 'assignee'], configOptions: { strict: true } diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index 50c7823292..bce4f9a7b7 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -21,6 +21,7 @@ import calendar from '@hcengineering/model-calendar' import chunter from '@hcengineering/model-chunter' import contact from '@hcengineering/model-contact' import core from '@hcengineering/model-core' +import gmail from '@hcengineering/model-gmail' import { generateClassNotificationTypes } from '@hcengineering/model-notification' import presentation from '@hcengineering/model-presentation' import tags from '@hcengineering/model-tags' @@ -33,7 +34,6 @@ import { type IntlString } from '@hcengineering/platform' import { recruitId, type Applicant } from '@hcengineering/recruit' import setting from '@hcengineering/setting' import { type KeyBinding, type ViewOptionModel, type ViewOptionsModel } from '@hcengineering/view' -import gmail from '@hcengineering/model-gmail' import recruit from './plugin' import { createReviewModel, reviewTableConfig, reviewTableOptions } from './review' @@ -475,6 +475,12 @@ export function createModel (builder: Builder): void { 'status', 'attachments', 'comments', + { + key: '', + label: tracker.string.RelatedIssues, + presenter: tracker.component.RelatedIssueSelector, + displayProps: { key: 'related', suffix: true } + }, 'modifiedOn', '$lookup.space.company', { @@ -604,6 +610,12 @@ export function createModel (builder: Builder): void { }, { key: 'attachments', displayProps: { key: 'attachments', suffix: true } }, { key: 'comments', displayProps: { key: 'comments', suffix: true } }, + { + key: '', + label: tracker.string.RelatedIssues, + presenter: tracker.component.RelatedIssueSelector, + displayProps: { key: 'related', suffix: true } + }, { key: '', displayProps: { grow: true } }, { key: '$lookup.space.company', diff --git a/plugins/lead-resources/package.json b/plugins/lead-resources/package.json index 5a813e9a9a..12879fb8f4 100644 --- a/plugins/lead-resources/package.json +++ b/plugins/lead-resources/package.json @@ -52,6 +52,7 @@ "@hcengineering/presentation": "^0.6.3", "@hcengineering/task": "^0.6.20", "@hcengineering/task-resources": "^0.6.0", + "@hcengineering/tracker": "^0.6.24", "@hcengineering/text-editor-resources": "^0.6.0", "@hcengineering/ui": "^0.6.15", "@hcengineering/view": "^0.6.13", diff --git a/plugins/lead-resources/src/components/KanbanCard.svelte b/plugins/lead-resources/src/components/KanbanCard.svelte index 854fbde4ca..e1c01959d3 100644 --- a/plugins/lead-resources/src/components/KanbanCard.svelte +++ b/plugins/lead-resources/src/components/KanbanCard.svelte @@ -23,16 +23,18 @@ import notification from '@hcengineering/notification' import { getClient } from '@hcengineering/presentation' import task from '@hcengineering/task' - import { AssigneePresenter } from '@hcengineering/task-resources' + import { AssigneePresenter, StateRefPresenter } from '@hcengineering/task-resources' import { ActionIcon, Component, DueDatePresenter, IconMoreH } from '@hcengineering/ui' import { BuildModelKey } from '@hcengineering/view' import { enabledConfig, openDoc, showMenu, statusStore } from '@hcengineering/view-resources' + import tracker from '@hcengineering/tracker' import lead from '../plugin' import LeadPresenter from './LeadPresenter.svelte' export let object: WithLookup<Lead> export let config: (string | BuildModelKey)[] + export let groupByKey: string const client = getClient() const assigneeAttribute = client.getHierarchy().getAttribute(lead.class.Lead, 'assignee') @@ -69,8 +71,21 @@ <ContactPresenter value={object.$lookup.attachedTo} avatarSize={'small'} /> {/if} </div> - {#if enabledConfig(config, 'dueDate')} - <div class="card-labels labels mb-2"> + <div class="card-labels mb-2"> + {#if groupByKey !== 'status' && enabledConfig(config, 'status')} + <StateRefPresenter + size={'small'} + kind={'link-bordered'} + space={object.space} + shrink={1} + value={object.status} + onChange={(status) => { + client.update(object, { status }) + }} + /> + {/if} + <Component showLoading={false} is={tracker.component.RelatedIssueSelector} props={{ object, size: 'small' }} /> + {#if enabledConfig(config, 'dueDate')} <DueDatePresenter size={'small'} kind={'link-bordered'} @@ -82,8 +97,8 @@ await client.update(object, { dueDate: e }) }} /> - </div> - {/if} + {/if} + </div> <div class="flex-between"> <div class="flex-row-center gap-3 reverse mr-4"> <LeadPresenter value={object} /> @@ -105,3 +120,17 @@ {/if} </div> </div> + +<style lang="scss"> + .card-labels { + display: flex; + flex-wrap: nowrap; + min-width: 0; + + &.labels { + overflow: hidden; + flex-shrink: 1; + border-radius: 0.5rem; + } + } +</style> diff --git a/plugins/recruit-resources/src/components/KanbanCard.svelte b/plugins/recruit-resources/src/components/KanbanCard.svelte index 988c631dd8..a8422fae8f 100644 --- a/plugins/recruit-resources/src/components/KanbanCard.svelte +++ b/plugins/recruit-resources/src/components/KanbanCard.svelte @@ -111,7 +111,7 @@ }} /> {/if} - <!-- <Component showLoading={false} is={tracker.component.RelatedIssueSelector} props={{ object, size: 'small' }} /> --> + <Component showLoading={false} is={tracker.component.RelatedIssueSelector} props={{ object, size: 'small' }} /> {#if enabledConfig(config, 'dueDate')} <DueDatePresenter size={'small'}