diff options
author | Robert Speicher <rspeicher@gmail.com> | 2019-03-13 14:33:55 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2019-03-13 14:33:55 +0000 |
commit | 69ed9ae4d4bc0a64713c9a01d6ac27f9fc303101 (patch) | |
tree | 69d9a1886df4ed8dc110a018656d6270c0120004 | |
parent | 99c49164bb52a04badc2efbb4872159059f1c066 (diff) | |
parent | eba5672077f5d7956fc8f7db583136b3ccb451b5 (diff) | |
download | gitlab-ce-69ed9ae4d4bc0a64713c9a01d6ac27f9fc303101.tar.gz |
Merge branch 'allow-filtering-labels-by-a-single-character' into 'master'
Allow filtering labels by a single character
Closes #58795
See merge request gitlab-org/gitlab-ce!26012
-rw-r--r-- | app/models/label.rb | 7 | ||||
-rw-r--r-- | changelogs/unreleased/allow-filtering-labels-by-a-single-character.yml | 5 | ||||
-rw-r--r-- | lib/gitlab/sql/pattern.rb | 6 | ||||
-rw-r--r-- | spec/finders/labels_finder_spec.rb | 6 |
4 files changed, 23 insertions, 1 deletions
diff --git a/app/models/label.rb b/app/models/label.rb index 1c3db3eb35d..96bdb7f17c5 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -126,6 +126,13 @@ class Label < ActiveRecord::Base fuzzy_search(query, [:title, :description]) end + # Override Gitlab::SQL::Pattern.min_chars_for_partial_matching as + # label queries are never global, and so will not use a trigram + # index. That means we can have just one character in the LIKE. + def self.min_chars_for_partial_matching + 1 + end + def open_issues_count(user = nil) issues_count(user, state: 'opened') end diff --git a/changelogs/unreleased/allow-filtering-labels-by-a-single-character.yml b/changelogs/unreleased/allow-filtering-labels-by-a-single-character.yml new file mode 100644 index 00000000000..31165bbadb7 --- /dev/null +++ b/changelogs/unreleased/allow-filtering-labels-by-a-single-character.yml @@ -0,0 +1,5 @@ +--- +title: Allow filtering labels list by one or two characters +merge_request: 26012 +author: +type: changed diff --git a/lib/gitlab/sql/pattern.rb b/lib/gitlab/sql/pattern.rb index 07d0acdbae9..b698391c8bd 100644 --- a/lib/gitlab/sql/pattern.rb +++ b/lib/gitlab/sql/pattern.rb @@ -23,8 +23,12 @@ module Gitlab end end + def min_chars_for_partial_matching + MIN_CHARS_FOR_PARTIAL_MATCHING + end + def partial_matching?(query) - query.length >= MIN_CHARS_FOR_PARTIAL_MATCHING + query.length >= min_chars_for_partial_matching end # column - The column name to search in. diff --git a/spec/finders/labels_finder_spec.rb b/spec/finders/labels_finder_spec.rb index 9abc52aa664..3f060ba0553 100644 --- a/spec/finders/labels_finder_spec.rb +++ b/spec/finders/labels_finder_spec.rb @@ -209,6 +209,12 @@ describe LabelsFinder do expect(finder.execute).to eq [project_label_1] end + + it 'returns labels matching a single character' do + finder = described_class.new(user, search: '(') + + expect(finder.execute).to eq [group_label_1] + end end context 'filter by subscription' do |