SpeciesFileGroup/taxonworks

View on GitHub
app/controllers/confidence_levels_controller.rb

Summary

Maintainability
A
1 hr
Test Coverage
class ConfidenceLevelsController < ApplicationController
  include DataControllerConfiguration::ProjectDataControllerConfiguration

  # GET /index.json
  def index
    respond_to do |format|

      format.html do
        render '/shared/data/all/index'
      end

      format.json do
        @controlled_vocabulary_terms = ConfidenceLevel.with_project_id(sessions_current_project_id).order(:position)
        render '/controlled_vocabulary_terms/index'
      end
    end
  end

  def autocomplete
    confidence_levels = Queries::ControlledVocabularyTerm::Autocomplete.new(params[:term], project_id: sessions_current_project_id, of_type: ['ConfidenceLevel']).autocomplete

    data = confidence_levels.collect do |t|
      str = t.name + ': ' + t.definition
      {id: t.id,
       label: str,
       response_values: {
         params[:method] => t.id},
       label_html: str
      }
    end

    render json: data
  end

  def lookup
    @confidence_levels = Queries::ControlledVocabularyTerm::Autocomplete::Query.new(term_param, project_id: sessions_current_project_id, object_type: ['ConfidenceLevel']).all
    render(json: @confidence_levels.collect { |t|
      {
        label: t.name,
        object_id: t.id,
        definition: t.definition
      }
    })
  end

  def select_options
    @confidence_levels = ConfidenceLevel.select_optimized(sessions_current_user_id, sessions_current_project_id, params.require(:target))
  end

  protected

  def term_param
    params.require(:term)
  end

end