forked from saurabh/orbit4-5
completed pagination with first and last and also next and previous
This commit is contained in:
parent
fbbd75cdce
commit
4f0b05fcc7
|
@ -191,28 +191,9 @@ module ApplicationHelper
|
||||||
html = html.gsub("%7B%7B#{key}%7D%7D",value.to_s)
|
html = html.gsub("%7B%7B#{key}%7D%7D",value.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
file = File.join(Rails.root, 'app', 'templates', "#{@key}", 'home', "pagination.html.erb")
|
|
||||||
total_pages = data['total_pages'].to_i rescue 1
|
total_pages = data['total_pages'].to_i rescue 1
|
||||||
if total_pages > 1
|
if total_pages > 1
|
||||||
if File.exists?file
|
html = html.gsub("{{pagination_goes_here}}",create_pagination(total_pages))
|
||||||
file = File.open(file)
|
|
||||||
doc = Nokogiri::HTML(file, nil, "UTF-8")
|
|
||||||
file.close
|
|
||||||
paginationobj = doc.css("*[data-pagination='true']").first
|
|
||||||
in_html = paginationobj.inner_html
|
|
||||||
f_html = ""
|
|
||||||
(1..total_pages).each do |i|
|
|
||||||
h = in_html
|
|
||||||
h = h.gsub("%7B%7Bpagination_link%7D%7D","?page_no=#{i.to_s}")
|
|
||||||
h = h.gsub("{{page_number}}",i.to_s)
|
|
||||||
h = h.gsub("{{pagination_active}}",(i == OrbitHelper.page_number ? "active" : ""))
|
|
||||||
f_html = f_html + h
|
|
||||||
end
|
|
||||||
paginationobj.inner_html = f_html
|
|
||||||
html = html.gsub("{{pagination_goes_here}}",paginationobj.to_s)
|
|
||||||
else
|
|
||||||
html = html.gsub("{{pagination_goes_here}}","");
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
html = html.gsub("{{pagination_goes_here}}","");
|
html = html.gsub("{{pagination_goes_here}}","");
|
||||||
end
|
end
|
||||||
|
@ -357,4 +338,62 @@ module ApplicationHelper
|
||||||
html.html_safe
|
html.html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_pagination(total_pages)
|
||||||
|
file = File.join(Rails.root, 'app', 'templates', "#{@key}", 'home', "pagination.html.erb")
|
||||||
|
html = ""
|
||||||
|
if File.exists?file
|
||||||
|
file = File.open(file)
|
||||||
|
doc = Nokogiri::HTML(file, nil, "UTF-8")
|
||||||
|
file.close
|
||||||
|
paginationobj = doc.css("*[data-pagination='true']").first
|
||||||
|
in_html = first = last = nextpage = prevpage = paginationobj.inner_html
|
||||||
|
f_html = ""
|
||||||
|
current_page_number = OrbitHelper.page_number
|
||||||
|
if current_page_number > 1
|
||||||
|
first = first.gsub("%7B%7Bpagination_link%7D%7D","?page_no=1")
|
||||||
|
first = first.gsub("{{page_number}}","First")
|
||||||
|
first = first.gsub("{{pagination_active}}","")
|
||||||
|
f_html = f_html + first
|
||||||
|
end
|
||||||
|
start_number = current_page_number - 2
|
||||||
|
end_number = current_page_number + 2
|
||||||
|
if end_number > total_pages
|
||||||
|
end_number = total_pages
|
||||||
|
start_number = total_pages - 4
|
||||||
|
end
|
||||||
|
if start_number < 1
|
||||||
|
start_number = 1
|
||||||
|
end_number = 5
|
||||||
|
end
|
||||||
|
(start_number..end_number).each do |i|
|
||||||
|
h = in_html
|
||||||
|
h = h.gsub("%7B%7Bpagination_link%7D%7D","?page_no=#{i.to_s}")
|
||||||
|
h = h.gsub("{{page_number}}",i.to_s)
|
||||||
|
h = h.gsub("{{pagination_active}}",(i == current_page_number ? "active" : ""))
|
||||||
|
f_html = f_html + h
|
||||||
|
end
|
||||||
|
if current_page_number > 1
|
||||||
|
prevpage = prevpage.gsub("%7B%7Bpagination_link%7D%7D","?page_no=#{current_page_number - 1}")
|
||||||
|
prevpage = prevpage.gsub("{{page_number}}","«")
|
||||||
|
prevpage = prevpage.gsub("{{pagination_active}}","")
|
||||||
|
f_html = f_html + prevpage
|
||||||
|
end
|
||||||
|
|
||||||
|
if current_page_number < total_pages
|
||||||
|
nextpage = nextpage.gsub("%7B%7Bpagination_link%7D%7D","?page_no=#{current_page_number + 1}")
|
||||||
|
nextpage = nextpage.gsub("{{page_number}}","»")
|
||||||
|
nextpage = nextpage.gsub("{{pagination_active}}","")
|
||||||
|
f_html = f_html + nextpage
|
||||||
|
|
||||||
|
last = last.gsub("%7B%7Bpagination_link%7D%7D","?page_no=#{total_pages}")
|
||||||
|
last = last.gsub("{{page_number}}","Last")
|
||||||
|
last = last.gsub("{{pagination_active}}","")
|
||||||
|
f_html = f_html + last
|
||||||
|
end
|
||||||
|
paginationobj.inner_html = f_html
|
||||||
|
html = paginationobj.to_s
|
||||||
|
end
|
||||||
|
html
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,6 +17,9 @@ module OrbitHelper
|
||||||
|
|
||||||
def self.set_page_number(page)
|
def self.set_page_number(page)
|
||||||
@page_number = page
|
@page_number = page
|
||||||
|
if @page_number == 0
|
||||||
|
@page_number = 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.page_number
|
def self.page_number
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
<ul class="pagination" data-pagination="true">
|
<ul class="pagination" data-pagination="true">
|
||||||
<li class="{{pagination_active}}"><a href="{{pagination_link}}">{{page_number}}</a></li>
|
<li class="{{pagination_active}}"><a href="{{pagination_link}}">{{page_number}}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<!-- <li><a href="#">First</a></li>
|
||||||
|
<li><a href="#">«</a></li>
|
||||||
|
<li><a href="#">»</a></li>
|
||||||
|
<li><a href="#">Last</a></li> -->
|
|
@ -127,7 +127,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="page-module" class="module" onclick="importModule('pages')">
|
<div id="pages-module" class="module" onclick="importModule('pages')">
|
||||||
<div class="lead muted">
|
<div class="lead muted">
|
||||||
<i class="icons-newspaper"></i><br/>
|
<i class="icons-newspaper"></i><br/>
|
||||||
<%= t("page_content.page") %>
|
<%= t("page_content.page") %>
|
||||||
|
|
Loading…
Reference in New Issue