mirror of
https://github.com/hcengineering/platform.git
synced 2026-10-01 22:15:04 +02:00
Tracker: View options - Grouping (#1442)
Signed-off-by: Artyom Grigorovich <grigorovichartyom@gmail.com>
This commit is contained in:
@@ -14,9 +14,9 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import { Ref } from '@anticrm/core'
|
||||
import { Ref, SortingOrder } from '@anticrm/core'
|
||||
import type { Asset, IntlString } from '@anticrm/platform'
|
||||
import { IssuePriority, IssueStatus, Team } from '@anticrm/tracker'
|
||||
import { IssuePriority, IssueStatus, Team, IssuesGrouping, IssuesOrdering, Issue } from '@anticrm/tracker'
|
||||
import { AnyComponent } from '@anticrm/ui'
|
||||
import { LexoDecimal, LexoNumeralSystem36, LexoRank } from 'lexorank'
|
||||
import LexoRankBucket from 'lexorank/lib/lexoRank/lexoRankBucket'
|
||||
@@ -78,3 +78,47 @@ export const issuePriorities: Record<IssuePriority, { icon: Asset, label: IntlSt
|
||||
[IssuePriority.Medium]: { icon: tracker.icon.PriorityMedium, label: tracker.string.Medium },
|
||||
[IssuePriority.Low]: { icon: tracker.icon.PriorityLow, label: tracker.string.Low }
|
||||
}
|
||||
|
||||
export const issuesGroupByOptions: Record<IssuesGrouping, IntlString> = {
|
||||
[IssuesGrouping.Status]: tracker.string.Status,
|
||||
[IssuesGrouping.Assignee]: tracker.string.Assignee,
|
||||
[IssuesGrouping.Priority]: tracker.string.Priority,
|
||||
[IssuesGrouping.NoGrouping]: tracker.string.NoGrouping
|
||||
}
|
||||
|
||||
export const issuesOrderByOptions: Record<IssuesOrdering, IntlString> = {
|
||||
[IssuesOrdering.Status]: tracker.string.Status,
|
||||
[IssuesOrdering.Priority]: tracker.string.Priority,
|
||||
[IssuesOrdering.LastUpdated]: tracker.string.LastUpdated,
|
||||
[IssuesOrdering.DueDate]: tracker.string.DueDate
|
||||
}
|
||||
|
||||
export type IssuesGroupByKeys = keyof Pick<Issue, 'status' | 'priority' | 'assignee' >
|
||||
export type IssuesOrderByKeys = keyof Pick<Issue, 'status' | 'priority' | 'modifiedOn' | 'dueDate'>
|
||||
|
||||
export const issuesGroupKeyMap: Record<IssuesGrouping, IssuesGroupByKeys | undefined> = {
|
||||
[IssuesGrouping.Status]: 'status',
|
||||
[IssuesGrouping.Priority]: 'priority',
|
||||
[IssuesGrouping.Assignee]: 'assignee',
|
||||
[IssuesGrouping.NoGrouping]: undefined
|
||||
}
|
||||
|
||||
export const issuesOrderKeyMap: Record<IssuesOrdering, IssuesOrderByKeys> = {
|
||||
[IssuesOrdering.Status]: 'status',
|
||||
[IssuesOrdering.Priority]: 'priority',
|
||||
[IssuesOrdering.LastUpdated]: 'modifiedOn',
|
||||
[IssuesOrdering.DueDate]: 'dueDate'
|
||||
}
|
||||
|
||||
export const issuesSortOrderMap: Record<IssuesOrderByKeys, SortingOrder> = {
|
||||
status: SortingOrder.Ascending,
|
||||
priority: SortingOrder.Ascending,
|
||||
modifiedOn: SortingOrder.Descending,
|
||||
dueDate: SortingOrder.Descending
|
||||
}
|
||||
|
||||
export const issuesGroupPresenterMap: Record<IssuesGroupByKeys, AnyComponent | undefined> = {
|
||||
status: tracker.component.StatusPresenter,
|
||||
priority: tracker.component.PriorityPresenter,
|
||||
assignee: tracker.component.AssigneePresenter
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user