Module: AnatomicalPartsHelper
- Defined in:
- app/helpers/anatomical_parts_helper.rb
Instance Method Summary collapse
- #anatomical_part_autocomplete_tag(anatomical_part) ⇒ Object
- #anatomical_part_graph_label_for_related_object(obj) ⇒ Object
- #anatomical_part_ontology_autocomplete_label(ols_result, project_count: 0) ⇒ Object
- #anatomical_part_ontology_label(ols_result) ⇒ Object
- #anatomical_part_tag(anatomical_part, depth: 0) ⇒ Object
- #anatomical_parts_search_form ⇒ Object
- #label_for_anatomical_part(anatomical_part, depth: 0) ⇒ Object
- #label_for_anatomical_part_container(anatomical_part) ⇒ Object
- #short_label_for_anatomical_part(anatomical_part) ⇒ Object
Instance Method Details
#anatomical_part_autocomplete_tag(anatomical_part) ⇒ Object
23 24 25 |
# File 'app/helpers/anatomical_parts_helper.rb', line 23 def anatomical_part_autocomplete_tag(anatomical_part) anatomical_part_tag(anatomical_part) end |
#anatomical_part_graph_label_for_related_object(obj) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'app/helpers/anatomical_parts_helper.rb', line 86 def (obj) case obj.class.base_class.name when 'AnatomicalPart' 'AnatomicalPart: ' + (short_label_for_anatomical_part(obj) || '(no label)') when 'CollectionObject' label_for_collection_object(obj) when 'Extract' 'Extract: ' + (label_for_extract(obj) || '(no label)') when 'FieldOccurrence' label_for_field_occurrence(obj) when 'Otu' 'Otu: ' + (label_for_otu(obj) || '(no label)') when 'Sequence' 'Sequence: ' + (label_for_sequence(obj) || '(no label)') when 'Sound' 'Sound: ' + (label_for_sound(obj) || '(no label)') end end |
#anatomical_part_ontology_autocomplete_label(ols_result, project_count: 0) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 |
# File 'app/helpers/anatomical_parts_helper.rb', line 74 def anatomical_part_ontology_autocomplete_label(ols_result, project_count: 0) label = anatomical_part_ontology_label(ols_result) if project_count > 0 in_project_tag = content_tag(:span, 'In project', class: 'feedback feedback-primary feedback-thin') in_project_count_tag = content_tag(:span, project_count, class: 'feedback feedback-secondary feedback-thin') safe_join([label, ' ', in_project_tag, ' ', in_project_count_tag]) else label end end |
#anatomical_part_ontology_label(ols_result) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'app/helpers/anatomical_parts_helper.rb', line 64 def anatomical_part_ontology_label(ols_result) r = ols_result description = r[:description].present? ? ": #{r[:description]}" : '' # We expect this to always be present and it usually is, but sometimes it # isn't. ontology_prefix = r[:ontology_prefix] ? "(#{r[:ontology_prefix]})" : '' "#{r[:label]} #{ontology_prefix}#{description}" end |
#anatomical_part_tag(anatomical_part, depth: 0) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'app/helpers/anatomical_parts_helper.rb', line 2 def anatomical_part_tag(anatomical_part, depth: 0) return nil if anatomical_part.nil? raise "AnatomicalPart origin chain exceeded maximum depth, possible cycle at id #{anatomical_part.id}" if depth > 100 origin = anatomical_part.inbound_origin_relationship&.old_object origin_content = case origin&.class&.base_class&.name when 'Otu' otu_tag(origin) when 'CollectionObject' collection_object_tag(origin) when 'FieldOccurrence' field_occurrence_tag(origin) when 'AnatomicalPart' anatomical_part_tag(origin, depth: depth + 1) else otu_tag(anatomical_part.origin_otu) end content_tag(:span, safe_join([anatomical_part.cached, ': ', origin_content || ''])) end |
#anatomical_parts_search_form ⇒ Object
60 61 62 |
# File 'app/helpers/anatomical_parts_helper.rb', line 60 def anatomical_parts_search_form render('/anatomical_parts/quick_search_form') end |
#label_for_anatomical_part(anatomical_part, depth: 0) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/helpers/anatomical_parts_helper.rb', line 27 def label_for_anatomical_part(anatomical_part, depth: 0) return nil if anatomical_part.nil? raise "AnatomicalPart origin chain exceeded maximum depth, possible cycle at id #{anatomical_part.id}" if depth > 100 origin = anatomical_part.inbound_origin_relationship&.old_object origin_label = case origin&.class&.base_class&.name when 'Otu' label_for_otu(origin) when 'CollectionObject' "#{label_for_collection_object(origin)} (#{label_for_otu(anatomical_part.origin_otu)})" when 'FieldOccurrence' "#{label_for_field_occurrence(origin)} (#{label_for_otu(anatomical_part.origin_otu)})" when 'AnatomicalPart' label_for_anatomical_part(origin, depth: depth + 1) else label_for_otu(anatomical_part.origin_otu) end "#{anatomical_part.cached}: #{origin_label}" end |
#label_for_anatomical_part_container(anatomical_part) ⇒ Object
54 55 56 57 58 |
# File 'app/helpers/anatomical_parts_helper.rb', line 54 def label_for_anatomical_part_container(anatomical_part) return nil if anatomical_part.nil? anatomical_part.cached end |
#short_label_for_anatomical_part(anatomical_part) ⇒ Object
48 49 50 51 52 |
# File 'app/helpers/anatomical_parts_helper.rb', line 48 def short_label_for_anatomical_part(anatomical_part) return nil if anatomical_part.nil? anatomical_part.cached end |