Module: RepositoriesHelper

Defined in:
app/helpers/repositories_helper.rb

Instance Method Summary collapse

Instance Method Details

#label_for_repository(repository) ⇒ Object



10
11
12
13
# File 'app/helpers/repositories_helper.rb', line 10

def label_for_repository(repository)
  return nil if repository.nil?
  repository_tag(repository) # identical for now
end

#repositories_search_formObject



52
53
54
# File 'app/helpers/repositories_helper.rb', line 52

def repositories_search_form
  render('/repositories/quick_search_form')
end

#repository_autocomplete_tag(repository) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'app/helpers/repositories_helper.rb', line 20

def repository_autocomplete_tag(repository)
  [
    tag.span(repository.acronym, class: [:feedback, 'feedback-thin', 'feedback-secondary']),
    repository.name,
    repository.url.present? ? tag.span(repository.url, class: [:feedback, 'feedback-thin']) : nil,
    (repository.is_index_herbariorum ? tag.span('Herbarium', class: [:feedback, 'feedback-info', 'feedback-thin']) : nil),
    repository_usage_tag(repository)
  ].compact.join(' ').html_safe
end


15
16
17
18
# File 'app/helpers/repositories_helper.rb', line 15

def repository_link(repository)
  return nil if repository.nil?
  link_to(repository_tag(repository).html_safe, repository)
end

#repository_tag(repository) ⇒ Object



3
4
5
6
7
8
# File 'app/helpers/repositories_helper.rb', line 3

def repository_tag(repository)
  return nil if repository.nil?
  [repository.name,
   (repository.acronym ? "(#{repository.acronym})" : nil)
  ].join(' ').html_safe
end

#repository_usage_tag(repository) ⇒ Object

use_count/in_project_use_count come from autocomplete pre-calculation, when present



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/helpers/repositories_helper.rb', line 31

def repository_usage_tag(repository)
  collection_objects_scope = repository.collection_objects.or(repository.current_collection_objects)

  total = (repository.respond_to?(:use_count) ? repository.use_count : collection_objects_scope.count)

  total_in_project = (
    repository.respond_to?(:in_project_use_count) ?
      repository.in_project_use_count :
      collection_objects_scope.where(collection_objects: {project_id: sessions_current_project_id}).count
  )

  if total > 0
    uses_tag = tag.span(("Used: " + total.to_s).html_safe, class: [:feedback, 'feedback-thin', 'feedback-primary'])
    in_project_tag = tag.span(("Project: " + total_in_project.to_s).html_safe, class: [:feedback, 'feedback-thin', 'feedback-success']) if total_in_project > 0
  else
    uses_tag = tag.span('Unused', class: [:feedback, 'feedback-thin', 'feedback-warning'])
  end

  [uses_tag, in_project_tag].compact.join(' ')
end