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
|
# File 'lib/alphabetical_paginate/view_helpers.rb', line 4
def alphabetical_paginate(options = {})
output = ""
links = ""
output += javascript_include_tag 'alphabetical_paginate' if options[:js] == true
options[:scope] ||= main_app
if options[:paginate_all]
range = options[:language].letters_range
if options[:others]
range += ["*"]
end
if options[:enumerate] && options[:numbers]
range = (0..9).to_a.map{|x| x.to_s} + range
elsif options[:numbers]
range = ["0-9"] + range
end
range.unshift "All" if (options[:include_all] && !range.include?("All"))
range.each do |l|
link_letter = l
if options[:slugged_link] && (l =~ options[:language].letters_regexp || l == "All")
link_letter = options[:language].slugged_letters[l]
end
url = options[:scope].url_for(:letter => link_letter)
value = options[:language].output_letter(l)
if l == options[:currentField]
links += content_tag(:li, link_to(value, "#", "data-letter" => l), :class => "active")
elsif options[:db_mode] or options[:availableLetters].include? l
links += content_tag(:li, link_to(value, url, "data-letter" => l))
else
links += content_tag(:li, link_to(value, url, "data-letter" => l), :class => "disabled")
end
end
else
options[:availableLetters].sort!
options[:availableLetters] = options[:availableLetters][1..-1] + ["*"] if options[:availableLetters][0] == "*"
if options[:include_all]
options[:availableLetters].delete("All") if options[:availableLetters].include?("All")
options[:availableLetters].unshift("All")
end
options[:availableLetters] -= (1..9).to_a.map{|x| x.to_s} if !options[:numbers]
options[:availableLetters] -= ["*"] if !options[:others]
options[:availableLetters].each do |l|
link_letter = l
if options[:slugged_link] && (l =~ options[:language].letters_regexp || l == "All")
link_letter = options[:language].slugged_letters[l]
end
url = options[:scope].url_for(:letter => link_letter)
value = options[:language].output_letter(l)
links += content_tag(:li, link_to(value, url, "data-letter" => l), :class => ("active" if l == options[:currentField] ))
end
end
element = options[:bootstrap3] ? 'ul' : 'div'
if options[:pagination_class] != "none"
= "<#{element} class='pagination %s alpha' style='height:35px;'>" % options[:pagination_class]
else
= "<#{element} class='pagination alpha' style='height:35px;'>"
end
+=
(options[:bootstrap3] ? "" : "<ul>") +
links +
(options[:bootstrap3] ? "" : "</ul>") +
(options[:bootstrap3] ? "" : "</div>")
output +=
output.html_safe
end
|