Module: Katello::Concerns::FilteredAutoCompleteSearch
- Extended by:
- ActiveSupport::Concern
- Included in:
- Api::V2::ActivationKeysController, Api::V2::ContentViewFiltersController, Api::V2::ContentViewHistoriesController, Api::V2::ContentViewPuppetModulesController, Api::V2::ContentViewVersionsController, Api::V2::ContentViewsController, Api::V2::EnvironmentsController, Api::V2::GpgKeysController, Api::V2::HostCollectionsController, Api::V2::HostErrataController, Api::V2::HostPackagesController, Api::V2::ProductsController, Api::V2::RepositoriesController, Api::V2::SubscriptionsController, Api::V2::SyncPlansController, Api::V2::SystemsController
- Defined in:
- app/controllers/katello/concerns/filtered_auto_complete_search.rb
Constant Summary collapse
- PAGE_SIZE =
20
Instance Method Summary collapse
Instance Method Details
#auto_complete_search ⇒ Object
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 = resource_class.respond_to?(:completer_scope_options) ? resource_class. : {} items = resource_class.where(:id => self.index_relation).complete_for(params[:search], ) 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 |