Skip to content

Commit

Permalink
mod_base: Pager ellipsis link (0.x) (#3120)
Browse files Browse the repository at this point in the history
* Add link to pager ellipsis to conveniently skip forward or backward

* Don't mark the ellipsis entry as disabled if a url is available

* Remove use of  in _pager.tpl

Co-authored-by: Marc Worrell <marc@worrell.nl>
  • Loading branch information
robvandenbogaard and mworrell committed Sep 8, 2022
1 parent 11e2a61 commit 1595a5c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 7 deletions.
26 changes: 20 additions & 6 deletions modules/mod_base/scomps/scomp_base_pager.erl
Original file line number Diff line number Diff line change
Expand Up @@ -243,15 +243,30 @@ pages(Page, Pages) ->

urls(Start, Slider, End, IsEstimated, Dispatch, DispatchArgs, Context) ->
Start1 = [ {N, z_dispatcher:url_for(Dispatch, [{page,N}|DispatchArgs], Context)} || N <- Start ],
BeforeSlider =
case Slider of
[] ->
[];
[N1Slider|_] ->
[ {undefined, z_dispatcher:url_for(Dispatch, [{page,N}|DispatchArgs], Context)} || N <- [N1Slider-1] ]
end,
Slider1 = [ {N, z_dispatcher:url_for(Dispatch, [{page,N}|DispatchArgs], Context)} || N <- Slider ],
AfterSlider =
case Slider of
[] ->
[];
[_|_] ->
[ {undefined, z_dispatcher:url_for(Dispatch, [{page,N}|DispatchArgs], Context)} || N <- [lists:last(Slider)+1] ]
end,
End1 = [ {N, z_dispatcher:url_for(Dispatch, [{page,N}|DispatchArgs], Context)} || N <- End ],

case {Start1, Slider1, End1} of
{[], S, []} -> S;
{[], S, [_]} when IsEstimated -> S ++ [ {undefined, sep} ];
{[], S, E} -> S ++ [ {undefined, sep} | E ];
{B, S, []} -> B ++ [ {undefined, sep} | S ];
{B, S, [_]} when IsEstimated -> B ++ [ {undefined, sep} | S ] ++ [ {undefined, sep} ];
{B, S, E} -> B ++ [ {undefined, sep} | S ] ++ [ {undefined, sep} | E ]
{[], S, [_]} when IsEstimated -> S ++ AfterSlider;
{[], S, E} -> S ++ AfterSlider ++ E;
{B, S, []} -> B ++ BeforeSlider ++ S;
{B, S, [_]} when IsEstimated -> B ++ BeforeSlider ++ S ++ AfterSlider;
{B, S, E} -> B ++ BeforeSlider ++ S ++ AfterSlider ++ E
end.

seq(A,B) when B < A -> [];
Expand All @@ -263,4 +278,3 @@ test() ->
R = #search_result{result=[a], pages=100, page=10},
{ok, H} = render([{result,R}], [], C),
list_to_binary(H).

2 changes: 1 addition & 1 deletion modules/mod_base/templates/tablet/_pager.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{% if nr %}
<li {% if nr == page %}class="active"{% endif %}><a href="{{ url }}#content-pager">{{ nr }}</a></li>
{% else %}
<li class="disabled"><a href="#">…</a></li>
<li><a href="{{ url }}#content-pager">…</a></li>
{% endif %}
{% endfor %}
<li {% if not next_url %}class="disabled"{% endif %}><a href="{{ next_url }}#content-pager">→</a></li>
Expand Down

0 comments on commit 1595a5c

Please sign in to comment.