Class: AnatomicalPartsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- AnatomicalPartsController
- Defined in:
- app/controllers/anatomical_parts_controller.rb
Constant Summary
Constants included from ProjectsHelper
ProjectsHelper::CLASSIFIER, ProjectsHelper::CLASSIFIER_ANNOTATION
Instance Method Summary collapse
-
#anatomical_part_params ⇒ Object
private
Only allow a list of trusted parameters through.
- #autocomplete ⇒ Object
- #children_of ⇒ Object
-
#create ⇒ Object
POST /anatomical_parts or /anatomical_parts.json.
-
#destroy ⇒ Object
DELETE /anatomical_parts/1 or /anatomical_parts/1.json.
-
#edit ⇒ Object
GET /anatomical_parts/1/edit.
- #graph ⇒ Object
-
#index ⇒ Object
GET /anatomical_parts or /anatomical_parts.json.
- #list ⇒ Object
-
#new ⇒ Object
GET /anatomical_parts/new.
- #ontologies ⇒ Object
- #ontology_autocomplete ⇒ Object
- #search ⇒ Object
- #select_options ⇒ Object
- #set_anatomical_part ⇒ Object private
-
#show ⇒ Object
GET /anatomical_parts/1 or /anatomical_parts/1.json.
-
#update ⇒ Object
PATCH/PUT /anatomical_parts/1.json.
Methods included from DataControllerConfiguration::ProjectDataControllerConfiguration
Methods included from RedirectHelper
Methods included from RequestType
Methods included from LogRecent
Methods included from Cookies
#digest_cookie, #digested_cookie_exists?
Methods included from Whitelist
Methods included from ProjectsHelper
#cumulative_gb_per_year, #cumulative_projects_created_per_year, #document_cumulative_gb_per_year, #document_gb_per_year, #gb_per_year, #image_cumulative_gb_per_year, #image_gb_per_year, #invalid_object, #project_classification, #project_link, #project_login_link, #project_matches, #project_tag, #projects_list, #projects_search_form, #sound_cumulative_gb_per_year, #sound_gb_per_year, #taxonworks_classification, #week_in_review_graphs
Methods included from Api::Intercept
Methods included from TokenAuthentication
#intercept_project, #intercept_user, #intercept_user_or_project, #project_token_authenticate, #token_authenticate
Instance Method Details
#anatomical_part_params ⇒ Object (private)
Only allow a list of trusted parameters through.
149 150 151 152 153 |
# File 'app/controllers/anatomical_parts_controller.rb', line 149 def anatomical_part_params params.require(:anatomical_part).permit(:name, :uri, :uri_label, :is_material, :preparation_type_id, :preparation_type, inbound_origin_relationship_attributes: [:old_object_id, :old_object_type]) end |
#autocomplete ⇒ Object
94 95 96 97 98 99 |
# File 'app/controllers/anatomical_parts_controller.rb', line 94 def autocomplete @anatomical_parts = ::Queries::AnatomicalPart::Autocomplete.new( params.require(:term), project_id: sessions_current_project_id, ).autocomplete end |
#children_of ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 |
# File 'app/controllers/anatomical_parts_controller.rb', line 123 def children_of @origin_relationships = OriginRelationship .where( old_object_id: params[:parent_id], old_object_type: params[:parent_type], new_object_type: 'AnatomicalPart' ) .includes(:new_object) render json: @origin_relationships.map(&:new_object) end |
#create ⇒ Object
POST /anatomical_parts or /anatomical_parts.json
41 42 43 44 45 46 47 48 49 |
# File 'app/controllers/anatomical_parts_controller.rb', line 41 def create @anatomical_part = AnatomicalPart.new(anatomical_part_params) if @anatomical_part.save @origin_relationship = @anatomical_part.inbound_origin_relationship render :show, status: :created else render json: { errors: @anatomical_part.errors. }, status: :unprocessable_entity end end |
#destroy ⇒ Object
DELETE /anatomical_parts/1 or /anatomical_parts/1.json
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'app/controllers/anatomical_parts_controller.rb', line 61 def destroy @anatomical_part.destroy! respond_to do |format| format.html { redirect_to anatomical_parts_path, notice: 'Anatomical part was successfully destroyed.', status: :see_other } format.json { head :no_content } end rescue ActiveRecord::RecordNotDestroyed => e respond_to do |format| format.html { flash[:alert] = @anatomical_part.errors..to_sentence redirect_back(fallback_location: anatomical_parts_path) } format.json { render json: { errors: @anatomical_part.errors. }, status: :unprocessable_entity } end end |
#edit ⇒ Object
GET /anatomical_parts/1/edit
36 37 38 |
# File 'app/controllers/anatomical_parts_controller.rb', line 36 def edit redirect_to edit_anatomical_part_task_path anatomical_part_id: @anatomical_part.id end |
#graph ⇒ Object
114 115 116 117 |
# File 'app/controllers/anatomical_parts_controller.rb', line 114 def graph @nodes, @origin_relationships = AnatomicalPart.graph(params.require(:id), params.require(:type)) end |
#index ⇒ Object
GET /anatomical_parts or /anatomical_parts.json
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/controllers/anatomical_parts_controller.rb', line 8 def index respond_to do |format| format.html do @recent_objects = AnatomicalPart .where(project_id: sessions_current_project_id) .order(updated_at: :desc).limit(10) render '/shared/data/all/index' end format.json do @anatomical_parts = ::Queries::AnatomicalPart::Filter.new(params).all .page(params[:page]) .per(params[:per]) .order('anatomical_parts.cached') end end end |
#list ⇒ Object
87 88 89 90 91 92 |
# File 'app/controllers/anatomical_parts_controller.rb', line 87 def list @anatomical_parts = AnatomicalPart .where(project_id: sessions_current_project_id) .page(params[:page]) .per(params[:per]) end |
#new ⇒ Object
GET /anatomical_parts/new
31 32 33 |
# File 'app/controllers/anatomical_parts_controller.rb', line 31 def new redirect_to anatomical_parts_graph_task_path end |
#ontologies ⇒ Object
119 120 121 |
# File 'app/controllers/anatomical_parts_controller.rb', line 119 def ontologies render json: ::Hookkaido.ontologies end |
#ontology_autocomplete ⇒ Object
135 136 137 138 139 140 |
# File 'app/controllers/anatomical_parts_controller.rb', line 135 def ontology_autocomplete ontologies = params[:ontologies] || ['uberon'] @term = params[:term] @parts_list = ::Hookkaido.search(@term, ontologies:) @parts_list = @parts_list[:results] end |
#search ⇒ Object
101 102 103 104 105 106 107 108 |
# File 'app/controllers/anatomical_parts_controller.rb', line 101 def search if params[:id].blank? redirect_to(anatomical_part_path, alert: 'You must select an item from the list with a click or tab press before clicking show.') else redirect_to anatomical_part_path(params[:id]) end end |
#select_options ⇒ Object
110 111 112 |
# File 'app/controllers/anatomical_parts_controller.rb', line 110 def @anatomical_parts = AnatomicalPart.select_optimized(sessions_current_user_id, sessions_current_project_id, params[:target]) end |
#set_anatomical_part ⇒ Object (private)
144 145 146 |
# File 'app/controllers/anatomical_parts_controller.rb', line 144 def set_anatomical_part @anatomical_part = AnatomicalPart.find(params[:id]) end |
#show ⇒ Object
GET /anatomical_parts/1 or /anatomical_parts/1.json
27 28 |
# File 'app/controllers/anatomical_parts_controller.rb', line 27 def show end |
#update ⇒ Object
PATCH/PUT /anatomical_parts/1.json
52 53 54 55 56 57 58 |
# File 'app/controllers/anatomical_parts_controller.rb', line 52 def update if @anatomical_part.update(anatomical_part_params) render :show, status: :ok, location: @anatomical_part else render json: @anatomical_part.errors, status: :unprocessable_entity end end |