Module: PeopleHelper
- Defined in:
- app/helpers/people_helper.rb
Instance Method Summary collapse
- #author_annotation_tag(author) ⇒ Object
- #author_list_tag(object) ⇒ Object
- #editor_list_tag(object) ⇒ Object
- #label_for_person(person) ⇒ Object
-
#people_names(people) ⇒ String?
A formatted list of people’s last names TODO: deprecate for native call.
- #people_search_form ⇒ Object
- #person_active_tag(person) ⇒ Object
- #person_autocomplete_tag(person) ⇒ Object
- #person_link(person) ⇒ Object
- #person_lived_tag(person) ⇒ Object
- #person_project_membership_tag(person) ⇒ Object
- #person_tag(person) ⇒ Object
- #person_timeframe_tag(person) ⇒ Object
-
#person_used_tag(person) ⇒ Object
TODO: optimize, too expensive.
Instance Method Details
#author_annotation_tag(author) ⇒ Object
98 99 100 101 |
# File 'app/helpers/people_helper.rb', line 98 def () return nil if .nil? content_tag(:span, .name, class: [:annotation__author]) end |
#author_list_tag(object) ⇒ Object
103 104 105 106 107 108 109 |
# File 'app/helpers/people_helper.rb', line 103 def (object) return nil unless object..any? content_tag(:h3, 'Authors') + content_tag(:ul, class: 'annotations_author_list') do object..collect{|a| content_tag(:li, (a)) }.join.html_safe end end |
#editor_list_tag(object) ⇒ Object
111 112 113 114 115 116 117 |
# File 'app/helpers/people_helper.rb', line 111 def editor_list_tag(object) return nil unless object.editors.any? content_tag(:h3, 'Editors') + content_tag(:ul, class: 'annotations_editor_list') do object.editors.collect{|a| content_tag(:li, (a)) }.join.html_safe end end |
#label_for_person(person) ⇒ Object
12 13 14 15 |
# File 'app/helpers/people_helper.rb', line 12 def label_for_person(person) return nil if person.nil? person.cached end |
#people_names(people) ⇒ String?
Returns A formatted list of people’s last names TODO: deprecate for native call.
94 95 96 |
# File 'app/helpers/people_helper.rb', line 94 def people_names(people) Utilities::Strings.( people.collect{ |a| a.full_last_name } ) end |
#people_search_form ⇒ Object
87 88 89 |
# File 'app/helpers/people_helper.rb', line 87 def people_search_form render('/people/quick_search_form') end |
#person_active_tag(person) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'app/helpers/people_helper.rb', line 51 def person_active_tag(person) return ('active: ' + content_tag(:i, 'unknown')).html_safe if person.year_active_start.nil? && person.year_active_end.nil? ae = person.year_active_end ae = nil if !ae.nil? && ae == person.year_active_start 'active ~ ' + [ person.year_active_start || '?', ae || '?'].join('-') end |
#person_autocomplete_tag(person) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'app/helpers/people_helper.rb', line 22 def person_autocomplete_tag(person) return nil if person.nil? [ person_tag(person), person_timeframe_tag(person), person_used_tag(person), person_project_membership_tag(person) ].compact.join(' ') end |
#person_link(person) ⇒ Object
17 18 19 20 |
# File 'app/helpers/people_helper.rb', line 17 def person_link(person) return nil if person.nil? link_to(person_tag(person), person.) end |
#person_lived_tag(person) ⇒ Object
37 38 39 |
# File 'app/helpers/people_helper.rb', line 37 def person_lived_tag(person) 'lived: ' + [person.year_born || '?', person.year_died || '?'].join('-') end |
#person_project_membership_tag(person) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'app/helpers/people_helper.rb', line 41 def person_project_membership_tag(person) if person && person.respond_to?(:in_project) && person.in_project == sessions_current_project_id content_tag(:span, "In Project".html_safe, class: [:feedback, 'feedback-thin', 'feedback-success']) elsif person && person.used_in_project?(sessions_current_project_id) content_tag(:span, "In Project".html_safe, class: [:feedback, 'feedback-thin', 'feedback-success']) else nil end end |
#person_tag(person) ⇒ Object
3 4 5 6 7 8 9 10 |
# File 'app/helpers/people_helper.rb', line 3 def person_tag(person) return nil if person.nil? if person.new_record? person.bibtex_name else person.cached ? person.cached : 'CACHED VALUE NOT BUILT, CONTACT AN ADMIN.' end end |
#person_timeframe_tag(person) ⇒ Object
31 32 33 34 35 |
# File 'app/helpers/people_helper.rb', line 31 def person_timeframe_tag(person) content_tag(:span, class: [ :feedback, 'feedback-secondary', 'feedback-thin' ]) do (person_lived_tag(person) + ' ' + person_active_tag(person)).html_safe end.html_safe end |
#person_used_tag(person) ⇒ Object
TODO: optimize, too expensive
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/helpers/people_helper.rb', line 61 def person_used_tag(person) # use_count is SQL based attribute if person.respond_to?(:use_count) a = '' if person.use_count == 0 a += content_tag(:span, 'unused', class: [:feedback, 'feedback-thin', 'feedback-danger'] ) elsif person.use_count > 0 a = a + content_tag(:span, "#{person.use_count} #{"use".pluralize(person.use_count)}", class: [:feedback, 'feedback-thin', 'feedback-primary'], data: {count: person.use_count}) + ' ' a = a + content_tag(:span, "#{person.roles.select(:type).distinct.pluck(:type).map(&:safe_constantize).collect{|r| r.human_name}.join(', ')}", class: [:feedback, 'feedback-thin', 'feedback-secondary'] ) else '' end else t = person.roles #.load a = '' if t.count == 0 a += content_tag(:span, 'unused', class: [:feedback, 'feedback-thin', 'feedback-danger'] ) elsif t.count > 0 a = a + content_tag(:span, "#{person.roles.size} #{"use".pluralize(t)}", class: [:feedback, 'feedback-thin', 'feedback-primary'], data: {count: t.count}) + ' ' a = a + content_tag(:span, "#{person.roles.select(:type).distinct.pluck(:type).map(&:safe_constantize).collect{|r| r.human_name}.join(', ')}", class: [:feedback, 'feedback-thin', 'feedback-secondary'] ) else '' end end end |