diff --git a/packages/presentation/src/utils.ts b/packages/presentation/src/utils.ts index cffc45d5ad..b19a78dce7 100644 --- a/packages/presentation/src/utils.ts +++ b/packages/presentation/src/utils.ts @@ -33,7 +33,8 @@ import core, { RefTo, Tx, TxOperations, - TxResult + TxResult, + WithLookup } from '@hcengineering/core' import login from '@hcengineering/login' import { getMetadata, getResource, IntlString } from '@hcengineering/platform' @@ -72,6 +73,22 @@ class UIClient extends TxOperations implements Client { super(client, getCurrentAccount()._id) } + override async findAll( + _class: Ref>, + query: DocumentQuery, + options?: FindOptions + ): Promise> { + return await this.liveQuery.findAll(_class, query, options) + } + + override async findOne( + _class: Ref>, + query: DocumentQuery, + options?: FindOptions + ): Promise | undefined> { + return await this.liveQuery.findOne(_class, query, options) + } + override async tx (tx: Tx): Promise { return await super.tx(tx) } diff --git a/plugins/tracker-resources/src/issues.ts b/plugins/tracker-resources/src/issues.ts index 53e5247a3a..fbfefa1603 100644 --- a/plugins/tracker-resources/src/issues.ts +++ b/plugins/tracker-resources/src/issues.ts @@ -27,18 +27,24 @@ export async function getIssueTitle (client: TxOperations, ref: Ref): Promi return getIssueId(object.$lookup.space, object) } +async function getTitle (doc: Doc): Promise { + const client = getClient() + const issue = doc as Issue + const object = await client.findOne(tracker.class.Team, { _id: issue.space }) + if (object === undefined) return `?-${issue.number}` + return getIssueId(object, issue) +} + export function generateIssuePanelUri (issue: Issue): string { return getPanelURI(tracker.component.EditIssue, issue._id, issue._class, 'content') } export async function issueIdProvider (doc: Doc): Promise { - const client = getClient() - return await getIssueTitle(client, doc._id) + return await getTitle(doc) } export async function issueLinkFragmentProvider (doc: Doc): Promise { - const client = getClient() - return await getIssueTitle(client, doc._id).then((p) => `${trackerId}|${p}`) + return await getTitle(doc).then((p) => `${trackerId}|${p}`) } export async function issueTitleProvider (doc: Issue): Promise { @@ -46,8 +52,7 @@ export async function issueTitleProvider (doc: Issue): Promise { } export async function issueLinkProvider (doc: Doc): Promise { - const client = getClient() - return await getIssueTitle(client, doc._id).then(generateIssueShortLink) + return await getTitle(doc).then(generateIssueShortLink) } export function generateIssueShortLink (issueId: string): string {