add pagination to basic

pull/3008/head
Chris Arderne 1 month ago
parent ae5ccf6e91
commit 458576a141

@ -19,6 +19,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from cps.pagination import Pagination
from flask import Blueprint
from flask_babel import gettext as _
from flask_babel import get_locale
@ -45,14 +46,16 @@ log = logger.create()
@login_required_if_no_ano
def index():
term = request.args.get("query", "") # default to showing all books
offset = 0
limit = 15
page = int(request.args.get("page") or 1)
off = (page - 1) * limit
order = get_sort_function("stored", "search")
join = db.books_series_link, db.Books.id == db.books_series_link.c.book, db.Series
entries, result_count, pagination = calibre_db.get_search_results(term,
config,
offset,
off,
order,
None,
limit,
*join)
return render_title_template('basic_index.html',
searchterm=term,

@ -1,24 +1,32 @@
{% extends "basic_layout.html" %}
{% block body %}
<div>
{% if entries|length < 1 %}
<p>{{_('No Results Found')}}</p>
<p>{{_('Search Term:')}} {{adv_searchterm}}</p>
{% endif %}
<div class="pagination">
<div>
{% if pagination.has_prev %}
<a href="{{ (pagination.page - 1)|url_for_other_page }}">&laquo; {{_('Previous')}}</a>
{% endif %}
</div>
<div>
{% for entry in entries %}
{% if entry.Books.authors %}
{% set author = entry.Books.authors[0].name.replace('|',',')|shortentitle(30) %}
{% else %}
{% set author = '' %}
{% endif %}
<a href="{{ url_for('basic.show_book', book_id=entry.Books.id) }}">
<p title="{{entry.Books.title}}">{{ author }} - {{entry.Books.title|shortentitle}}</p>
</a>
{% endfor %}
{% if pagination.has_next %}
<a href="{{ (pagination.page + 1)|url_for_other_page }}">{{_('Next')}} &raquo;</a>
{% endif %}
</div>
</div>
{% if entries|length < 1 %}
<p>{{_('No Results Found')}}</p>
{% endif %}
{% for entry in entries %}
{% if entry.Books.authors %}
{% set author = entry.Books.authors[0].name.replace('|',',')|shortentitle(30) %}
{% else %}
{% set author = '' %}
{% endif %}
<a href="{{ url_for('basic.show_book', book_id=entry.Books.id) }}">
<p class="listing" title="{{entry.Books.title}}">{{ author }} - {{entry.Books.title|shortentitle}}</p>
</a>
{% endfor %}
{% endblock %}

@ -71,6 +71,20 @@ nav > a {
height: 250px;
object-fit: cover;
}
.listing {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
margin-right: 20px;
}
.pagination {
display: flex;
justify-content: space-between;
padding: 10px 0;
height: 20px;
}
</style>
</head>

Loading…
Cancel
Save