Module: Katello::Concerns::FilteredAutoCompleteSearch

Constant Summary collapse

PAGE_SIZE =
20

Instance Method Summary collapse

Instance Method Details

#auto_complete_searchObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/katello/concerns/filtered_auto_complete_search.rb', line 8

def auto_complete_search
  begin
    options = resource_class.respond_to?(:completer_scope_options) ? resource_class.completer_scope_options : {}
    items = resource_class.where(:id => self.index_relation).complete_for(params[:search], options)
    items = items.map do |item|
      category = (['and', 'or', 'not', 'has'].include?(item.to_s.sub(/^.*\s+/, ''))) ? _('Operators') : ''
      part = item.to_s.sub(/^.*\b(and|or)\b/i) { |match| match.sub(/^.*\s+/, '') }
      completed = item.to_s.chomp(part)
      {:completed => completed, :part => part, :label => item, :category => category}
    end
  rescue ScopedSearch::QueryNotSupported => e
    items = [{:error => e.to_s}]
  end
  render :json => items
end