The BIG frontend update

This commit is contained in:
2023-05-16 22:58:08 +02:00
parent 04b5bd60f2
commit bd9f629690
22 changed files with 459 additions and 56 deletions

View File

@ -1,12 +1,32 @@
import { Request, Response } from 'express';
import { prisma, __path } from '../../index.js';
function get(req: Request, res: Response) {
async function get(req: Request, res: Response) {
// If no page is provided redirect to first
if (req.query.page === undefined) {
res.redirect('?page=1');
return;
}
let page = parseInt(req.query.page.toString());
const itemCount = await prisma.item.count({}); // Count all items in the DB
const takeSize = 25; // Amount of times per page
const pageSize = Math.ceil(itemCount / takeSize); // Amount of pages, always round up
// If page is less then 1 or more then the max page size redirect to first or last page
if (page < 1) {
res.redirect('?page=1');
return;
} else if (page > pageSize) {
res.redirect('?page=' + pageSize);
return;
}
prisma.item
.findMany({})
.findMany({ skip: (page - 1) * takeSize, take: takeSize }) // Skip the amount of items per page times the page number minus 1; skip has to be (page-1)*takeSize because skip is 0 indexed
.then((items) => {
// Count amount of total items
res.render(__path + '/src/frontend/items.eta.html', { items: items });
res.render(__path + '/src/frontend/items.eta.html', { items: items, currentPage: page, maxPages: pageSize });
})
.catch((err) => {
console.error(err);