Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/homebridge-camera-ui/server/middlewares/ drwxr-xr-x | |
| Viewing file: Select action/file-type: /* eslint-disable unicorn/prevent-abbreviations */
'use-strict';
exports.pages = (req, res) => {
let start = Number.parseInt(req.query.start); //for infinite scroll
let page = Number.parseInt(req.query.page) || 1;
let pageSize = Number.parseInt(req.query.pageSize) || 25;
start = !Number.isNaN(start) ? start : null;
const items = res.locals.items || [];
let maxPageSize = 50;
let minPage = 1;
let maxPage = Math.ceil(items.length / pageSize);
pageSize = pageSize > maxPageSize ? maxPageSize : pageSize;
page = page < minPage ? minPage : page;
/*if(page > maxPage && items.length){
throw new Error('Page not found');
}*/
const totalItems = items.length;
const startIndex = start !== null ? start : (page - 1) * pageSize;
const endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);
let pagination = {};
pagination =
start !== null
? {
pageSize: pageSize,
startIndex: startIndex,
endIndex: endIndex,
totalItems: totalItems,
}
: {
currentPage: page,
pageSize: pageSize,
totalPages: maxPage,
startIndex: startIndex,
endIndex: endIndex,
totalItems: totalItems,
nextPage: page < items.length / pageSize ? `/api/recordings?page=${page + 1}` : null,
prevPage: page > 1 ? `/api/recordings?page=${page - 1}` : null,
};
const result = items.slice(pagination.startIndex, pagination.endIndex + 1);
res.status(200).send({ pagination, result });
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0344 ]-- |