mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-29 04:55:03 +02:00
Extract collaborators (#9217)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
@@ -20,7 +20,13 @@
|
||||
import tags from '@hcengineering/tags'
|
||||
import type { Issue } from '@hcengineering/tracker'
|
||||
import { Component, Label } from '@hcengineering/ui'
|
||||
import { getFiltredKeys, isCollectionAttr, ObjectBox, restrictionStore } from '@hcengineering/view-resources'
|
||||
import {
|
||||
getDocMixins,
|
||||
getFiltredKeys,
|
||||
isCollectionAttr,
|
||||
ObjectBox,
|
||||
restrictionStore
|
||||
} from '@hcengineering/view-resources'
|
||||
|
||||
import tracker from '../../../plugin'
|
||||
import ComponentEditor from '../../components/ComponentEditor.svelte'
|
||||
@@ -30,6 +36,7 @@
|
||||
import PriorityEditor from '../PriorityEditor.svelte'
|
||||
import RelationEditor from '../RelationEditor.svelte'
|
||||
import StatusEditor from '../StatusEditor.svelte'
|
||||
import notification from '@hcengineering/notification'
|
||||
|
||||
export let issue: Issue
|
||||
export let showAllMixins: boolean = false
|
||||
@@ -69,18 +76,13 @@
|
||||
|
||||
let mixins: Mixin<Doc>[] = []
|
||||
|
||||
$: getMixins(issue, showAllMixins)
|
||||
$: _mixins = getDocMixins(issue, showAllMixins)
|
||||
|
||||
function getMixins (object: Issue, showAllMixins: boolean): void {
|
||||
const descendants = hierarchy.getDescendants(core.class.Doc).map((p) => hierarchy.getClass(p))
|
||||
$: mixins = _mixins.find((p) => p._id === notification.mixin.Collaborators)
|
||||
? _mixins
|
||||
: [..._mixins, hierarchy.getClass(notification.mixin.Collaborators)]
|
||||
|
||||
mixins = descendants.filter(
|
||||
(m) =>
|
||||
m.kind === ClassifierKind.MIXIN &&
|
||||
(hierarchy.hasMixin(object, m._id) ||
|
||||
(showAllMixins && hierarchy.isDerived(tracker.class.Issue, hierarchy.getBaseClass(m._id))))
|
||||
)
|
||||
}
|
||||
const allowedCollections = ['collaborators']
|
||||
|
||||
function getMixinKeys (mixin: Ref<Mixin<Doc>>): KeyedAttribute[] {
|
||||
const mixinClass = hierarchy.getClass(mixin)
|
||||
@@ -90,7 +92,7 @@
|
||||
[],
|
||||
hierarchy.isMixin(mixinClass.extends as Ref<Class<Doc>>) ? mixinClass.extends : issue._class
|
||||
)
|
||||
return filtredKeys.filter((key) => !isCollectionAttr(hierarchy, key))
|
||||
return filtredKeys.filter((key) => !isCollectionAttr(hierarchy, key) || allowedCollections.includes(key.key))
|
||||
}
|
||||
|
||||
$: updateKeys(issue._class, ignoreKeys)
|
||||
|
||||
Reference in New Issue
Block a user