-
Notifications
You must be signed in to change notification settings - Fork 987
/
taxonomy_helper.rb
127 lines (101 loc) · 3.88 KB
/
taxonomy_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
module TaxonomyHelper
include AncestryHelper
def show_location_tab?
SETTINGS[:locations_enabled] && User.current.allowed_to?(:view_locations)
end
def show_organization_tab?
SETTINGS[:organizations_enabled] && User.current.allowed_to?(:view_organizations)
end
def show_taxonomy_tabs?
SETTINGS[:locations_enabled] or SETTINGS[:organizations_enabled]
end
def organization_dropdown count
text = Organization.current.nil? ? _("Any Organization") : Organization.current.to_label
if count == 1 && !User.current.admin?
link_to text, "#"
else
link_to(text, "#", :class => "dropdown-toggle", :'data-toggle'=>"dropdown")
end
end
def location_dropdown count
text = Location.current.nil? ? _("Any Location") : Location.current.to_label
if count == 1 && !User.current.admin?
link_to text, "#"
else
link_to(text, "#", :class => "dropdown-toggle", :'data-toggle'=>"dropdown")
end
end
def taxonomy_single
_(controller_name.singularize)
end
def taxonomy_title
_(controller_name.singularize.titleize)
end
def taxonomy_upcase
_(controller_name.humanize.titleize)
end
def wizard_header(current, *args)
content_tag(:ul,:class=>"wizard") do
step=1
content = nil
args.each do |arg|
step_content = content_tag(:li,(content_tag(:span,step,:class=>"badge" +" #{'badge-inverse' if step==current}")+arg).html_safe, :class=>"#{'active' if step==current}")
step == 1 ? content = step_content : content += step_content
step += 1
end
content
end
end
def option_button text, href, options
field(nil, "", options) do
link_to(text, href, options)
end
end
def is_location?
controller_name == "locations"
end
def edit_taxonomy_path(taxonomy)
is_location? ? edit_location_path(taxonomy) : edit_organization_path(taxonomy)
end
def hash_for_edit_taxonomy_path(taxonomy)
is_location? ? hash_for_edit_location_path(:id => taxonomy) : hash_for_edit_organization_path(:id => taxonomy)
end
def hash_for_clone_taxonomy_path(taxonomy)
is_location? ? hash_for_clone_location_path(:id => taxonomy) : hash_for_clone_organization_path(:id => taxonomy)
end
def hash_for_nest_taxonomy_path(taxonomy)
is_location? ? hash_for_nest_location_path(taxonomy) : hash_for_nest_organization_path(taxonomy)
end
def hash_for_taxonomy_path(taxonomy)
is_location? ? hash_for_location_path(:id => taxonomy) : hash_for_organization_path(:id => taxonomy)
end
def hash_for_new_taxonomy_path
is_location? ? hash_for_new_location_path : hash_for_new_organization_path
end
def mismatches_taxonomies_path
is_location? ? mismatches_locations_path : mismatches_organizations_path
end
def import_mismatches_taxonomy_path taxonomy
is_location? ? import_mismatches_location_path(taxonomy) : import_mismatches_organization_path(taxonomy)
end
def assign_all_hosts_taxonomy_path(taxonomy)
is_location? ? assign_all_hosts_location_path(taxonomy) : assign_all_hosts_organization_path(taxonomy)
end
def assign_hosts_taxonomy_path(taxonomy)
is_location? ? assign_hosts_location_path(taxonomy) : assign_hosts_organization_path(taxonomy)
end
def taxonomy_ids_sym
is_location? ? :location_ids : :organization_ids
end
def organization_selects(f, selected_ids, options = {}, options_html = {})
taxonomy_selects(f, selected_ids, Organization, 'Organizations', options, options_html)
end
def location_selects(f, selected_ids, options = {}, options_html = {})
taxonomy_selects(f, selected_ids, Location, 'Locations', options, options_html)
end
def taxonomy_selects(f, selected_ids, taxonomy, label, options = {}, options_html = {})
options[:disabled] = Array.wrap(options[:disabled])
options[:label] ||= _(label)
multiple_selects f, label.downcase, taxonomy, selected_ids, options, options_html
end
end