Module: AssertedDistributionsHelper
- Defined in:
- app/helpers/asserted_distributions_helper.rb
Instance Method Summary collapse
- #asserted_distribution_geo(asserted_distribution, html) ⇒ Object
- #asserted_distribution_link(asserted_distribution) ⇒ Object
- #asserted_distribution_object(asserted_distribution, html) ⇒ Object
- #asserted_distribution_tag(asserted_distribution) ⇒ Object
-
#asserted_distribution_to_geo_json_feature(asserted_distribution) ⇒ Hash
GeoJSON feature.
- #asserted_distributions_search_form ⇒ Object
- #geo_flair(asserted_distribution, html) ⇒ Object
- #label_for_asserted_distribution(asserted_distribution) ⇒ Object
- #no_geographic_items? ⇒ Boolean
Instance Method Details
#asserted_distribution_geo(asserted_distribution, html) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'app/helpers/asserted_distributions_helper.rb', line 50 def asserted_distribution_geo(asserted_distribution, html) shape = asserted_distribution.asserted_distribution_shape if html [ object_tag(shape), geo_flair(asserted_distribution, true) ].join(' ') else [ label_for(shape), geo_flair(asserted_distribution, false) ].join(' ') end end |
#asserted_distribution_link(asserted_distribution) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/helpers/asserted_distributions_helper.rb', line 23 def asserted_distribution_link(asserted_distribution) return nil if asserted_distribution.nil? [ link_to( asserted_distribution_object(asserted_distribution, true).html_safe, asserted_distribution ), (asserted_distribution.is_absent ? content_tag(:span, ' not in ', class: :warning) : ' in ' ), link_to( asserted_distribution_geo(asserted_distribution, true).html_safe, asserted_distribution ) ].join(' ').html_safe end |
#asserted_distribution_object(asserted_distribution, html) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'app/helpers/asserted_distributions_helper.rb', line 39 def asserted_distribution_object(asserted_distribution, html) object = asserted_distribution.asserted_distribution_object. klass = object.class.name.underscore if html send("#{klass}_tag", object) else send("label_for_#{klass}", object) end end |
#asserted_distribution_tag(asserted_distribution) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 |
# File 'app/helpers/asserted_distributions_helper.rb', line 3 def asserted_distribution_tag(asserted_distribution) return nil if asserted_distribution.nil? [ asserted_distribution_object(asserted_distribution, true).html_safe, (asserted_distribution.is_absent ? tag.span(' not in ', class: [:feedback, 'feedback-thin', 'feedback-warning']).html_safe : ' in ').html_safe, asserted_distribution_geo(asserted_distribution, true).html_safe # ' by ', # (asserted_distribution.source.cached_author_string ? asserted_distribution.source.cached_author_string # : content_tag(:span, '[source authors must be updated]', class: :warning)) ].join(' ').html_safe end |
#asserted_distribution_to_geo_json_feature(asserted_distribution) ⇒ Hash
Returns GeoJSON feature.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'app/helpers/asserted_distributions_helper.rb', line 87 def asserted_distribution_to_geo_json_feature(asserted_distribution) return nil if asserted_distribution.nil? return nil unless asserted_distribution.has_shape? return { 'type' => 'Feature', 'geometry' => RGeo::GeoJSON.encode(asserted_distribution.geo_object), # TODO: optimize 'properties' => { 'base' => { 'type' => 'AssertedDistribution', 'id' => asserted_distribution.id, 'label' => label_for_asserted_distribution(asserted_distribution) }, 'shape' => { 'type' => asserted_distribution.asserted_distribution_shape_type, 'id' => asserted_distribution.asserted_distribution_shape_id }, 'is_absent' => asserted_distribution.is_absent } } end |
#asserted_distributions_search_form ⇒ Object
78 79 80 |
# File 'app/helpers/asserted_distributions_helper.rb', line 78 def asserted_distributions_search_form render('/asserted_distributions/quick_search_form') end |
#geo_flair(asserted_distribution, html) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/helpers/asserted_distributions_helper.rb', line 65 def geo_flair(asserted_distribution, html) type = asserted_distribution.asserted_distribution_shape_type feedback_type = type == 'GeographicArea' ? 'feedback-primary' : 'feedback-secondary' if html content_tag(:span, type.titleize, class: [:feedback, feedback_type, 'feedback-thin']) else "[#{type.titleize}]" end end |
#label_for_asserted_distribution(asserted_distribution) ⇒ Object
15 16 17 18 19 20 21 |
# File 'app/helpers/asserted_distributions_helper.rb', line 15 def label_for_asserted_distribution(asserted_distribution) return nil if asserted_distribution.nil? [ asserted_distribution_object(asserted_distribution, false), asserted_distribution_geo(asserted_distribution, false) ].compact.join(' in ') end |
#no_geographic_items? ⇒ Boolean
82 83 84 |
# File 'app/helpers/asserted_distributions_helper.rb', line 82 def no_geographic_items? ' (has no geographic items)' if @asserted_distribution.asserted_distribution_shape.geographic_items.empty? end |