better way to know whether this is the last page

This commit is contained in:
Son 2021-11-23 14:44:48 +01:00
parent cd553608a5
commit 4c33b63f97
2 changed files with 8 additions and 9 deletions

View File

@ -5,7 +5,7 @@ from flask_login import login_required, current_user
from app import alias_utils
from app.api.serializer import get_alias_infos_with_pagination_v3, get_alias_info_v3
from app.config import ALIAS_LIMIT
from app.config import ALIAS_LIMIT, PAGE_LIMIT
from app.dashboard.base import dashboard_bp
from app.db import Session
from app.extensions import limiter
@ -161,21 +161,20 @@ def index():
directory_id = int(alias_filter[len("directory:") :])
alias_infos = get_alias_infos_with_pagination_v3(
current_user, page, query, sort, alias_filter, mailbox_id, directory_id
)
# to know whether there's alias on the next page
next_page_alias = get_alias_infos_with_pagination_v3(
current_user,
page + 1, # next page
page,
query,
sort,
alias_filter,
mailbox_id,
directory_id,
page_limit=1, # only load 1 alias
# load 1 alias more to know whether this is the last page
page_limit=PAGE_LIMIT + 1,
)
last_page = len(next_page_alias) == 0
last_page = len(alias_infos) <= PAGE_LIMIT
# remove the last alias that's added to know whether this is the last page
alias_infos = alias_infos[:PAGE_LIMIT]
# add highlighted alias in case it's not included
if highlight_alias_id and highlight_alias_id not in [

View File

@ -536,7 +536,7 @@
<div class="col">
<nav aria-label="Alias navigation">
<ul class="pagination">
<li class="page-item">
<li class="page-item mr-1">
<a class="btn btn-outline-primary {% if page == 0 %}disabled{% endif %}"
href="{{ url_for('dashboard.index', page=page-1, query=query, sort=sort, filter=filter) }}">
Previous</a>