Packages
torch
1.0.0-rc.4
6.0.0
5.6.0
5.5.0
5.4.0
5.3.2
5.3.1
5.2.0
5.1.2
5.1.1
5.1.0
5.0.0
5.0.0-rc.4
5.0.0-rc.3
5.0.0-rc.2
5.0.0-rc.1
5.0.0-rc.0
4.3.2
4.3.1
4.3.0
4.2.1
4.2.0
retired
4.1.0
4.0.0
4.0.0-rc.0
3.9.1
3.9.0
3.8.0
3.7.1
3.7.0-rc.0
3.6.4
3.6.3
3.6.2
3.6.1
3.6.0
3.5.0
3.4.1
3.4.0
3.3.1
3.3.0
3.2.1
3.2.0
3.1.0
3.0.0
2.1.0
2.0.0
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
1.0.0-rc.6
1.0.0-rc.5
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
0.2.0-rc.5
0.2.0-rc.4
0.2.0-rc.3
0.2.0-rc.2
0.2.0-rc.1
0.1.0
Rapid admin generator for Phoenix
Current section
Files
Jump to
Current section
Files
lib/torch/views/pagination_view.ex
defmodule Torch.PaginationView do
@moduledoc """
`Phoenix.View` to render pagination controls for Torch-generated index templates.
"""
use Phoenix.View, root: "lib/torch/templates"
use Phoenix.HTML
import Torch.TableView
@doc """
Generates a "< Prev" link to the previous page of results.
The link is only returned if there is a previous page.
## Example
prev_link(2, 2)
# => returns link
prev_link(1, 1)
# => returns nil
"""
def prev_link(current_page, _num_pages) do
if current_page != 1 do
link "< Prev", to: "?page=#{current_page - 1}"
end
end
@doc """
Generates a "Next >" link to the next page of results.
The link is only returned if there is another page.
## Example
next_link(1, 2)
# => returns link
next_link(2, 2)
# => returns nil
"""
def next_link(current_page, num_pages) do
if current_page != num_pages do
link "Next >", to: "?page=#{current_page + 1}"
end
end
defp start_page(current_page, distance) when current_page - distance < 1 do
current_page - (distance + (current_page - distance - 1))
end
defp start_page(current_page, distance) do
current_page - distance
end
defp end_page(current_page, 0, _distance) do
current_page
end
defp end_page(current_page, total, distance)
when current_page <= distance and distance * 2 <= total do
distance * 2
end
defp end_page(current_page, total, distance) when current_page + distance >= total do
total
end
defp end_page(current_page, _total, distance) do
current_page + distance - 1
end
end