fix issue sorting and add sorting to other properties (#2931)

This commit is contained in:
rahulramesha 2023-11-29 14:02:39 +05:30 committed by Aaryan Khandelwal
parent 1549a3f5dc
commit 9289bcbe9f

View File

@ -126,22 +126,71 @@ export class IssueBaseStore implements IIssueBaseStore {
issuesSortWithOrderBy = (issueObject: IIssueResponse, key: Partial<TIssueOrderByOptions>): IIssue[] => { issuesSortWithOrderBy = (issueObject: IIssueResponse, key: Partial<TIssueOrderByOptions>): IIssue[] => {
let array = values(issueObject); let array = values(issueObject);
array = sortBy(array, "created_at"); array = reverse(sortBy(array, "created_at"));
switch (key) { switch (key) {
case "sort_order": 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": case "-created_at":
return reverse(sortBy(array, "created_at")); return reverse(sortBy(array, "created_at"));
case "updated_at":
return sortBy(array, "updated_at");
case "-updated_at": case "-updated_at":
return reverse(sortBy(array, "updated_at")); return reverse(sortBy(array, "updated_at"));
case "start_date": case "start_date":
return sortBy(array, "start_date"); return sortBy(array, "start_date");
case "-start_date":
return reverse(sortBy(array, "start_date"));
case "target_date": case "target_date":
return sortBy(array, "target_date"); return sortBy(array, "target_date");
case "-target_date":
return reverse(sortBy(array, "target_date"));
//custom
case "priority": { 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); const sortArray = ISSUE_PRIORITIES.map((i) => i.key);
return sortBy(array, (_issue: IIssue) => indexOf(sortArray, _issue.priority)); 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: default:
return array; return array;
} }