diff --git a/apps/api/views.py b/apps/api/views.py index 6c0fb45..3cd84be 100644 --- a/apps/api/views.py +++ b/apps/api/views.py @@ -1,14 +1,9 @@ # -*- encoding: utf-8 -*- import logging -import requests -from django.conf import settings -from django.db.models import Subquery -from django.db.utils import IntegrityError from django_filters import rest_framework as rest_filters -from rest_framework import status, permissions, filters, generics -from rest_framework.response import Response +from rest_framework import permissions, filters, generics from rest_framework.pagination import PageNumberPagination from rest_framework.authentication import SessionAuthentication, TokenAuthentication from rest_framework.parsers import MultiPartParser, FormParser diff --git a/apps/home/static/home/js/tables.js b/apps/home/static/home/js/tables.js index 2a1558f..2c8e158 100644 --- a/apps/home/static/home/js/tables.js +++ b/apps/home/static/home/js/tables.js @@ -35,6 +35,7 @@ function initializeDataTable(tableId, columns) { ...columns ] }); + bindTablePagination(tableId); } @@ -100,10 +101,24 @@ async function loadTableData(tableId, url, method) { // region Pagination -function bindTablePagination(tableId) { // TODO: +function bindTablePagination(tableId) { let $paginationArea = $("#subTable").closest('.js-tableBody').siblings('.js-tableControls').find('.pagination'); $paginationArea.on("click", ".page-link", function() { + let currentPage = $paginationArea.data("page"); + let wantedPage; + if ($(this).hasClass("page-prev")) { + wantedPage = currentPage - 1; + } + else if ($(this).hasClass("page-next")) { + wantedPage = currentPage + 1; + } + else { + wantedPage = $(this).attr("data-page") + } + + setTableFilter(tableId, "page", wantedPage); + $(tableId).trigger("doDataLoad"); }); } @@ -114,7 +129,7 @@ function fixTablePagination(tableId) { setTableFilter(tableId, "page", 1); } if (!("page_size" in filters)) { - setTableFilter(tableId, "page_size", 15) // TODO: shouldn't be hard coded + setTableFilter(tableId, "page_size", 1) // TODO: shouldn't be hard coded } } diff --git a/apps/home/static/home/js/tabs/subs.js b/apps/home/static/home/js/tabs/subs.js index 1d58e80..f9bf5f1 100644 --- a/apps/home/static/home/js/tabs/subs.js +++ b/apps/home/static/home/js/tabs/subs.js @@ -95,7 +95,7 @@ $(document).on("selectedServerChange", async function() { await loadSubscriptionData(); }); -$(document).on("doLoadSubscriptions", async function() { +$(subTableId).on("doDataLoad", async function() { await loadSubscriptionData(); })