Adjust format

This commit is contained in:
Thomas E Lackey 2025-01-10 13:47:52 -06:00
parent bbf913a13e
commit 104e4c517b

View File

@ -70,54 +70,56 @@ func (o *IssuesOptions) Copy(edit ...func(options *IssuesOptions)) *IssuesOption
// applySorts sort an issues-related session based on the provided // applySorts sort an issues-related session based on the provided
// sortType string // sortType string
func applySorts(sess *xorm.Session, sortType string, priorityRepoID int64) { func applySorts(sess *xorm.Session, sortType string, priorityRepoID int64) {
// Since this sortType is dynamically created, it has to be treated specially.
if strings.HasPrefix(sortType, "scope-") { if strings.HasPrefix(sortType, "scope-") {
scope := strings.TrimPrefix(sortType, "scope-") scope := strings.TrimPrefix(sortType, "scope-")
sess.Join("LEFT", "issue_label", "issue.id = issue_label.issue_id") sess.Join("LEFT", "issue_label", "issue.id = issue_label.issue_id")
sess.Join("LEFT", "label", "label.id = issue_label.label_id and label.name LIKE ?", fmt.Sprintf("%s/%%", scope)) sess.Join("LEFT", "label", "label.id = issue_label.label_id and label.name LIKE ?", fmt.Sprintf("%s/%%", scope))
sess.Asc("label.exclusive_order").Desc("issue.id") sess.Asc("label.exclusive_order").Desc("issue.id")
} else { return // EARLY RETURN
switch sortType { }
case "oldest":
sess.Asc("issue.created_unix").Asc("issue.id") switch sortType {
case "recentupdate": case "oldest":
sess.Desc("issue.updated_unix").Desc("issue.created_unix").Desc("issue.id") sess.Asc("issue.created_unix").Asc("issue.id")
case "leastupdate": case "recentupdate":
sess.Asc("issue.updated_unix").Asc("issue.created_unix").Asc("issue.id") sess.Desc("issue.updated_unix").Desc("issue.created_unix").Desc("issue.id")
case "mostcomment": case "leastupdate":
sess.Desc("issue.num_comments").Desc("issue.created_unix").Desc("issue.id") sess.Asc("issue.updated_unix").Asc("issue.created_unix").Asc("issue.id")
case "leastcomment": case "mostcomment":
sess.Asc("issue.num_comments").Desc("issue.created_unix").Desc("issue.id") sess.Desc("issue.num_comments").Desc("issue.created_unix").Desc("issue.id")
case "priority": case "leastcomment":
sess.Desc("issue.priority").Desc("issue.created_unix").Desc("issue.id") sess.Asc("issue.num_comments").Desc("issue.created_unix").Desc("issue.id")
case "nearduedate": case "priority":
// 253370764800 is 01/01/9999 @ 12:00am (UTC) sess.Desc("issue.priority").Desc("issue.created_unix").Desc("issue.id")
sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id"). case "nearduedate":
OrderBy("CASE " + // 253370764800 is 01/01/9999 @ 12:00am (UTC)
"WHEN issue.deadline_unix = 0 AND (milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL) THEN 253370764800 " + sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id").
"WHEN milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL THEN issue.deadline_unix " + OrderBy("CASE " +
"WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " + "WHEN issue.deadline_unix = 0 AND (milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL) THEN 253370764800 " +
"ELSE issue.deadline_unix END ASC"). "WHEN milestone.deadline_unix = 0 OR milestone.deadline_unix IS NULL THEN issue.deadline_unix " +
Desc("issue.created_unix"). "WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " +
Desc("issue.id") "ELSE issue.deadline_unix END ASC").
case "farduedate": Desc("issue.created_unix").
sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id"). Desc("issue.id")
OrderBy("CASE " + case "farduedate":
"WHEN milestone.deadline_unix IS NULL THEN issue.deadline_unix " + sess.Join("LEFT", "milestone", "issue.milestone_id = milestone.id").
"WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " + OrderBy("CASE " +
"ELSE issue.deadline_unix END DESC"). "WHEN milestone.deadline_unix IS NULL THEN issue.deadline_unix " +
Desc("issue.created_unix"). "WHEN milestone.deadline_unix < issue.deadline_unix OR issue.deadline_unix = 0 THEN milestone.deadline_unix " +
Desc("issue.id") "ELSE issue.deadline_unix END DESC").
case "priorityrepo": Desc("issue.created_unix").
sess.OrderBy("CASE "+ Desc("issue.id")
"WHEN issue.repo_id = ? THEN 1 "+ case "priorityrepo":
"ELSE 2 END ASC", priorityRepoID). sess.OrderBy("CASE "+
Desc("issue.created_unix"). "WHEN issue.repo_id = ? THEN 1 "+
Desc("issue.id") "ELSE 2 END ASC", priorityRepoID).
case "project-column-sorting": Desc("issue.created_unix").
sess.Asc("project_issue.sorting").Desc("issue.created_unix").Desc("issue.id") Desc("issue.id")
default: case "project-column-sorting":
sess.Desc("issue.created_unix").Desc("issue.id") sess.Asc("project_issue.sorting").Desc("issue.created_unix").Desc("issue.id")
} default:
sess.Desc("issue.created_unix").Desc("issue.id")
} }
} }