Sha256: 5f49a2edcb7e1149f414e723c3a84585cb9739a874a8ad0f7109b62b277f5a2f

Contents?: true

Size: 1.38 KB

Versions: 9

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

module AdditionalTags
  module Patches
    module AgileQueryPatch
      extend ActiveSupport::Concern

      included do
        include AdditionalsQuery
        include InstanceMethods

        alias_method :initialize_available_filters_without_tags, :initialize_available_filters
        alias_method :initialize_available_filters, :initialize_available_filters_with_tags

        add_available_column ::QueryTagsColumn.new
      end

      module InstanceMethods
        def sql_for_tags_field(_field, operator, value)
          issues = case operator
                   when '=', '!'
                     Issue.tagged_with value.clone, any: true
                   when '!*'
                     Issue.joins(:tags).uniq
                   else
                     Issue.tagged_with(ActsAsTaggableOn::Tag.all.map(&:to_s), any: true)
                   end

          compare   = operator.include?('!') ? 'NOT IN' : 'IN'
          ids_list  = issues.collect(&:id).push(0).join(',')
          "( #{Issue.table_name}.id #{compare} (#{ids_list}) ) "
        end

        def initialize_available_filters_with_tags
          initialize_available_filters_without_tags

          initialize_tags_filter if !available_filters.key?('tags') &&
                                    User.current.allowed_to?(:view_issue_tags, project, global: true)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
additional_tags-3.2.0 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-3.1.0 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-3.0.9 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-1.0.7 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-1.0.6 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-1.0.5 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-1.0.4 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-1.0.3 lib/additional_tags/patches/agile_query_patch.rb
additional_tags-1.0.2 lib/additional_tags/patches/agile_query_patch.rb