From 5a249f28e1dd874e23c5e26276f78a877cfa1864 Mon Sep 17 00:00:00 2001 From: rahulramesha Date: Wed, 29 Nov 2023 11:33:12 +0530 Subject: [PATCH] fix sorting of existing values and add sorting to all fields --- .../issues/project-issues/base-issue.store.ts | 62 ++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/web/store/issues/project-issues/base-issue.store.ts b/web/store/issues/project-issues/base-issue.store.ts index d10dba31e..bb9ee36c5 100644 --- a/web/store/issues/project-issues/base-issue.store.ts +++ b/web/store/issues/project-issues/base-issue.store.ts @@ -122,22 +122,80 @@ export class IssueBaseStore implements IIssueBaseStore { issuesSortWithOrderBy = (issueObject: IIssueResponse, key: Partial): IIssue[] => { let array = _.values(issueObject); - array = _.sortBy(array, "created_at"); + array = _.reverse(_.sortBy(array, "created_at")); switch (key) { case "sort_order": - return _.sortBy(array, "sort_order"); + return _.reverse(_.sortBy(array, "sort_order")); + case "state__name": { + return _.reverse(_.sortBy(array, "state")); + } + case "-state__name": { + return _.sortBy(array, "state"); + } + //dates + case "created_at": + return _.sortBy(array, "created_at"); case "-created_at": return _.reverse(_.sortBy(array, "created_at")); + case "updated_at": + return _.sortBy(array, "updated_at"); case "-updated_at": return _.reverse(_.sortBy(array, "updated_at")); case "start_date": return _.sortBy(array, "start_date"); + case "-start_date": + return _.reverse(_.sortBy(array, "start_date")); case "target_date": return _.sortBy(array, "target_date"); + case "-target_date": + return _.reverse(_.sortBy(array, "target_date")); + //custom case "priority": { + const sortArray = ISSUE_PRIORITIES.map((i) => i.key); + return _.reverse(_.sortBy(array, (_issue: IIssue) => _.indexOf(sortArray, _issue.priority))); + } + case "-priority": { const sortArray = ISSUE_PRIORITIES.map((i) => i.key); return _.sortBy(array, (_issue: IIssue) => _.indexOf(sortArray, _issue.priority)); } + //number + case "attachment_count": { + return _.sortBy(array, "attachment_count"); + } + case "-attachment_count": { + return _.reverse(_.sortBy(array, "attachment_count")); + } + case "estimate_point": { + return _.sortBy(array, "estimate_point"); + } + case "-estimate_point": { + return _.reverse(_.sortBy(array, "estimate_point")); + } + case "link_count": { + return _.sortBy(array, "link_count"); + } + case "-link_count": { + return _.reverse(_.sortBy(array, "link_count")); + } + case "sub_issues_count": { + return _.sortBy(array, "sub_issues_count"); + } + case "-sub_issues_count": { + return _.reverse(_.sortBy(array, "sub_issues_count")); + } + //Array + case "labels__name": { + return _.reverse(_.sortBy(array, "labels")); + } + case "-labels__name": { + return _.sortBy(array, "labels"); + } + case "assignees__first_name": { + return _.reverse(_.sortBy(array, "assignees")); + } + case "-assignees__first_name": { + return _.sortBy(array, "assignees"); + } default: return array; }