Skip to content

Commit adc3a8c

Browse files
committed
Merge pull request #5 from yoolk/disabled-link-for-hellip-and-active
disabled link for hellip symbol and active page
2 parents 7470940 + 851830d commit adc3a8c

File tree

3 files changed

+62
-56
lines changed

3 files changed

+62
-56
lines changed

lib/liquid-rails/filters/misc_filter.rb

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -22,59 +22,6 @@ def jsonify(object)
2222
def toggle_class_name(class_name, condition)
2323
condition ? class_name : nil
2424
end
25-
26-
def default_pagination(paginate)
27-
html = []
28-
html << %(<span class="prev"><a href="#{paginate['previous']['url']}" rel="prev">#{paginate['previous']['title']}</a></span>) if paginate['previous']
29-
30-
for part in paginate['parts']
31-
if part['is_link']
32-
html << %(<span class="page">#{link_to(part['title'], part['url'])}</span>)
33-
elsif part['title'].to_i == paginate['current_page'].to_i
34-
html << %(<span class="page current">#{part['title']}</span>)
35-
else
36-
html << %(<span class="deco">#{part['title']}</span>)
37-
end
38-
end
39-
40-
html << %(<span class="next"><a href="#{paginate['next']['url']}" rel="next">#{paginate['next']['title']}</a></span>) if paginate['next']
41-
html.join(' ')
42-
end
43-
44-
# Bootstrap pagination filter
45-
#
46-
# @param [ paginate ]
47-
# @param [ size ]: .pagination-lg, .pagination-sm
48-
49-
def bootstrap_pagination(paginate, size='')
50-
html = []
51-
html << %{<nav><ul class="pagination #{size}">}
52-
53-
if paginate['previous']
54-
html << %(<li><a href="#{paginate['previous']['url']}" aria-label="Previous"><span aria-hidden="true">#{paginate['previous']['title']}</span></a></li>)
55-
else
56-
html << %(<li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li>)
57-
end
58-
59-
for part in paginate['parts']
60-
if part['is_link']
61-
html << %(<li><a href="#{part['url']}">#{part['title']}</a></li>)
62-
elsif part['title'].to_i == paginate['current_page'].to_i
63-
html << %(<li class="active"><a href="#">#{part['title']}</a></li>)
64-
else
65-
html << %(<li><a href="#">#{part['title']}</a></li>)
66-
end
67-
end
68-
69-
if paginate['next']
70-
html << %(<li><a href="#{paginate['next']['url']}" aria-label="Next"><span aria-hidden="true">#{paginate['next']['title']}</span></a></li>)
71-
else
72-
html << %(<li class="disabled"><a href="#" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li>)
73-
end
74-
75-
html << '</nav></ul>'
76-
html.join(' ')
77-
end
7825
end
7926
end
8027
end
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
module Liquid
2+
module Rails
3+
module PaginateFilter
4+
def default_pagination(paginate)
5+
html = []
6+
html << %(<span class="prev"><a href="#{paginate['previous']['url']}" rel="prev">#{paginate['previous']['title']}</a></span>) if paginate['previous']
7+
8+
for part in paginate['parts']
9+
if part['is_link']
10+
html << %(<span class="page">#{link_to(part['title'], part['url'])}</span>)
11+
elsif part['title'].to_i == paginate['current_page'].to_i
12+
html << %(<span class="page current">#{part['title']}</span>)
13+
else
14+
html << %(<span class="deco">#{part['title']}</span>)
15+
end
16+
end
17+
18+
html << %(<span class="next"><a href="#{paginate['next']['url']}" rel="next">#{paginate['next']['title']}</a></span>) if paginate['next']
19+
html.join(' ')
20+
end
21+
22+
# Bootstrap pagination filter
23+
#
24+
# @param [ paginate ]
25+
# @param [ size ]: .pagination-lg, .pagination-sm
26+
def bootstrap_pagination(paginate, size='')
27+
html = []
28+
html << %{<nav><ul class="pagination #{size}">}
29+
30+
if paginate['previous']
31+
html << %(<li><a href="#{paginate['previous']['url']}" aria-label="Previous"><span aria-hidden="true">#{paginate['previous']['title']}</span></a></li>)
32+
else
33+
html << %(<li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li>)
34+
end
35+
36+
for part in paginate['parts']
37+
if part['is_link']
38+
html << %(<li><a href="#{part['url']}">#{part['title']}</a></li>)
39+
elsif part['title'].to_i == paginate['current_page'].to_i
40+
html << %(<li class="active"><span>#{part['title']}</span></li>)
41+
else
42+
html << %(<li class="disabled"><span>#{part['title']}</span></li>)
43+
end
44+
end
45+
46+
if paginate['next']
47+
html << %(<li><a href="#{paginate['next']['url']}" aria-label="Next"><span aria-hidden="true">#{paginate['next']['title']}</span></a></li>)
48+
else
49+
html << %(<li class="disabled"><a href="#" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li>)
50+
end
51+
52+
html << '</nav></ul>'
53+
html.join(' ')
54+
end
55+
end
56+
end
57+
end
58+
59+
Liquid::Template.register_filter(Liquid::Rails::PaginateFilter)

spec/lib/liquid-rails/tags/paginate_tag_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,17 @@ module Rails
142142

143143
it 'is in the first_page' do
144144
controller.params[:page] = 1
145-
expect_template_result("{% paginate post.comments by 2 %}{{ paginate | bootstrap_pagination }}{% endpaginate %}", %|<nav><ul class="pagination "> <li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li> <li class="active"><a href="#">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=2" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li> </nav></ul>|, { 'post' => @post_drop })
145+
expect_template_result("{% paginate post.comments by 2 %}{{ paginate | bootstrap_pagination }}{% endpaginate %}", %|<nav><ul class="pagination "> <li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li> <li class="active"><span>1</span></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=2" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li> </nav></ul>|, { 'post' => @post_drop })
146146
end
147147

148148
it 'is in the second_page' do
149149
controller.params[:page] = 2
150-
expect_template_result("{% paginate post.comments by 2 %}{{ paginate | bootstrap_pagination }}{% endpaginate %}", %|<nav><ul class="pagination "> <li><a href="/?page=1" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li> <li><a href="/?page=1">1</a></li> <li class="active"><a href="#">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=3" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li> </nav></ul>|, { 'post' => @post_drop })
150+
expect_template_result("{% paginate post.comments by 2 %}{{ paginate | bootstrap_pagination }}{% endpaginate %}", %|<nav><ul class="pagination "> <li><a href="/?page=1" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li> <li><a href="/?page=1">1</a></li> <li class="active"><span>2</span></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=3" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li> </nav></ul>|, { 'post' => @post_drop })
151151
end
152152

153153
it 'is in the last_page' do
154154
controller.params[:page] = 3
155-
expect_template_result("{% paginate post.comments by 2 %}{{ paginate | bootstrap_pagination }}{% endpaginate %}", %|<nav><ul class="pagination "> <li><a href="/?page=2" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li class="active"><a href="#">3</a></li> <li class="disabled"><a href="#" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li> </nav></ul>|, { 'post' => @post_drop })
155+
expect_template_result("{% paginate post.comments by 2 %}{{ paginate | bootstrap_pagination }}{% endpaginate %}", %|<nav><ul class="pagination "> <li><a href="/?page=2" aria-label="Previous"><span aria-hidden="true">&laquo; Previous</span></a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li class="active"><span>3</span></li> <li class="disabled"><a href="#" aria-label="Next"><span aria-hidden="true">Next &raquo;</span></a></li> </nav></ul>|, { 'post' => @post_drop })
156156
end
157157
end
158158
end

0 commit comments

Comments
 (0)