Module: AssertedDistributionsHelper

Defined in:
app/helpers/asserted_distributions_helper.rb

Instance Method Summary collapse

Instance Method Details

#asserted_distribution_geo(asserted_distribution, html) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/helpers/asserted_distributions_helper.rb', line 38

def asserted_distribution_geo(asserted_distribution, html)
  if html
    [
      object_tag(asserted_distribution.asserted_distribution_shape.metamorphosize),
      geo_flair(asserted_distribution, true)
    ].join(' ')
  else
    [
      label_for(asserted_distribution.asserted_distribution_shape.metamorphosize),
      geo_flair(asserted_distribution, false)
    ].join(' ')
  end
end


23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/helpers/asserted_distributions_helper.rb', line 23

def asserted_distribution_link(asserted_distribution)
  return nil if asserted_distribution.nil?
  [
    link_to(
      otu_tag(asserted_distribution.otu).html_safe, asserted_distribution.otu
    ),
    (asserted_distribution.is_absent ? (:span, ' not in ', class: :warning) : ' in '
    ),
    link_to(
      asserted_distribution_geo(asserted_distribution, true).html_safe,
      asserted_distribution
    )
  ].join(' ').html_safe
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?
  [
    otu_tag(asserted_distribution.otu).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.

Returns:

  • (Hash)

    GeoJSON feature



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'app/helpers/asserted_distributions_helper.rb', line 78

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_formObject



69
70
71
# File 'app/helpers/asserted_distributions_helper.rb', line 69

def asserted_distributions_search_form
  render('/asserted_distributions/quick_search_form')
end

#geo_flair(asserted_distribution, html) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/helpers/asserted_distributions_helper.rb', line 52

def geo_flair(asserted_distribution, html)
  case asserted_distribution.asserted_distribution_shape_type
  when 'GeographicArea'
    if html
      (:span, 'Geographic Area', class: [:feedback, 'feedback-primary', 'feedback-thin'])
    else
      '[Geographic Area]'
    end
  when 'Gazetteer'
    if html
      (:span, 'Gazetteer', class: [:feedback, 'feedback-secondary', 'feedback-thin'])
    else
      '[Gazetteer]'
    end
  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?
  [
    label_for_otu(asserted_distribution.otu),
    asserted_distribution_geo(asserted_distribution, false)
  ].compact.join(' in ')
end

#no_geographic_items?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'app/helpers/asserted_distributions_helper.rb', line 73

def no_geographic_items?
  ' (has no geographic items)' if @asserted_distribution.asserted_distribution_shape.geographic_items.empty?
end