Module: TaxonNamesHelper
- Defined in:
- app/helpers/taxon_names_helper.rb
Instance Method Summary collapse
- #ancestor_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
- #cached_classified_as_tag(taxon_name) ⇒ Object
- #current_author_year(taxon_name) ⇒ String
-
#defined_full_original_taxon_name_tag(taxon_name) ⇒ String?
!! This is used in taxon_name attributes now! TODO: Refactor our logic for display contexts and value contexts to better reflect presence of data vs.
- #descendant_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
- #edit_original_combination_task_link(taxon_name) ⇒ Object
- #edit_taxon_name_link(taxon_name, target: nil) ⇒ Object
-
#edit_taxon_name_path_string(taxon_name) ⇒ Object
See #edit_object_path_string in navigation_helper.rb.
-
#full_original_taxon_name_label(taxon_name) ⇒ String
The name in original combination, with author year, without HTML.
-
#full_original_taxon_name_tag(taxon_name) ⇒ String
The name in original combination, with author year, with HTML.
-
#full_taxon_name_tag(taxon_name) ⇒ String
The current name/combination with author year, with HTML.
-
#label_for_taxon_name(taxon_name) ⇒ String
!! Unified deprecated taxon_name_name_string() here.
- #next_sibling_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
-
#original_author_year(taxon_name) ⇒ String
Removes parens.
- #original_taxon_name_link(taxon_name) ⇒ Object
-
#original_taxon_name_tag(taxon_name) ⇒ String
The taxon name in original combination, without author year, with HTML.
-
#parent_taxon_name_for_select(taxon_name) ⇒ Object
@taxon_name.parent.andand.display_name(:type => :for_select_list).
- #previous_sibling_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
- #rank_tag(taxon_name) ⇒ Object
-
#taxon_name_autocomplete_selected_tag(taxon_name) ⇒ String
No HTML inside <input>.
- #taxon_name_autocomplete_tag(taxon_name, term) ⇒ Object
- #taxon_name_browse_link(taxon_name) ⇒ Object
- #taxon_name_for_select(taxon_name) ⇒ Object
- #taxon_name_gender_sentence_tag(taxon_name) ⇒ Object
- #taxon_name_inferred_combination_tag(taxon_name) ⇒ Object
- #taxon_name_latinization_tag(taxon_name) ⇒ Object
- #taxon_name_link(taxon_name) ⇒ Object
- #taxon_name_link_path(taxon_name, path) ⇒ Object protected
- #taxon_name_original_combination_tag(taxon_name, css_class = [:feedback, 'feedback-notice', 'feedback-thin']) ⇒ Object
- #taxon_name_otus_links(taxon_name) ⇒ Object
- #taxon_name_parent_navigator_item_link(taxon_name, target = :taxon_name_path) ⇒ Object
- #taxon_name_parent_tag(taxon_name, css_class = [:feedback, 'feedback-secondary', 'feedback-thin']) ⇒ Object
-
#taxon_name_rank_select_tag(taxon_name: TaxonName.new, code: nil) ⇒ Object
TODO: Scope to code.
- #taxon_name_rank_tag(taxon_name, css_class = [:feedback, 'feedback-info', 'feedback-thin']) ⇒ Object
- #taxon_name_short_status(taxon_name) ⇒ Object
- #taxon_name_short_status_label(taxon_name) ⇒ Object
- #taxon_name_status_label(taxon_name) ⇒ Object
-
#taxon_name_tag(taxon_name) ⇒ String
The taxon name without author year, with HTML.
- #taxon_name_type_short_tag(taxon_name) ⇒ Object
- #taxon_names_search_form ⇒ Object
Instance Method Details
#ancestor_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
311 312 313 314 315 316 317 318 319 320 |
# File 'app/helpers/taxon_names_helper.rb', line 311 def ancestor_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) text = 'Up' if taxon_name.ancestors.any? a = taxon_name.ancestors.first. text = object_tag(a) link_to(content_tag(:span, text, data: {icon: 'arrow-up'}, class: 'small-icon'), taxon_name_link_path(a, path), class: 'navigation-item', data: {arrow: 'ancestor'}) else content_tag(:div, content_tag(:span, text, class: 'small-icon', data: {icon: 'arrow-up'}), class: 'navigation-item disable') end end |
#cached_classified_as_tag(taxon_name) ⇒ Object
206 207 208 |
# File 'app/helpers/taxon_names_helper.rb', line 206 def cached_classified_as_tag(taxon_name) taxon_name.cached_classified_as ? taxon_name.cached_classified_as.strip.html_safe : '' end |
#current_author_year(taxon_name) ⇒ String
106 107 108 109 |
# File 'app/helpers/taxon_names_helper.rb', line 106 def (taxon_name) return nil if taxon_name.nil? || taxon_name..nil? taxon_name. end |
#defined_full_original_taxon_name_tag(taxon_name) ⇒ String?
!! This is used in taxon_name attributes now!
TODO: Refactor our logic for display contexts and value contexts to better reflect presence of data vs. utility of report.
84 85 86 87 |
# File 'app/helpers/taxon_names_helper.rb', line 84 def defined_full_original_taxon_name_tag(taxon_name) return nil if taxon_name.nil? || taxon_name.cached_original_combination_html.blank? full_original_taxon_name_tag(taxon_name) end |
#descendant_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
322 323 324 325 326 327 328 329 330 331 |
# File 'app/helpers/taxon_names_helper.rb', line 322 def descendant_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) text = 'Down' if taxon_name.descendants.any? a = taxon_name.descendants.first. text = taxon_name_tag(a) link_to(content_tag(:span, text, data: {icon: 'arrow-down'}, class: 'small-icon'), taxon_name_link_path(a, path), class: 'navigation-item', data: {arrow: 'descendant'}) else content_tag(:div, content_tag(:span, text, class: 'small-icon', data: {icon: 'arrow-down'}), class: 'navigation-item disable') end end |
#edit_original_combination_task_link(taxon_name) ⇒ Object
260 261 262 |
# File 'app/helpers/taxon_names_helper.rb', line 260 def edit_original_combination_task_link(taxon_name) link_to('Edit original combination', edit_protonym_original_combination_task_path(taxon_name)) if GENUS_AND_SPECIES_RANK_NAMES.include?(taxon_name.rank_string) end |
#edit_taxon_name_link(taxon_name, target: nil) ⇒ Object
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'app/helpers/taxon_names_helper.rb', line 275 def edit_taxon_name_link(taxon_name, target: nil) i = {'Combination': :combination, 'Protonym': :taxon_name}[taxon_name.type.to_sym] t = taxon_name. case target when :edit_task path = case i when :taxon_name new_taxon_name_task_path(taxon_name_id: t.id) when :combination new_combination_task_path(taxon_name_id: t.id, literal: URI.encode_www_form_component(t.cached)) # only spaces should be an issue end link_to( content_tag( :span, 'Edit (task)', 'data-icon' => 'edit', class: 'small-icon' ), path, class: 'navigation-item', 'data-task' => 'new_taxon_name') else link_to(content_tag(:span, 'Edit', 'data-icon' => 'edit', 'class' => 'small-icon'), send("edit_#{i}_path}", taxon_name.), 'class' => 'navigation-item') end end |
#edit_taxon_name_path_string(taxon_name) ⇒ Object
See #edit_object_path_string in navigation_helper.rb
265 266 267 268 269 270 271 272 273 |
# File 'app/helpers/taxon_names_helper.rb', line 265 def edit_taxon_name_path_string(taxon_name) if taxon_name.type == 'Protonym' 'edit_taxon_name_path' elsif taxon_name.type == 'Combination' 'edit_combination_path' else nil end end |
#full_original_taxon_name_label(taxon_name) ⇒ String
Returns the name in original combination, with author year, without HTML.
91 92 93 94 95 96 |
# File 'app/helpers/taxon_names_helper.rb', line 91 def full_original_taxon_name_label(taxon_name) return nil if taxon_name.nil? || taxon_name.cached_original_combination.nil? [ taxon_name.cached_original_combination, taxon_name. ].compact.join(' ') end |
#full_original_taxon_name_tag(taxon_name) ⇒ String
Returns the name in original combination, with author year, with HTML.
72 73 74 75 76 77 |
# File 'app/helpers/taxon_names_helper.rb', line 72 def full_original_taxon_name_tag(taxon_name) return nil if taxon_name.nil? [ original_taxon_name_tag(taxon_name), (taxon_name) ].compact.join(' ').html_safe end |
#full_taxon_name_tag(taxon_name) ⇒ String
Returns the current name/combination with author year, with HTML.
65 66 67 68 |
# File 'app/helpers/taxon_names_helper.rb', line 65 def full_taxon_name_tag(taxon_name) return nil if taxon_name.nil? [taxon_name_tag(taxon_name), taxon_name.].compact.join(' ').html_safe end |
#label_for_taxon_name(taxon_name) ⇒ String
!! Unified deprecated taxon_name_name_string() here
14 15 16 17 |
# File 'app/helpers/taxon_names_helper.rb', line 14 def label_for_taxon_name(taxon_name) return nil if taxon_name.nil? [taxon_name.cached, taxon_name.].compact.join(' ') end |
#next_sibling_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
333 334 335 336 337 338 339 340 341 |
# File 'app/helpers/taxon_names_helper.rb', line 333 def next_sibling_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) text = 'Next' link_object = taxon_name.next_sibling if link_object.nil? content_tag(:div, content_tag(:span, text), class: 'navigation-item disable') else link_to(text, taxon_name_link_path(link_object, path), title: taxon_name_tag(link_object), class: 'navigation-item', data: { button: 'next' }) end end |
#original_author_year(taxon_name) ⇒ String
Returns removes parens.
100 101 102 103 |
# File 'app/helpers/taxon_names_helper.rb', line 100 def (taxon_name) return nil if taxon_name.nil? || taxon_name..nil? taxon_name. || '' end |
#original_taxon_name_link(taxon_name) ⇒ Object
237 238 239 240 |
# File 'app/helpers/taxon_names_helper.rb', line 237 def original_taxon_name_link(taxon_name) return nil if taxon_name.nil? [ link_to(original_taxon_name_tag(taxon_name).html_safe, browse_nomenclature_task_path(taxon_name_id: taxon_name.id)).html_safe, taxon_name.].compact.join(' ').html_safe end |
#original_taxon_name_tag(taxon_name) ⇒ String
Returns the taxon name in original combination, without author year, with HTML.
54 55 56 57 58 59 60 61 |
# File 'app/helpers/taxon_names_helper.rb', line 54 def original_taxon_name_tag(taxon_name) return nil if taxon_name.nil? if taxon_name.cached_original_combination_html.nil? taxon_name_tag(taxon_name) else taxon_name.cached_original_combination_html.html_safe end end |
#parent_taxon_name_for_select(taxon_name) ⇒ Object
@taxon_name.parent.andand.display_name(:type => :for_select_list)
247 248 249 |
# File 'app/helpers/taxon_names_helper.rb', line 247 def parent_taxon_name_for_select(taxon_name) taxon_name.parent ? taxon_name_for_select(taxon_name.parent) : nil end |
#previous_sibling_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) ⇒ Object
343 344 345 346 347 348 349 350 351 352 |
# File 'app/helpers/taxon_names_helper.rb', line 343 def previous_sibling_browse_taxon_name_link(taxon_name, path = :browse_nomenclature_task_path) text = 'Previous' link_object = taxon_name.previous_sibling if link_object.nil? content_tag(:div, content_tag(:span, text), class: 'navigation-item disable') else link_to(text, taxon_name_link_path(link_object, path), class: 'navigation-item', data: { button: 'back' }) end end |
#rank_tag(taxon_name) ⇒ Object
298 299 300 301 302 303 304 305 306 307 308 309 |
# File 'app/helpers/taxon_names_helper.rb', line 298 def rank_tag(taxon_name) case taxon_name.type when 'Protonym' if taxon_name.rank_class taxon_name.rank.downcase else content_tag(:em, 'ERROR') end when 'Combination' content_tag(:em, 'Combination') end end |
#taxon_name_autocomplete_selected_tag(taxon_name) ⇒ String
Returns no HTML inside <input>.
33 34 35 |
# File 'app/helpers/taxon_names_helper.rb', line 33 def taxon_name_autocomplete_selected_tag(taxon_name) label_for_taxon_name(taxon_name) end |
#taxon_name_autocomplete_tag(taxon_name, term) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/helpers/taxon_names_helper.rb', line 19 def taxon_name_autocomplete_tag(taxon_name, term) return nil if taxon_name.nil? klass = taxon_name.rank_class ? taxon_name.rank_class.nomenclatural_code : nil a = [ content_tag(:span, mark_tag(taxon_name., term), class: :klass), taxon_name_rank_tag(taxon_name), taxon_name_parent_tag(taxon_name), taxon_name_original_combination_tag(taxon_name), taxon_name_type_short_tag(taxon_name) ].compact.join(' ').html_safe end |
#taxon_name_browse_link(taxon_name) ⇒ Object
220 221 222 223 |
# File 'app/helpers/taxon_names_helper.rb', line 220 def taxon_name_browse_link(taxon_name) return nil if taxon_name.nil? [ link_to(taxon_name_tag(taxon_name), browse_nomenclature_task_path(taxon_name_id: taxon_name.id)).html_safe, taxon_name.].compact.join(' ').html_safe end |
#taxon_name_for_select(taxon_name) ⇒ Object
242 243 244 |
# File 'app/helpers/taxon_names_helper.rb', line 242 def taxon_name_for_select(taxon_name) taxon_name.name if taxon_name end |
#taxon_name_gender_sentence_tag(taxon_name) ⇒ Object
201 202 203 204 |
# File 'app/helpers/taxon_names_helper.rb', line 201 def taxon_name_gender_sentence_tag(taxon_name) return nil if taxon_name.nil? "The name is #{taxon_name.gender_name}." if taxon_name.gender_name end |
#taxon_name_inferred_combination_tag(taxon_name) ⇒ Object
192 193 194 195 196 197 198 199 |
# File 'app/helpers/taxon_names_helper.rb', line 192 def taxon_name_inferred_combination_tag(taxon_name) return nil if taxon_name.nil? || taxon_name.is_combination? || taxon_name.is_valid? if taxon_name.is_protonym? return nil if taxon_name.cached_primary_homonym == taxon_name.cached_secondary_homonym end tag.span(tag.em('inferred combination'), class: :subtle) end |
#taxon_name_latinization_tag(taxon_name) ⇒ Object
210 211 212 213 |
# File 'app/helpers/taxon_names_helper.rb', line 210 def taxon_name_latinization_tag(taxon_name) list = taxon_name.taxon_name_classifications.with_type_array(LATINIZED_TAXON_NAME_CLASSIFICATION_NAMES).map(&:classification_label) content_tag(:span, "The word \"#{taxon_name.name}\" has the following Latin-based classifications: #{list.to_sentence}.", class: 'history__latinized_classifications') if list.any? end |
#taxon_name_link(taxon_name) ⇒ Object
215 216 217 218 |
# File 'app/helpers/taxon_names_helper.rb', line 215 def taxon_name_link(taxon_name) return nil if taxon_name.nil? link_to(taxon_name_tag(taxon_name), taxon_name.).html_safe end |
#taxon_name_link_path(taxon_name, path) ⇒ Object (protected)
369 370 371 372 373 374 375 |
# File 'app/helpers/taxon_names_helper.rb', line 369 def taxon_name_link_path(taxon_name, path) if path == :taxon_name_path send(path, taxon_name) else send(path, taxon_name_id: taxon_name.id) end end |
#taxon_name_original_combination_tag(taxon_name, css_class = [:feedback, 'feedback-notice', 'feedback-thin']) ⇒ Object
47 48 49 50 |
# File 'app/helpers/taxon_names_helper.rb', line 47 def taxon_name_original_combination_tag(taxon_name, css_class = [:feedback, 'feedback-notice', 'feedback-thin'] ) return nil if taxon_name.nil? || taxon_name.cached_original_combination.blank? content_tag(:span, taxon_name.cached_original_combination, class: css_class) end |
#taxon_name_otus_links(taxon_name) ⇒ Object
354 355 356 357 358 359 360 361 362 363 364 365 |
# File 'app/helpers/taxon_names_helper.rb', line 354 def taxon_name_otus_links(taxon_name) if taxon_name.otus.load.any? ('The following Otus are linked to this name: ' + content_tag(:ul, class: 'no_bullets') do taxon_name.otus.each do |o| concat(content_tag(:li, otu_link(o) )) end end.html_safe).html_safe else content_tag(:em, 'There are no Otus linked to this name.') end end |
#taxon_name_parent_navigator_item_link(taxon_name, target = :taxon_name_path) ⇒ Object
225 226 227 228 229 230 231 232 233 234 235 |
# File 'app/helpers/taxon_names_helper.rb', line 225 def taxon_name_parent_navigator_item_link(taxon_name, target = :taxon_name_path) return nil if taxon_name.nil? || target.nil? if target case target.to_sym when :taxon_name_path link_to(taxon_name_tag(taxon_name), taxon_name.) else link_to(taxon_name_tag(taxon_name), send(target, {taxon_name_id: taxon_name.id})) end end end |
#taxon_name_parent_tag(taxon_name, css_class = [:feedback, 'feedback-secondary', 'feedback-thin']) ⇒ Object
42 43 44 45 |
# File 'app/helpers/taxon_names_helper.rb', line 42 def taxon_name_parent_tag(taxon_name, css_class = [:feedback, 'feedback-secondary', 'feedback-thin'] ) return nil if taxon_name.nil? || taxon_name.parent_id.nil? content_tag(:span, taxon_name_tag(taxon_name.parent).html_safe, class: css_class) end |
#taxon_name_rank_select_tag(taxon_name: TaxonName.new, code: nil) ⇒ Object
TODO: Scope to code
252 253 254 |
# File 'app/helpers/taxon_names_helper.rb', line 252 def taxon_name_rank_select_tag(taxon_name: TaxonName.new, code: nil) select(:taxon_name, :rank_class, (RANKS_SELECT_OPTIONS, selected: taxon_name.rank_string) ) end |
#taxon_name_rank_tag(taxon_name, css_class = [:feedback, 'feedback-info', 'feedback-thin']) ⇒ Object
37 38 39 40 |
# File 'app/helpers/taxon_names_helper.rb', line 37 def taxon_name_rank_tag(taxon_name, css_class = [:feedback, 'feedback-info', 'feedback-thin'] ) return nil if taxon_name.nil? content_tag(:span, taxon_name.rank || 'Combination', class: css_class) end |
#taxon_name_short_status(taxon_name) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'app/helpers/taxon_names_helper.rb', line 120 def taxon_name_short_status(taxon_name) if taxon_name.is_combination? n = taxon_name.finest_protonym s = ["This name is subsequent combination of"] if n.is_valid? s += [ link_to(original_taxon_name_tag(n), browse_nomenclature_task_path(taxon_name_id: n.id)), (n), ] else v = n.valid_taxon_name s += [ original_taxon_name_tag(n), (n), "whose valid/accepted name is", link_to(taxon_name_tag(v), browse_nomenclature_task_path(taxon_name_id: v.id) ), v. ] end (s.join(' ') + '.').html_safe else if taxon_name.is_valid? # taxon_name.unavailable_or_invalid? content_tag(:span, 'This name is valid/accepted.', class: :brief_status, data: {icon: :ok, status: :valid }) else if taxon_name.is_ambiguously_invalid? tag.span('This name is not valid/accepted.'.html_safe, class: :brief_status, data: {icon: :attention, status: :invalid}) else tag.span("This name is not valid/accepted.<br>The valid name is #{taxon_name_browse_link(taxon_name.valid_taxon_name)}.".html_safe, class: :brief_status, data: {icon: :attention, status: :invalid}) end end end end |
#taxon_name_short_status_label(taxon_name) ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'app/helpers/taxon_names_helper.rb', line 158 def taxon_name_short_status_label(taxon_name) if taxon_name.is_combination? n = taxon_name.finest_protonym s = ['This name is subsequent combination of'] if n.is_valid? s += [ original_taxon_name_tag(n), (n), ] else v = n.valid_taxon_name s += [ original_taxon_name_tag(n), (n), 'whose valid/accepted name is', taxon_name_tag(v), v. ] end (s.join(' ') + '.') else if taxon_name.is_valid? # taxon_name.unavailable_or_invalid? 'This name is valid/accepted.' else if taxon_name.is_ambiguously_invalid? 'This name is not valid/accepted.' else "This name is not valid/accepted. The valid name is #{taxon_name.valid_taxon_name.cached}." end end end end |
#taxon_name_status_label(taxon_name) ⇒ Object
154 155 156 |
# File 'app/helpers/taxon_names_helper.rb', line 154 def taxon_name_status_label(taxon_name) taxon_name.combined_statuses.collect{|s| s}.join('; ') end |
#taxon_name_tag(taxon_name) ⇒ String
Returns the taxon name without author year, with HTML.
5 6 7 8 9 |
# File 'app/helpers/taxon_names_helper.rb', line 5 def taxon_name_tag(taxon_name) return nil if taxon_name.nil? return taxon_name.name if taxon_name.new_record? taxon_name.cached_html.try(:html_safe) || taxon_name.name end |
#taxon_name_type_short_tag(taxon_name) ⇒ Object
111 112 113 114 115 116 117 118 |
# File 'app/helpers/taxon_names_helper.rb', line 111 def taxon_name_type_short_tag(taxon_name) return nil if taxon_name.nil? if taxon_name.is_valid? '✓'.html_safe # checkmark else taxon_name.type == 'Combination' ? '[c]' : '❌'.html_safe # c or X end end |
#taxon_names_search_form ⇒ Object
256 257 258 |
# File 'app/helpers/taxon_names_helper.rb', line 256 def taxon_names_search_form render '/taxon_names/quick_search_form' end |