diff --git a/.vscode/launch.json b/.vscode/launch.json index 8ec96f9991..164f4d12d1 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -96,7 +96,7 @@ "MODEL_JSON": "${workspaceRoot}/models/all/bundle/model.json", // "SERVER_PROVIDER":"uweb" "SERVER_PROVIDER": "ws", - "MODEL_VERSION": "0.7.24", + "MODEL_VERSION": "0.7.48", // "VERSION": "0.6.289", "ELASTIC_INDEX_NAME": "local_storage_index", "UPLOAD_URL": "/files", diff --git a/plugins/recruit-resources/src/components/CreateCandidate.svelte b/plugins/recruit-resources/src/components/CreateCandidate.svelte index 50a4ed1d71..b49355c41a 100644 --- a/plugins/recruit-resources/src/components/CreateCandidate.svelte +++ b/plugins/recruit-resources/src/components/CreateCandidate.svelte @@ -702,7 +702,7 @@ addTagRef(evt.detail) }} on:delete={(evt) => { - object.skills = object.skills.filter((it) => it._id !== evt.detail) + object.skills = object.skills.filter((it) => it.tag !== evt.detail._id) }} /> {#if object.skills.length > 0} diff --git a/plugins/tags-resources/src/components/TagsDropdownEditor.svelte b/plugins/tags-resources/src/components/TagsDropdownEditor.svelte index d16a0b26c9..e8c9e7a871 100644 --- a/plugins/tags-resources/src/components/TagsDropdownEditor.svelte +++ b/plugins/tags-resources/src/components/TagsDropdownEditor.svelte @@ -67,10 +67,7 @@ if (result.action === 'add') { void addRef(result.tag) } else if (result.action === 'remove') { - const filtered = items.filter((it) => (it.tag ? it.tag === result.tag._id : it._id === result.tag._id)) - if (filtered.length > 0) { - void removeTag(filtered[0].tag ?? filtered[0]._id) - } + void removeTag(result.tag) } } }, @@ -82,8 +79,8 @@ ) } - async function removeTag (id: Ref | Ref): Promise { - dispatch('delete', id) + async function removeTag (tag: TagElement): Promise { + dispatch('delete', tag) } let countText = '' diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index baae8c9974..862df006e7 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -47,7 +47,7 @@ getClient, getMarkup } from '@hcengineering/presentation' - import tags, { TagElement, TagReference } from '@hcengineering/tags' + import tags, { TagReference, type TagElement } from '@hcengineering/tags' import { TaskType, makeRank } from '@hcengineering/task' import { TaskKindSelector } from '@hcengineering/task-resources' import { EmptyMarkup, isEmptyMarkup } from '@hcengineering/text' @@ -957,7 +957,7 @@ addTagRef(evt.detail) }} on:delete={(evt) => { - object.labels = object.labels.filter((it) => it._id !== evt.detail) + object.labels = object.labels.filter((it) => it.tag !== evt.detail._id) }} /> { + currentProject = evt.detail ?? undefined + }} + readonly={true} kind={'regular'} size={'large'} component={ProjectPresenter} @@ -225,7 +229,7 @@ addTagRef(evt.detail) }} on:delete={(evt) => { - labels = labels.filter((it) => it._id !== evt.detail) + labels = labels.filter((it) => it._id !== evt.detail._id) }} /> diff --git a/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte b/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte index db1200785f..703ae198f0 100644 --- a/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte +++ b/plugins/tracker-resources/src/components/templates/DraftIssueChildEditor.svelte @@ -249,7 +249,7 @@ addTagRef(evt.detail) }} on:delete={(evt) => { - object.labels = object.labels.filter((it) => it._id !== evt.detail) + object.labels = object.labels.filter((it) => it.tag !== evt.detail._id) }} /> diff --git a/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte b/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte index aae0393775..9aac5a5316 100644 --- a/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte +++ b/plugins/tracker-resources/src/components/templates/EditIssueTemplate.svelte @@ -20,7 +20,7 @@ import { getResource } from '@hcengineering/platform' import { createQuery, getClient } from '@hcengineering/presentation' import setting, { settingId } from '@hcengineering/setting' - import tags from '@hcengineering/tags' + import tags, { type TagElement, type TagReference } from '@hcengineering/tags' import { IssueTemplate, IssueTemplateChild, Project } from '@hcengineering/tracker' import { Button, EditBox, IconMoreH, Label, getCurrentResolvedLocation, navigate } from '@hcengineering/ui' import view from '@hcengineering/view' @@ -74,8 +74,18 @@ } currentProject = template.$lookup?.space }, - { lookup: { space: tracker.class.Project, labels: tags.class.TagElement } } + { lookup: { space: tracker.class.Project } } ) + let labels: TagElement[] = [] + + const tagsQuery = createQuery() + $: if ((template?.labels ?? []).length > 0) { + tagsQuery.query(tags.class.TagElement, { _id: { $in: template?.labels ?? [] } }, (res) => { + labels = res + }) + } else { + tagsQuery.unsubscribe() + } $: canSave = title.trim().length > 0 @@ -210,7 +220,7 @@ {#if template !== undefined && currentProject} - + {/if} diff --git a/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte b/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte index 7f8ca871fe..b1405be5d0 100644 --- a/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte +++ b/plugins/tracker-resources/src/components/templates/IssueTemplateChildEditor.svelte @@ -201,7 +201,7 @@ addTagRef(evt.detail) }} on:delete={(evt) => { - labels = labels.filter((it) => it._id !== evt.detail) + labels = labels.filter((it) => it._id !== evt.detail._id) }} /> diff --git a/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte b/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte index 0499c1b9f6..faf3175312 100644 --- a/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte +++ b/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte @@ -28,6 +28,7 @@ import MilestoneEditor from '../milestones/MilestoneEditor.svelte' export let issue: WithLookup + export let labelIds: TagElement[] = [] const client = getClient() const hierarchy = client.getHierarchy() @@ -48,16 +49,14 @@ let labelRefs: TagReference[] = [] - $: labelIds = issue?.$lookup?.labels ?? [] - $: if (labelIds !== undefined) { labelRefs = (Array.isArray(labelIds) ? labelIds : [labelIds]).map( (it) => ({ ...(it as unknown as TagReference), _id: generateId(), tag: it._id }) as unknown as TagReference ) } - const onTagDelete = async (evt: CustomEvent>): Promise => { - const itm = labelRefs.find((it) => it._id === evt.detail) + const onTagDelete = async (evt: CustomEvent): Promise => { + const itm = labelRefs.find((it) => it.tag === evt.detail._id) if (itm !== undefined) { await client.update(issue, { $pull: { labels: itm.tag as unknown as Ref }