<!--
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
-->
<% if (page > 1) { %>
  <li> <a href="<%- urlFun(page-1) %>">&laquo;</a></li>
<% } else { %>
  <li class="disabled"> <a href="<%- urlFun(page) %>">&laquo;</a></li>
<% } %>
<% _.each(_.range(from, to), function (i) { %>
  <li <% if (page == i) { %>class="active"<% } %>> <a href="<%- urlFun(i) %>"><%- i %></a></li>
<% }) %>
<% if (page < totalPages) { %>
  <li><a href="<%- urlFun(page+1) %>">&raquo;</a></li>
<% } else { %>
  <li class="disabled"> <a href="<%- urlFun(page) %>">&raquo;</a></li>
<% } %>


