diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index ad204dc3bf..1df5aeb0eb 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -323,7 +323,7 @@ export class TTimeSpendReport extends TAttachedDoc implements TimeSpendReport { * @public */ @Model(tracker.class.Component, core.class.Doc, DOMAIN_TRACKER) -@UX(tracker.string.Component, tracker.icon.Component, 'COMPONENT') +@UX(tracker.string.Component, tracker.icon.Component, 'COMPONENT', 'label') export class TComponent extends TDoc implements Component { @Prop(TypeString(), tracker.string.Title) @Index(IndexKind.FullText) @@ -348,7 +348,7 @@ export class TComponent extends TDoc implements Component { * @public */ @Model(tracker.class.Milestone, core.class.Doc, DOMAIN_TRACKER) -@UX(tracker.string.Milestone, tracker.icon.Milestone) +@UX(tracker.string.Milestone, tracker.icon.Milestone, '', 'label') export class TMilestone extends TDoc implements Milestone { @Prop(TypeString(), tracker.string.Title) // @Index(IndexKind.FullText) @@ -1336,7 +1336,25 @@ export function createModel (builder: Builder): void { }) builder.mixin(tracker.class.Issue, core.class.Class, view.mixin.ClassFilters, { - filters: ['status', 'priority', 'space', 'createdBy', 'assignee'], + filters: [ + 'status', + 'priority', + 'space', + 'createdBy', + 'assignee', + { + _class: tracker.class.Issue, + key: 'component', + component: view.component.ObjectFilter, + showNested: false + }, + { + _class: tracker.class.Issue, + key: 'milestone', + component: view.component.ObjectFilter, + showNested: false + } + ], ignoreKeys: ['number', 'estimation', 'attachedTo'] }) diff --git a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte index 1bf630c1f5..66aff116e7 100644 --- a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte +++ b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte @@ -231,6 +231,9 @@ } function hasNested (type: KeyFilter): boolean { + if (type.showNested === false) { + return false + } const targetClass = (hierarchy.getAttribute(type._class, type.key).type as RefTo).to if (targetClass === undefined) return false const clazz = hierarchy.getClass(targetClass) diff --git a/plugins/view/src/index.ts b/plugins/view/src/index.ts index 72ecbbdab0..9d21eca395 100644 --- a/plugins/view/src/index.ts +++ b/plugins/view/src/index.ts @@ -57,6 +57,7 @@ export interface KeyFilterPreset { component: AnyComponent label?: IntlString group?: 'top' | 'bottom' + showNested?: boolean } /**