mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-28 12:35:02 +02:00
UBERF-9705: Fix issues labels add remove (#8373)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Vendored
+1
-1
@@ -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",
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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<TagReference> | Ref<TagElement>): Promise<void> {
|
||||
dispatch('delete', id)
|
||||
async function removeTag (tag: TagElement): Promise<void> {
|
||||
dispatch('delete', tag)
|
||||
}
|
||||
|
||||
let countText = ''
|
||||
|
||||
@@ -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)
|
||||
}}
|
||||
/>
|
||||
<ComponentSelector
|
||||
|
||||
@@ -154,6 +154,10 @@
|
||||
_class={tracker.class.Project}
|
||||
label={tracker.string.Project}
|
||||
bind:space={_space}
|
||||
on:object={(evt) => {
|
||||
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)
|
||||
}}
|
||||
/>
|
||||
<EstimationEditor kind={'regular'} size={'large'} value={object} />
|
||||
|
||||
@@ -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)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -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 @@
|
||||
|
||||
<svelte:fragment slot="custom-attributes">
|
||||
{#if template !== undefined && currentProject}
|
||||
<TemplateControlPanel issue={template} />
|
||||
<TemplateControlPanel issue={template} labelIds={labels} />
|
||||
{/if}
|
||||
</svelte:fragment>
|
||||
</Panel>
|
||||
|
||||
@@ -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)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
import MilestoneEditor from '../milestones/MilestoneEditor.svelte'
|
||||
|
||||
export let issue: WithLookup<IssueTemplate>
|
||||
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<Ref<TagReference>>): Promise<void> => {
|
||||
const itm = labelRefs.find((it) => it._id === evt.detail)
|
||||
const onTagDelete = async (evt: CustomEvent<TagElement>): Promise<void> => {
|
||||
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<TagElement> }
|
||||
|
||||
Reference in New Issue
Block a user