SpeciesFileGroup/taxonworks

View on GitHub
app/controllers/observation_matrix_columns_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ObservationMatrixColumnsController < ApplicationController
  include DataControllerConfiguration::ProjectDataControllerConfiguration

  before_action :set_observation_matrix_column, only: [:show]
  after_action -> { set_pagination_headers(:observation_matrix_columns) }, only: [:index], if: :json_request?

  # GET /matrix_columns
  # GET /matrix_columns.json
  def index
    respond_to do |format|
      format.html do
        @recent_objects = ObservationMatrixColumn.recent_from_project_id(sessions_current_project_id).order(updated_at: :desc).limit(10)
        render '/shared/data/all/index'
      end
      format.json { 
        @observation_matrix_columns = ObservationMatrixColumn.where(filter_params)
          .where(project_id: sessions_current_project_id)
          .order('observation_matrix_columns.position')
          .page(params[:page]).per(params[:per])
      }
    end
  end

  # GET /matrix_columns/1
  # GET /matrix_columns/1.json
  def show
  end

  def list
    @observation_matrix_columns = ObservationMatrixColumn.with_project_id(sessions_current_project_id).page(params[:page])
  end

  # POST /observation_matrix_columns/sort?id[]=1&id[]=2
  def sort
    ObservationMatrixColumn.sort(params.require(:ids))
    head :no_content 
  end

  private

  def filter_params
    params.permit(:descriptor_id, :observation_matrix_id)
  end

  def set_observation_matrix_column
    @observation_matrix_column = ObservationMatrixColumn.where(project_id: sessions_current_project_id).find(params[:id])
  end

end