diff options
Diffstat (limited to 'app/finders/issuables/label_filter.rb')
-rw-r--r-- | app/finders/issuables/label_filter.rb | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/app/finders/issuables/label_filter.rb b/app/finders/issuables/label_filter.rb index f4712fa6879..9a6ca107b19 100644 --- a/app/finders/issuables/label_filter.rb +++ b/app/finders/issuables/label_filter.rb @@ -82,6 +82,8 @@ module Issuables if root_namespace label_ids = find_label_ids(label_names).flatten(1) + return issuables if label_ids.empty? + issuables.where(label_link_query(target_model, label_ids: label_ids).arel.exists.not) else issuables.where(label_link_query(target_model, label_names: label_names).arel.exists.not) @@ -133,11 +135,7 @@ module Issuables # rubocop: disable CodeReuse/ActiveRecord def label_link_query(target_model, label_ids: nil, label_names: nil) - relation = LabelLink - .where(target_type: target_model.name) - .where(LabelLink.arel_table['target_id'].eq(target_model.arel_table['id'])) - - relation = relation.where(label_id: label_ids) if label_ids + relation = LabelLink.by_target_for_exists_query(target_model.name, target_model.arel_table['id'], label_ids) relation = relation.joins(:label).where(labels: { name: label_names }) if label_names relation |