summaryrefslogtreecommitdiffstats
path: root/hyperkitty
diff options
context:
space:
mode:
Diffstat (limited to 'hyperkitty')
-rw-r--r--hyperkitty/static/js/hyperkitty.js2
-rw-r--r--hyperkitty/templates/paginator.html16
-rw-r--r--hyperkitty/templates/search_results.html2
-rw-r--r--hyperkitty/templatetags/hk_generic.py9
-rw-r--r--hyperkitty/views/accounts.py1
-rw-r--r--hyperkitty/views/list.py1
-rw-r--r--hyperkitty/views/search.py4
7 files changed, 26 insertions, 9 deletions
diff --git a/hyperkitty/static/js/hyperkitty.js b/hyperkitty/static/js/hyperkitty.js
index 90d94c8..5545cb9 100644
--- a/hyperkitty/static/js/hyperkitty.js
+++ b/hyperkitty/static/js/hyperkitty.js
@@ -462,7 +462,7 @@ function update_last_views(base_url) {
url: url,
success: function(data) {
container.html(data);
- container.find(".pager a").click(function(e) {
+ container.find(".pagination a").click(function(e) {
e.preventDefault();
_update(base_url + $(this).attr("href"));
});
diff --git a/hyperkitty/templates/paginator.html b/hyperkitty/templates/paginator.html
index 358ae5d..0b4e0d7 100644
--- a/hyperkitty/templates/paginator.html
+++ b/hyperkitty/templates/paginator.html
@@ -1,8 +1,11 @@
{% load i18n %}
-<ul class="pager">
+{% load hk_generic %}
+
+<div class="pagination pagination-centered">
+<ul>
{% if pager.has_previous %}
<li>
- <a href="?{{ page_key|default:'page' }}={{ pager.previous_page_number }}">
+ <a href="?{% add_to_query_string page_key|default:'page' pager.previous_page_number %}">
{% else %}
<li class="disabled">
<a href="#">
@@ -10,9 +13,15 @@
&larr; Newer</a>
</li>
+ {% for pagenum in pager.page_range %}
+ <li{% if pagenum == pager.number %} class="active"{% endif %}>
+ <a href="?{% add_to_query_string page_key|default:'page' pagenum %}">{{ pagenum }}</a>
+ </li>
+ {% endfor %}
+
{% if pager.has_next %}
<li>
- <a href="?{{ page_key|default:'page' }}={{ pager.next_page_number }}">
+ <a href="?{% add_to_query_string page_key|default:'page' pager.next_page_number %}">
{% else %}
<li class="disabled">
<a href="#">
@@ -20,5 +29,6 @@
Older &rarr;</a>
</li>
</ul>
+</div>
{# vim: set noet: #}
diff --git a/hyperkitty/templates/search_results.html b/hyperkitty/templates/search_results.html
index 41b97ba..c9cc754 100644
--- a/hyperkitty/templates/search_results.html
+++ b/hyperkitty/templates/search_results.html
@@ -56,7 +56,7 @@ Search results for "{{ query }}"{% if mlist %} - {{ mlist.display_name|default:m
&larr; Previous</a>
</li>
- {% for pagenum in page_range %}
+ {% for pagenum in messages.page_range %}
<li{% if pagenum == messages.number %} class="active"{% endif %}>
<a href="?{% add_to_query_string page=pagenum %}">{{ pagenum }}</a>
</li>
diff --git a/hyperkitty/templatetags/hk_generic.py b/hyperkitty/templatetags/hk_generic.py
index d233309..25b240c 100644
--- a/hyperkitty/templatetags/hk_generic.py
+++ b/hyperkitty/templatetags/hk_generic.py
@@ -194,7 +194,12 @@ def is_message_new(context, refdate):
@register.simple_tag(takes_context=True)
-def add_to_query_string(context, **kwargs):
+def add_to_query_string(context, *args, **kwargs):
qs = context["request"].GET.copy()
- qs.update(kwargs)
+ # create a dict from every args couple
+ new_qs_elements = dict(zip(args[::2], args[1::2]))
+ new_qs_elements.update(kwargs)
+ # don't use the .update() method, it appends instead of overwriting
+ for key, value in new_qs_elements.iteritems():
+ qs[key] = value
return qs.urlencode()
diff --git a/hyperkitty/views/accounts.py b/hyperkitty/views/accounts.py
index 5901a17..946f965 100644
--- a/hyperkitty/views/accounts.py
+++ b/hyperkitty/views/accounts.py
@@ -190,6 +190,7 @@ def last_views(request):
last_views = last_views_paginator.page(1)
except EmptyPage:
last_views = last_views_paginator.page(last_views_paginator.num_pages)
+ last_views.page_range = [ p+1 for p in range(last_views_paginator.num_pages) ]
for last_view in last_views:
thread = store.get_thread(last_view.list_address, last_view.threadid)
if thread.date_active.replace(tzinfo=utc) > last_view.view_date:
diff --git a/hyperkitty/views/list.py b/hyperkitty/views/list.py
index 523aff4..610b148 100644
--- a/hyperkitty/views/list.py
+++ b/hyperkitty/views/list.py
@@ -152,6 +152,7 @@ def _thread_list(request, mlist, threads, template_name='thread_list.html', extr
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
threads = paginator.page(paginator.num_pages)
+ threads.page_range = [ p+1 for p in range(paginator.num_pages) ]
flash_messages = []
flash_msg = request.GET.get("msg")
diff --git a/hyperkitty/views/search.py b/hyperkitty/views/search.py
index 1d2f3bf..199a836 100644
--- a/hyperkitty/views/search.py
+++ b/hyperkitty/views/search.py
@@ -74,7 +74,7 @@ def search(request, page=1):
query = request.GET.get("query")
mlist_fqdn = request.GET.get("list")
try:
- page_num = int(request.GET.get('page'))
+ page_num = int(request.GET.get('page', "1"))
except ValueError:
page_num = 1
results_per_page = 10
@@ -99,6 +99,7 @@ def search(request, page=1):
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
messages = paginator.page(paginator.num_pages)
+ messages.page_range = [ p+1 for p in range(paginator.num_pages) ]
context = {
'mlist' : mlist,
@@ -106,7 +107,6 @@ def search(request, page=1):
'current_page': page_num,
'messages': messages,
'total': total,
- 'page_range': [ p+1 for p in range(paginator.num_pages) ],
}
return render(request, "search_results.html", context)