Merge remote branch 'upstream/master' into dev/mount_storage
[mediagoblin.git] / mediagoblin / templates / mediagoblin / utils / pagination.html
index 62e8af911a63679f34289339579e672aae0d53bd..23d4946363a3e6c465e1ca8cb0fd59e0410a5072 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #}
 
-{# only display if {{pagination}} is defined #}
+{% macro render_pagination(request, pagination,
+                           base_url=None, preserve_get_params=True) %}
+  {# only display if {{pagination}} is defined #}
+  {% if pagination and pagination.pages > 1 %}
+    {% if not base_url %}
+      {% set base_url = request.path_info %}
+    {% endif %}
 
-{% if pagination %}
-  <div class=pagination>
+    {% if preserve_get_params %}
+      {% set get_params = request.GET %}
+    {% else %}
+      {% set get_params = {} %}
+    {% endif %}
 
-      {% if pagination.has_prev %}
-        <a href={{ pagination.get_page_url(request, pagination.page-1) }}>&laquo; Prev</>
-      {% endif %}
-
-      {%- for page in pagination.iter_pages() %}
-        {% if page %}
-          {% if page != pagination.page %}
-           <a href={{ pagination.get_page_url(request, page) }}>{{ page }}</a>
+    <div class="pagination">
+      <p>
+        {% if pagination.has_prev %}
+          <a href="{{ pagination.get_page_url_explicit(
+                          base_url, get_params,
+                          pagination.page - 1) }}"><img class="pagination_arrow" src="/mgoblin_static/images/pagination_left.png" alt="Previous page" />Newer</a>
+        {% endif %}
+        {% if pagination.has_next %}
+          <a href="{{ pagination.get_page_url_explicit(
+                          base_url, get_params,
+                          pagination.page + 1) }}">Older<img class="pagination_arrow" src="/mgoblin_static/images/pagination_right.png" alt="Next page" />
+          </a>
+        {% endif %}
+        <br />
+        Go to page: 
+        {%- for page in pagination.iter_pages() %}
+          {% if page %}
+            {% if page != pagination.page %}
+              <a href="{{ pagination.get_page_url_explicit(
+                              base_url, get_params,
+                              page) }}">{{ page }}</a>
+            {% else %}
+              {{ page }}
+            {% endif %}
           {% else %}
-            <strong>{{ page }}</strong>
+            <span class="ellipsis">…</span>
           {% endif %}
-        {% else %}
-          <span class="ellipsis">…</span>
-        {% endif %}
-      {%- endfor %}
-
-      {% if pagination.has_next %}
-        <a href={{ pagination.get_page_url(request, pagination.page+1) }}>Next &raquo;</a>
-      {% endif %}
-   </div>
-{% endif %}
-
+        {%- endfor %}
+       </p>
+     </div>
+  {% endif %}
+{% endmacro %}