From dbd9d8dd54fd3b0ff7b02ae7b7da8369654e3725 Mon Sep 17 00:00:00 2001 From: jaqra <48099350+jaqra@users.noreply.github.com> Date: Wed, 23 Oct 2019 19:29:14 +0300 Subject: Add 'Alt + click' feature to exclude labels (#8199) Add 'Alt + click' and 'Alt +enter' feature to exclude particular labels on searching for issues. --- models/issue.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'models/issue.go') diff --git a/models/issue.go b/models/issue.go index 688a412d8c..f006917891 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1248,8 +1248,12 @@ func (opts *IssuesOptions) setupSession(sess *xorm.Session) { if opts.LabelIDs != nil { for i, labelID := range opts.LabelIDs { - sess.Join("INNER", fmt.Sprintf("issue_label il%d", i), - fmt.Sprintf("issue.id = il%[1]d.issue_id AND il%[1]d.label_id = %[2]d", i, labelID)) + if labelID > 0 { + sess.Join("INNER", fmt.Sprintf("issue_label il%d", i), + fmt.Sprintf("issue.id = il%[1]d.issue_id AND il%[1]d.label_id = %[2]d", i, labelID)) + } else { + sess.Where("issue.id not in (select issue_id from issue_label where label_id = ?)", -labelID) + } } } } -- cgit v1.2.3