--- a/templates/channel_search.tmpl Mon Feb 09 22:17:10 2009 +0200
+++ b/templates/channel_search.tmpl Mon Feb 09 23:49:57 2009 +0200
@@ -1,5 +1,35 @@
<%inherit file="channel.tmpl" />
+<%def name="paginate(url, count, skip, max, **args)">
+ ## update max?
+ <% max = h.max(max, skip) %>
+ ## number of pages
+ <% page_count = max / count + 1 %>
+ <div class="paginate">
+ <ul>
+ <li>
+ % if skip :
+ <a href="${h.build_url(url, count=count, skip=h.skip_prev(count, skip), max=max, **args)}">« Prev</a>
+ % else :
+ <span>« Prev</span>
+ %endif
+ </li>
+ % for page in xrange(page_count) :
+ <li>
+ % if page == skip / count :
+ <strong>${page + 1}</strong>
+ % else :
+ <a href="${h.build_url(url, count=count, skip=h.skip_page(count, page), max=max, **args)}">${page + 1}</a>
+ % endif
+ </li>
+ % endfor
+ <li>
+ <a href="${h.build_url(url, count=count, skip=h.skip_next(count, max), **args)}">More »</a>
+ </li>
+ </ul>
+ </div>
+</%def>
+
% if not search_query :
<div id="title">${channel.title} :: Search</div>
@@ -9,10 +39,9 @@
<input type="submit" value="Search" />
Results/page: <select name="count">
- <option value="50">50</option>
- <option value="100">100</option>
- <option value="200">200</option>
- <option value="">∞</option>
+ % for cc, cc_label in config.SEARCH_LINE_COUNT_OPTIONS :
+ <option value="${cc if cc else ''}"${' selected="selected"' if cc == count else ''}>${cc_label}</option>
+ % endfor
</select>
</form>
@@ -32,5 +61,7 @@
% else :
<div id="title">${channel.title} :: Search '${search_query}'</div>
+${paginate(urls.channel_search, count, skip, max, channel=channel, q=search_query)}
<%include file="lines.tmpl" />
+${paginate(urls.channel_search, count, skip, max, channel=channel, q=search_query)}
% endif